戳上方蓝字或下方卡片关注我,一起踏上进阶之路。
文字 | 百灵
图片 | 原创
欢迎分享,留言交流,转载请注明出处
本文共计约4000字,建议阅读时间5分钟目录
- 时间序列分析——引言
- 时间序列
- 时间序列发展历程
- 时间序列分析方法
- 应用及局限
- 时间序列分析——相关分析
- 描述分析
- 自相关
- 互相关和互相关系数
- 小结
- 统计分析方法——回归分析
- 回归分析方法
- 线性回归
- 非线性回归
- 提升数据鲁棒性
- 小结
- 时间序列分析——移动平均
- 简单移动平均
- 指数平均
- 小结
- 时间序列分析——自回归
统计分析方法——回归分析
在前文的相关分析中,通过自相关可以揭示信号自身的周期性,通过互相关可以解释不同信号之间的相似程度或者时延。但仅计算相关性往往挖掘出的信息不够充分,因此在本文中尝试使用回归分析来挖掘数据中的更多内容。
回归分析跟相关分析一样,并不局限于数据是两个时间序列,在更广泛的应用之中,回归分析用来表示两个不同变量之间的关系,逐渐从线性回归,逻辑回归,发展到现在的各种基于深度学习模型的回归。在本文中,我们还是基于时间序列数据来进行介绍回归分析的一些基本方法。
具体到针对时间序列或者说序列这一概念的回归分析,我们会在下一篇文章自回归中给出。如果说回归分析是指两个变量之间关联的分析,那么自回归则是一个变量未来时刻和当前时刻之间关联的分析。这个概念和上文中的互相关和自相关比较类似。
变量之间的回归分析可以使用一个变量来预测另一个变量,比如看到天空万里无云预测现在并没有下雨。而自回归分析可以用变量自身来预测未来的情况,比如看到现在没有下雨,预测未来一小时不会下雨。二者在不同的场景之下都有合适的应用。回归这个话题比较大,应用也比较复杂,比如ChatGPT就是一种自回归的模型。当前文章暂时将限定在捋清楚一些概念,不会有太多复杂的内容,后续再看能深入多少。
数据准备
本文采用某公众号近一个月(10月14日到11月13日共31天)的数据作为示例,尝试使用回归分析的方法从数据中挖 掘一些有效信息。目前已知在这一个月时间内,没有更新文章,数据纯粹来自于自然生长,本文将试图从基本的回归分析角度,来观察这段时间内阅读量,粉丝量和收入之间的关系。
第一眼看到这个数据,感觉数据之间基本没有关联,收入,涨粉和阅读量之间关系都不太大。可以将这一组数据的互相关矩阵画出。
相关系数 | 总阅读数 | 阅读人数 | 净增粉丝数 | 广告收入 |
总阅读数 | 1 | 0.7979 | 0.263 | -0.0566 |
阅读人数 | 0.7979 | 1 | 0.1229 | 0.0228 |
净增粉丝数 | 0.263 | 0.1229 | 1 | 0.0399 |
广告收入 | -0.0566 | 0.0228 | 0.0399 | 1 |
从相关系数来看,总阅读数和阅读人数相关性比较强。净增粉丝数和阅读次数的相关性比阅读人数更高,从这一点可以推断,一个新用户转化成粉丝的时候,他更有可能阅读了多篇文章。
另外一个不太对的地方是广告收入和总阅读数竟然呈现负相关,同时系数值比较低,说明这两个数据基本没有任何相关性。但这不太合理,毕竟广告是通过阅读来曝光和点击的。同时联想到收益的更新要慢于阅读量,所以尝试了一下将数据延迟一天,画出来如下图所示:
可以看出俩个数据相似了不少,说明,当天的收益,不仅取决于当天的阅读量,可能还计入了第二天阅读量信息。两个日期的标注可能就是有时间差的。我们计算一下延迟之后的数据相关系数,从-0.0566来到了0.4498,也说明两者之间存在较高的关联。
找到这一规律之后,我们可以试图使用阅读量数据来推断广告收入数据,即使用线性回归的方法来分析阅读量和广告收入之间的关联。由于在天级别两者之间的相关系数还不到0.5,为了提升分析的准确性,我们使用更多数据并聚类到了周级别来进行回归分析。
回归分析方法
对于回归分析,就是找一个函数f,使得y'=f(x)求出来的y'与y越接近越好。那怎么找寻函数f呢,通俗的做法就是要定义两个函数,一个是损失函数L,描述y'与y的接近程度,另一个是f的表达式,一般可以具有任意多的参数。然后使损失函数的导数为0,求解出f中的参数。在深度学习中,f和L都可以非常复杂,但大致的求解思路依然如此。
接下来我们将以上述数据为例,介绍回归分析的方法,主要试图解答两个问题,第一个是不新发文的情况下,广告收入过多久会归零。第二个是当阅读量为1000次时,能获取多少广告收益。当前只是想借此数据展示一些回归分析的方法,对问题没有具体展开分析,大家看个大致结论就好。
线性回归
在使用回归分析数据这部分,我们将从不同角度来分析这一段数据。鉴于我们关注的主要是广告收入,因此都将广告收入作为因变量y,自变量可以有不同的选择,比如说选择按天算的时间作为自变量x1,或者选择总体阅读量作为自变量x2。
这里我们首先使用以天为单位的时间来进行分析,尝试回答第一个问题,在不更新文章时,随着时间推移广告收入的下降趋势如何,大约多久会降到0。
线性回归的主要假设是变量之间存在线性关系。这里让x为断更天数,从1到30,y为广告收入,并且假设广告收入随着时间推移是线性变化的即如下公式:y=ax b;
我们知道每一个x对应的真实y值,通过使得公式拟合出来的y值接近真实y值,可以求出 a = -0.0137, b = 0.6157。这个结果也比较直观,也就是说第一天的收益平均值大约为0.6,每隔一天收益会下降0.013,大约44天之后收入归零。
画出曲线如下:
从曲线图中可以看出,这个拟合结果并不太好,信号呈现一个波动下降的趋势,但是并不是线性下降的,拟合的程度不高。于是一个想法是使用指数模型是否可能得到不一样的结果。
非线性回归
对于此类数据,另一种比较常见的拟合方式是假设广告收入随时间呈现指数下降的形式。因此可以尝试使用指数函数来拟合结果:y=a exp(b*x),
同样这里x表示停止更新的天数,y表示广告收入。可以通过拟合的方式,获取相应的a和b的值。从而生成相应的拟合结果。并画成图的形式如下: