说在最前面,小r接触R语言以来做过很多辅导,觉得可以把积累的经验免费分享给大家,因此把辅导笔记做成文章,感谢大家支持。如果有作图中有任何疑问,可以直接联系小编或者关注公众号算法学习日程本。(ps因为内容都是原创的,所以禁止各种商用哈,转载要注明来源哈)
2021年7月份公布的一个包ggfortify,是一个强大的绘图包,它基于ggplot2,使用统一的autoplot函数和简单的参数,完成所有基础模型的绘图任务,简单明了。
小编已经写过2篇保姆级的教程文章介绍如何进行kmeans聚类分析、生存分析、线性回归模型绘图等,感兴趣的小伙伴或者零基础的初学者直接点击下面文章查看哈。
本节主要在前面文章的基础上,在时间序列模型方面,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.alpha | alpha 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语言数据派