3分钟学会R语言绘图——时间序列篇

2,382 阅读4分钟

​说在最前面,小r接触R语言以来做过很多辅导,觉得可以把积累的经验免费分享给大家,因此把辅导笔记做成文章,感谢大家支持。如果有作图中有任何疑问,可以直接联系小编或者关注公众号算法学习日程本。(ps因为内容都是原创的,所以禁止各种商用哈,转载要注明来源哈)

文章首发于:算法学习日程本

2021年7月份公布的一个包ggfortify,是一个强大的绘图包,它基于ggplot2,使用统一的autoplot函数和简单的参数,完成所有基础模型的绘图任务,简单明了。

小编已经写过2篇保姆级的教程文章介绍如何进行kmeans聚类分析、生存分析、线性回归模型绘图等,感兴趣的小伙伴或者零基础的初学者直接点击下面文章查看哈。

【绘图辅导】3分钟学会R语言绘图

【绘图辅导】3分钟学会R语言绘图(2)

本节主要在前面文章的基础上,在时间序列模型方面,ggfortify输出的图形的具体步骤。(ps因为内容都是原创的,所以禁止各种商用哈,转载要注明来源哈)

1. 时间序列的趋势图

autoplot在时间序列绘图中可以支持不同函数转换为的时间序列数据,且表现的图是一样的。

具体的操作代码如下:

library(zoo)autoplot(AirPassengers)autoplot(xts::as.xts(AirPassengers))autoplot(timeSeries::as.timeSeries(AirPassengers))

这个图看起来不是很好看,同时autoplot对ts数据的多个方面设置的调整参数。为方便大家观看,小编列了表格:

ts.geom展现时间序列数据趋势的形式:点,线,柱状图和锯齿图,参数值可以选择’line’, ’bar’, ’ribbon’, or ’point’
ts.colour线的颜色
ts.size点的大小
ts.linetype线的形状
ts.alphaalpha for time-series
ts.fill除了线之外的其他形式的颜色配置
ts.shape点的形状

具体的操作代码如下:

autoplot(AirPassengers, ts.geom = 'point',ts.fill = 'orange',ts.linetype = 2,ts.shape = 5)

若是多个时间序列数据一起描述趋势,设置facets 可确定是分屏展示还是在同一个图中展示。同时还可以在绘图时设置数据是否标准化,通过scale参数。

具体的操作代码如下:

autoplot(Canada)autoplot(Canada,ts.scale = TRUE)

具体的操作代码如下:

autoplot(Canada, facets = FALSE,ts.scale = TRUE)

周期分解也是可以做的

不过小编又发现了一个bug,就是改不了颜色,哈哈,一直是黑色的,看来新的包还是要不断更新的。

具体的操作代码如下:

model = stats::decompose(UKgas)autoplot(model,fill="red")

2. HoltWinters模型

这里可以绘制预测图,也可以绘图未来的趋势,并加上置信区间。

(1) 简单的模型预测结果图,其中绿色的是预测曲线,而红色是真实曲线,这也是很常用的一种图。具体的操作代码如下:

d.holt <- stats::HoltWinters(USAccDeaths)autoplot(d.holt,colour = 'green')

(2) 加上predict就是对未来时间的预测结果的展示,prediction.interval 来控制是否出现置信区间。

具体的操作代码如下:

autoplot(d.holt, predict = predict(d.holt, n.ahead = 5, prediction.interval = TRUE))

3. AR,ARMIRA模型

在绘制AR,ARIMA模型的预测图这里出现了一点问题,就是....小编发现竟然不会出现预测图~,后续发现怎么解决会再更新这个部分的。但是ARIFIMA模型是可以的,很神奇。

具体的操作代码如下:

data = xts::as.xts(AirPassengers)autoplot(forecast::Arima(data,order = c(1,0,1)))

具体的操作代码如下:

autoplot(forecast::arfima(AirPassengers))

4. VAR 模型

这个模型的绘图都是很正常的,我们这里还是选择基本的黑色系绘图出场~,哎

这里is.date会直接变换为日期数据,也是很方便了。

具体的操作代码如下:

data(Canada, package = 'vars')
d.var <- vars::VAR(Canada, p = 3, type = 'const')
autoplot(stats::predict(d.var, n.ahead = 50), is.date = TRUE)

自然我也可以不显示置信区间拉~

autoplot(stats::predict(d.var, n.ahead = 50), conf.int = FALSE)

5. ACF,PACF图

如果plot选择false,就会显示acf的具体值。

air.acf <- acf(AirPassengers, plot = TRUE)


END

有关于其他R语言的问题可以直接私信小编哈。

请大家多多支持,后面会推出更多的知识分享或者辅导课程,创作不易,请各位小伙伴感兴趣的点击关注、收藏哈。

知乎|R语言数据派