时间序列
Posted yuanzhoulvpi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间序列相关的知识,希望对你有一定的参考价值。
这一次的内容主要是描述、建模和估计时间序列的确定性趋势,最简单方法是通过常数均值函数,估计常数均值的方法待会给出,我们重要的还是研究在不同的条件下对估计量准确度的评估,然后,使用回归的方法来估计时间上的线性或二次的趋势。然后,我们探讨的是关于周期性或季节性趋势建模的方法,然后讨论这些回归方法的可靠性和有效性。在最后,我们展开了研究拟合模型的优良的残差分析工作,并且引入了非常重要的、贯穿接下来学习过程中反复涉及的函数,这个函数叫样本自相关函数。
趋势分为两种,一个是确定性的一个是随机性的。“趋势”是难以捉摸的,同一时间序列在不同的数据分析者看来可能都是不一样的。至于什么是确定性与随机性的区分,以及什么是确定性和什么是随机性的,现在先不讨论,具体的可以看这本书的第三章开头的介绍。
另外,我们也不介绍常数均值的估计,因为介绍起来太麻烦了,还有一些公式要打出来,特别麻烦,如果想学的可以看书第三章的3.2。
对于回归方法的介绍,我们也不介绍了,毕竟这是我的学习笔记,打出来太太太麻烦了,但是一定要看书上的公式。要不然你会看不懂的。具体的在第三章3.3。
我主要是结合示例让各位对一些变量理解的更加清楚一点。
程序1:
data(rwalk)
model1 <- lm(rwalk ~ time(rwalk))
summary(model1)
运行结果:
Call:
lm(formula = rwalk ~ time(rwalk))
Residuals:
Min 1Q Median 3Q Max
-2.70045 -0.79782 0.06391 0.63064 2.22128
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.007888 0.297245 -3.391 0.00126 **
time(rwalk) 0.134087 0.008475 15.822 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’1
Residual standard error: 1.137 on 58degrees of freedom
Multiple R-squared: 0.8119, Adjusted R-squared: 0.8086
F-statistic: 250.3 on 1 and 58 DF, p-value: < 2.2e-16
表格程序3-2:
> win.graph(width = 4.875,height =2.5,pointsize = 8)
> plot(rwalk,type = "o",ylab ="y",main = "graph3-2")
> abline(model1)
周期性或季节性趋势
(他们是什么?我就不解释了,我就直接放上图片吧,这样或许更加直接一点,你可以看书本23面,有个具体的介绍)
我们来建立一个模型来看看我们对季节均值模型的回归的结果:
Call:
lm(formula = tempdub ~ month - 1)
Residuals:
Min 1Q Median 3Q Max
-8.2750 -2.2479 0.1125 1.8896 9.8250
Coefficients:
Estimate Std. Error t valuePr(>|t|)
monthJanuary 16.608 0.987 16.83 <2e-16 ***
monthFebruary 20.650 0.987 20.92 <2e-16 ***
monthMarch 32.475 0.987 32.90 <2e-16 ***
monthApril 46.525 0.987 47.14 <2e-16 ***
monthMay 58.092 0.987 58.86 <2e-16 ***
monthJune 67.500 0.987 68.39 <2e-16 ***
monthJuly 71.717 0.987 72.66 <2e-16 ***
monthAugust 69.333 0.987 70.25 <2e-16 ***
monthSeptember 61.025 0.987 61.83 <2e-16 ***
monthOctober 50.975 0.987 51.65 <2e-16 ***
monthNovember 36.650 0.987 37.13 <2e-16 ***
monthDecember 23.642 0.987 23.95 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’1
Residual standard error: 3.419 on 132degrees of freedom
Multiple R-squared: 0.9957, Adjusted R-squared: 0.9953
F-statistic: 2569 on 12 and 132 DF, p-value: < 2.2e-16
这些数据展示了对气温数据拟合的季节均值模型的结果,此时,报告中的t值和Pr(>|t|)值都没有多大的意义,因为他们都与检验零假设贝塔(这个符号难打,我就不打了)有关。忘记说了,这个模型不包含截距项。你需要让r软件也了解这一点。另外,我们可以使用截距项,但是要删去方程(3.3.3)中的任何一个贝塔。
为了对比,我们来比较一下如果包含截距项,这个结果会是什么样的。
代码如下:
model3 <- lm(tempdub ~ month) # Januaryis dropped automatically
summary(model3)
结果如下:
Call:
lm(formula = tempdub ~ month)
Residuals:
Min 1Q Median 3Q Max
-8.2750 -2.2479 0.1125 1.8896 9.8250
Coefficients:
Estimate Std. Error t valuePr(>|t|)
(Intercept) 16.608 0.987 16.828 < 2e-16 ***
monthFebruary 4.042 1.396 2.896 0.00443 **
monthMarch 15.867 1.396 11.368 < 2e-16 ***
monthApril 29.917 1.396 21.434 < 2e-16 ***
monthMay 41.483 1.396 29.721 < 2e-16 ***
monthJune 50.892 1.396 36.461 < 2e-16 ***
monthJuly 55.108 1.396 39.482 < 2e-16 ***
monthAugust 52.725 1.396 37.775 < 2e-16 ***
monthSeptember 44.417 1.396 31.822 < 2e-16 ***
monthOctober 34.367 1.396 24.622 < 2e-16 ***
monthNovember 20.042 1.396 14.359 < 2e-16 ***
monthDecember 7.033 1.396 5.039 1.51e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’1
Residual standard error: 3.419 on 132degrees of freedom
Multiple R-squared: 0.9712, Adjusted R-squared: 0.9688
F-statistic: 405.1 on 11 and 132 DF, p-value: < 2.2e-16
这时候我们可以看出这个二月份系数表示的是与一月份的系数的差异,也就是说现在这个二月份实际的系数=16.608+4.042=20.650.。同样的来说,三月的实际系数就是=16.608+15.867=32.475.以此类推,想必大家应该懂了吧。
接下来我们来讨论余弦趋势:在某些情况下,季节趋势可以简地用余弦曲线来模型化,余弦曲线能在反映从一个时期到另一个时期的平滑变化的同时仍然保留季节性。(具体的希望大家可以看书,尽量看看真实的书,不要看电子书,这个余弦趋势在书本的25面)
我们用一个例子来解释一下。
代码如下:
har <- harmonic(tempdub,1)
model4 <- lm(tempdub ~ har)
summary(model4)
结果如下:
Call:
lm(formula = tempdub ~ har)
Residuals:
Min 1Q Median 3Q Max
-11.1580 -2.2756 -0.1457 2.3754 11.2671
Coefficients:
Estimate Std. Error t valuePr(>|t|)
(Intercept) 46.2660 0.3088 149.816 < 2e-16 ***
harcos(2*pi*t) -26.7079 0.4367 -61.154 < 2e-16 ***
harsin(2*pi*t) -2.1697 0.4367 -4.968 1.93e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’1
Residual standard error: 3.706 on 141degrees of freedom
Multiple R-squared: 0.9639, Adjusted R-squared: 0.9634
F-statistic: 1882 on 2 and 141 DF, p-value: < 2.2e-16
在这个输出结果中,时间是以年度量的,以1964年,一年为频率,时间序列值与这里的拟合的余弦曲线一起展示在图3-6中,趋势对数据拟合相当好,除了多数1月份的值,这里的一月份观测值低于模型的预测值。
代码如下:
win.graph(width = 4.875,height =2.5,pointsize = 8)
plot(ts(fitted(model4),freq = 12,start =c(1964,1)),
ylab = "Temperature",type ="l",);points(tempdub)
算了,今天就写到这里,因为网络问题,emmmmmm,在最后,想要说一下,就是今天太匆忙了,然后写的不好,希望大家见谅。不过,细想,这东西谁看呀,哈哈哈。
以上是关于时间序列的主要内容,如果未能解决你的问题,请参考以下文章