《R语言数据高…" /> 《R语言数据高…" />
绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
R语言时间序列分析(六):数据转化和残差诊断
2019-10-19 12:57:00

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘邮箱:huang.tian-yuan@qq.com.欢迎合作交流。

数据转化

进行建模之前,往往要对数据进行预处理。在常见的时间序列模型中,也需要这种处理,下面列出一些情况:

1、如果要统计月销量,那么有效销售时间就非常重要。如果每天的销售是定额的,很容易会得到二月份销售量比较少的结论,因为二月份的日子总是比其他月份的日子少。要解决这个问题,就必须把月销量转化为月的日均销量,这样才更具有意义。

2、既然能够进行月份的日矫正,那么所有事物有时候都应该计算其单位的数值,而不是总值。比如省市的人均收入比总收入有意义,因为不同省市的人口数量原本就不一样。

3、有的时间序列很难直接发现特征,但是取其对手或进行其他转化之后,发现其规律就非常明显了。这样做的模型之后,也依然能够通过标准的转化反推回去,进行稳健的预测。

不过是不是要转化,如何转化,还是具体情况具体分析,这里暂不深入。

残差诊断

一个预测做得好不好,就要看预测值与实际值的差距,这个非常好理解。

比如一个原始序列(谷歌的股价变化):

library(fpp2)
autoplot(goog200) +
  xlab("Day") + ylab("Closing Price (US$)") +
  ggtitle("Google Stock (daily ending 6 December 2013)")

下面用naive方法直接拟合,然后进行残差的诊断:

checkresiduals(naive(goog200))

#> 
#>  Ljung-Box test
#> 
#> data:  Residuals from Naive method
#> Q* = 11, df = 10, p-value = 0.4
#> 
#> Model df: 0.   Total lags used: 10

上面的结果中,首先进行了Ljung-Box检验,如果p值不小于0.05,那么就可以认为这个序列为白噪声。残差图见图片中上面,其ACF图和残差分布图则在下方。这些图能够让我们判断拟合的模型后不能解释的部分,是不是白噪声。如果是的话,那么说明拟合得不错;如果不是白噪声,说明还有提高的空间,可以再加以调整来提高拟合度。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

R语言
创建时间:2020-06-15 11:46:51
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的工具。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~