时间序列
Posted yuanzhoulvpi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间序列相关的知识,希望对你有一定的参考价值。
很抱歉昨天没有写完,然后今天继续写,嘿嘿!
在这个书本的26面至29面,主要还是介绍以及证明一些关于回归估计的可靠性和有效性的一些名词,证明有的复杂,有的简单,如果没有符号帮助理解的话,也很难说清楚。说了也说不清楚,说了也没用。所以,如果有人愿意看的,可以仔细看一看,希望我们可以交流一下,我也是菜鸟,我懂得也很少。
现在我们偏重于对回归结果的解释。
我们曾经提到过标准的回归惯例计算未知回归系数的最小二乘估计量(具体的解释在书本30面,公式太难打了)。在30面有个公式叫残差好的标准差(3.5.1)。我们可以用这个来估计这个过程的标准差。突然感觉聊这些东西太沉重了。换一个轻松的。
Emmm,趋势拟合优度的无单位度量是r平方,也可称为可决系数或者多重r方,r的平方可以解释为它是观测序列与估计的趋势之间的演不了相关系数的平方,r的平方,也可以表示序列的变化被估计得趋势所解释的部分。比如下面的数据就是对随机游动数据拟合一条直线得到的比较完整的回归结果,
模型数据:
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
这个模型数据的代码:
library(TSA)
data(rwalk)
model1 <- lm(rwalk ~ time(rwalk))
summary(model1)
从这个数据结果可以看出:随机游动序列中大约81%的变化可以用线性时间趋势来解释,调整后的r平方对r平方做了很小的调整,获得了基于趋势中待估参数个数的近似无偏差估计量。其实利用不同的参数数量比较模型是有用的。对了,重要的一点就是,这些标准差基于随机项是白噪声的假设,但是事实上很少如此。在这个模型结果里,还有一个t值或者叫t比率,他们是回归系数的贵除以个孩子的标准误差,如果随机项是正态分布的白噪声,那么这些比率为检验回归系数的显著性提供了合理的检验统计量,在每种情况下,零假设是对应的未知系数等于零,显著水平和p值通过n-p个自由度的t分布来确定。
接下来,我们来看一下关于残差一个的结论:
如果趋势模型比较恰当,那么残差应该基本上像真实随机项那样变化,那么对随机项不同的假设可以通过观察残差来估计。如果随机项是白噪声,那么残差在行为上应该大致类似于均值为零,标准差为s的独立(正态)随机变量。
利用得到的残差或者标准差,下一步是研究残差的各种图形,首先观察残差的时间序列图,如果数据可能具有季节性,我们会像图1-9那样使用符号标记,这样易于识别同一季节的残差。
代码:
#g1-9
data(oilfilters)
plot(oilfilters,type = "l",ylab ="Sales",main = "graph1-9")
points(y = oilfilters,x =time(oilfilters),pch = as.vector(season(oilfilters)))
代码:
#g1-7
win.graph(width = 4.875,height =2.5,pointsize = 8)
data(tempdub);plot(tempdub,ylab ="Temperature",main = "graph1-7",type = "o")
代码:
#3-8
plot(y = rstudent(model3),x = as.vector(time(tempdub)),xlab ="time",
ylab = "standardizedResiduals",type = "o",main = "graph3-8")
代码:
#3-9
plot(y = rstudent(model3),x =as.vector(time(tempdub)),xlab ="time",
ylab = "standardizedResiduals",type = "l",main = "graph3-9")
points(y = rstudent(model3),x =as.vector(time(tempdub)),
pch = as.vector(season(tempdub)))
首先,我们用以季节均值模型拟合的月平均气温序列来说明残差分析的一些概念,图标1-7显示了该数据的时间序列图,图表3-8显示了用季节均值模型拟合的月平均气温序列的标准残差的时间序列图。如果随机项是白噪声,模型充分的拟合了趋势,我们预期该图形应该呈现一个矩阵散点图而没有任何明显的模式,该图表没有出现明显的偏离随机性外观的情况,图表3-9重复了改时间序列图,但是成家了季节符号标志,同样没有明显的与伊朗的不同月份有关的模型。
接下来,我们观察标准残差与估计得相应趋势,或者拟合值,如图表3-10,再一次地,我们的目的是寻找模式,是不是较小的残差伴随着较小的拟合趋势值,较大的残差伴随着较大的拟合趋势值?是不是变动较小的残差伴随着某种规模的拟合趋势值而变化较大的残差伴随着另外一种类型的拟合趋势值?
代码:
#3-10
plot(y = rstudent(model3),x =as.vector(fitted(model3)),xlab = "Fitted Trend Values",
ylab = "StandardizedResiduals",type = "n",main = "graph3-10")
points(y = rstudent(model3),x =as.vector(fitted(model3)),
pch = as.vector(season(tempdub)))
整体的非正态性可以由标准残差的直方图来估计,图表3-11显示了气温序列季节均值模型的标准残差的频率直方图,图形像正态分布那样,呈现出某种对称性并且在高值和低值两端逐渐减小。
代码:
#3-11
hist(rstudent(model3),xlab ="Standardized Residuals",
main = "histogram of rstudent(model3)g3-11")
正态分布可以通过所谓的正态得分或者分位数—分位数(QQ)图来仔细检验,这样的图显示了数据的分位数和根据正态分布计算的理论分位数,对于正态分布数据,QQ图看起来近似于一条直线,表3-12显示了气温序列季节均值模型的正态得分QQ图,此处的直线型图形支持了该模型中随机项是正态分布的假设。
代码:
#3-12
win.graph(width = 2.5,height =2.5,pointsize = 8)
qqnorm(rstudent(model3))
今天就写到这里吧,emmmmm,要事相告!明天我不更新了,因为我女朋友要写,嘻嘻。
我会在星期四多写一点。另外结束这本书第三章内容。
以上是关于时间序列的主要内容,如果未能解决你的问题,请参考以下文章