第一篇文章(时间序列基于r语言)

Posted yuanzhoulvpi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一篇文章(时间序列基于r语言)相关的知识,希望对你有一定的参考价值。

emmmmmmmmmmmmmm

不知道该说什么了,就是一直期望自己可以做一个朝气蓬勃、好学上进、视野宽广、开放自信、可爱、可信风格、可为的95后。

也期望关注我的各位同学们也是如此!


那么闲话也不再多说,我们还是聊一聊时间序列吧!(基于r语言)

网上有很多关于时间序列的文章,大部分写的都很不错,但是对于像我这样的菜鸟,就算是模型再好,没有一个像样的时间序列原始数据对象,你也没有办法运行。那么接下来,我们就先介绍如何在R语言中生成时序对象(time-series object)。时序对象理论上来说就是在R中一种包括观测值、起始时间、终止时间以及周期(如月、季度或年)的结构。只有将数据转成时间序列对象后,我们才能用各种时序方法对其进行分析、建模和绘图。

一个数值型向量或数据框中的一系列可通过ts()函数储存为时序对象:

myseries <- ts(data,start = ,end = ,frequency = )

其中myseries是所生成的时序对象,data是原始的包含观测值的数值型向量,start参数和end参数(可选)给出时序的起始时间和终止时间,frequency为每个单位时间报刊的观测值数量(如frequency = 1对应的年度数据,frequency = 12对应的是月度数据,frequency = 4对应季度数据)。

那么我们就来举个例子。(这个例子是从2003年1月开始,两年内的月度销量数据。)


sales <- c(18,33,41,7,34,35,24,25,24,21,25,20,22,31,

40,29,25,21,22,54,31,25,26,35)

tsales <- ts(sales,start = c(2003,1),frequency = 12) ##1

plot(tsales)


这个图片就是生产的销售数据的时序图。时间轴中的小数点用来表示一年中的某个位置,比如2003.5就是表示2003年7月1日(即2003年全年的一半)

另外,我们还可以用很多命令来获取这个tsales的很多信息。(可能你觉得没有什么用,但是当你面对的是一个陌生的数据用这些东西就比较有用。)接下来就带你来认识一下,

> start(tsales)

[1] 2003    1

> end(tsales)

[1] 2004   12

> frequency(tsales)

[1] 12

从这里就可以看出来这个数据的一些信息。

(哎呀!突然好想说一句话,就是好开心啊,哈哈哈)

其实对于绘图,如果为了好看,还可以加入一些元素,比如说可以通过plot(tsales,type = "o",pch = 19)可以将线条变成连接起来的实心点。如下图:

第一篇文章(时间序列基于r语言)

上面这些,看起来很轻松,那么接下里我们聊一些不轻松的。就是一些函数。这些我觉得对像我这样的菜鸟我觉得很难。但是我觉得还是要看一看。

函数        所在的程序包        用途

  1. ts()     stats     生成时序对象

  2. plot()     graphics     画出时间序列的折线图

  3. start()     stats     返回时间序列的开始时间

  4. end()     stats     返回时间序列的结束时间

  5. frequency()     stats     返回时间序列中时间点的个数

  6. window()     stats     对时序对象取子集

  7. ma()     forecast     拟合一个简单的移动平均模型

  8. stl()     stats     用LOESS光滑将时序分解为季节项、趋势项和随机项

  9. monthplot()     stats     画出时序中的季节项

  10. seasonplot()     forecast     生成季节图

  11. HoltWinters()     stats     拟合指数平滑模型

  12. forecast()     forecast     预测时序的未来值

  13. accuracy()     forecast     返回时序的拟合优度度量

  14. ets()     forecast     拟合指数平滑模型,同时也可以自动选取最优模型

  15. lag()     stats     返回取过指定滞后项后的时序

  16. Acf()     forecast     估计自相关函数

  17. Pacf()     forecast     估计偏自相关函数

  18. diff()     base     返回取过滞后项和(或)差分后的序列

  19. ndiffs()     forecast     找到最优差分次数以移除序列中的趋势项

  20. adf.test()     tseries     对序列做ADF检验以判断其是否平稳

  21. arima()     stats     拟合ARIMA模型

  22. Box.test()     stats     进行Ljung-Box检验以判断模型的残差是否独立

  23. bds.test()     tseries     进行BDS检验以判断序列中的随机变量是否服从独立同分布

  24. auto.arima()     forecast     自动选择ARIMA模型


以上这些虽然可能看起来不太舒服,但是以后当学习完,大概也就知道了。(哈哈哈,啦啦啦,开心,不要问我为什么,就是莫名的)

接下来为大家展示一些数图片,还有一些代码,(这些都是对菜鸟而言)

(如果没有安装TSA包,请先安装好TSA包)


library(TSA)

win.graph(width = 4.875,height = 2.5,pointsize = 8)

data(color)

plot(color,ylab = "Color Property",xlab = "Batch",type = "o")

第一篇文章(时间序列基于r语言)


win.graph(width = 4.875,height = 2.5,pointsize = 8)

data(hare);plot(hare,ylab = "Abundance",xlab = "Year",type = "o")

第一篇文章(时间序列基于r语言)

win.graph(width = 3,height = 3,pointsize = 8)

plot(y = hare,x = zlag(hare),

ylab = "Abundance",xlab = "Provious Year Abundance")

win.graph(width = 4.875,height = 2.5,pointsize = 8)

data(tempdub);plot(tempdub,ylab = "Temperature",type = "o")


这就是我今天打算写的,写的真烂,但是我觉得还是慢慢来吧,哎呀!!(本来就是为了学习的,,,,,,)



以上是关于第一篇文章(时间序列基于r语言)的主要内容,如果未能解决你的问题,请参考以下文章

打麻将 - 基于R语言

基于R语言的TF-IDF算法(文本挖掘)

基于R语言pec包对Cox回归模型进行外部验证与评价

高级绘图技能:基于R语言的时间序列数据动态展示

拜托,算我求你,好好学学R语言吧

基于R语言的Logistic回归模型构建与Nomogram绘制