第一篇文章(时间序列基于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)可以将线条变成连接起来的实心点。如下图:
上面这些,看起来很轻松,那么接下里我们聊一些不轻松的。就是一些函数。这些我觉得对像我这样的菜鸟我觉得很难。但是我觉得还是要看一看。
函数 所在的程序包 用途
ts() stats 生成时序对象
plot() graphics 画出时间序列的折线图
start() stats 返回时间序列的开始时间
end() stats 返回时间序列的结束时间
frequency() stats 返回时间序列中时间点的个数
window() stats 对时序对象取子集
ma() forecast 拟合一个简单的移动平均模型
stl() stats 用LOESS光滑将时序分解为季节项、趋势项和随机项
monthplot() stats 画出时序中的季节项
seasonplot() forecast 生成季节图
HoltWinters() stats 拟合指数平滑模型
forecast() forecast 预测时序的未来值
accuracy() forecast 返回时序的拟合优度度量
ets() forecast 拟合指数平滑模型,同时也可以自动选取最优模型
lag() stats 返回取过指定滞后项后的时序
Acf() forecast 估计自相关函数
Pacf() forecast 估计偏自相关函数
diff() base 返回取过滞后项和(或)差分后的序列
ndiffs() forecast 找到最优差分次数以移除序列中的趋势项
adf.test() tseries 对序列做ADF检验以判断其是否平稳
arima() stats 拟合ARIMA模型
Box.test() stats 进行Ljung-Box检验以判断模型的残差是否独立
bds.test() tseries 进行BDS检验以判断序列中的随机变量是否服从独立同分布
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")
win.graph(width = 4.875,height = 2.5,pointsize = 8)
data(hare);plot(hare,ylab = "Abundance",xlab = "Year",type = "o")
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语言)的主要内容,如果未能解决你的问题,请参考以下文章