作者丨梅子
来源丨医数思维云课堂(ID:Datamedi)
确定拟合模型的口径之后,我们还要对该拟合模型进行必要的检验。这里指的检验是指模型的显著性检验和参数的显著性检验。
01
模型的显著性检验
模型的显著性检验主要是模型的有效性。一个模型是否显著有效主要看提取的信息是否充分。
一个好的拟合模型应该能够提取观察值序列中几乎所有的样本相关信息,即残差序列应该为白噪声序列。这样的模型称为显著有效模型。
反之,如果残差序列为非白噪声序列,那就意味着序列中还残留着相关信息未被提取,这就说明拟合模型不够有效,通常需要选择其他模型,重新拟合。因此,模型的显著性检验就是残差序列的白噪声检验。
1.AR(p)模型检验
检验1950—2008年我国邮路及农村投递线路每年新增里程数序列拟合模型的显著性。
mileage<-read.table("mileage.txt",header=T)
miles<-ts(mileage[2],start=1950)
x.fit<-arima(miles,order=c(2,0,0),method="ML")
##对残差x.fit$residual进行白噪声检验
for(i in 1:2) print(Box.test(x.fit$residual,lag=6*i))
结果如下:
P>0.05,接受原假设,即残差为白噪声,所以拟合模型显著有效。
2.MA(q)模型检验
检验美国科罗拉多州某一加油站连续57天的 OVERSHORT 序列拟合模型的显著性。
ver<-read.table("overshort.txt",header=T)
overshort<-ts(over[2],start=1)
overshort.fit<-arima(overshort,order=c(0,0,1))
##对残差overshort.fit.fit$residual进行白噪声检验
for(i in 1:2) print(Box.test(overshort.fit$residual,lag=6*i))
结果如下:
P>0.05,接受原假设,即残差为白噪声,所以拟合模型显著有效。
3.ARMA(p,q)模型检验
检验1880—1985年全球气表平均温度改变值差分序列拟合模型的显著性。
a<-read.table("average_temp.txt",header=T)
a<-ts(a[2],start=1880)
a.fit<-arima(a,order=c(1,1,1),method="CSS")
for(i in 1:2) print(Box.test(a.fit$residual,lag=6*i))
结果如下:
P>0.05,接受原假设,即残差为白噪声,所以拟合模型显著有效。
02
参数的显著性检验
参数的显著性检验就是要检验每一个未知参数是否显著非零。这个检验的目的是使模型最精简。
如果某个参数不显著,即表示该参数所对应的那个自变量对因变量的影响不明显,该自变量可以从拟合模型中剔除。最终模型将由一系列参数显著非零的自变量表示。
R 软件不提供参数的显著检验结果,一般默认输出参数显著非零。如果用户想获得参数检验统计量的P值,需要自己计算参数的t统计量的值及统计量的P值。
调用t分布P值函数pt即可获得t统计量的P值。
pt函数的命令格式为:
pt(t,df=,lower.tail=)
-t:统计量的值
-df:自由度
-lower.tail:计算概率的方向
-lower.tail =T 计算Pr(X<=x)(对于参数显著检验,如果参数估计值为负,选择lower.tail =T )
lower.tail =F 计算Pr(X>x)(对于参数显著检验,如果参数估计值为正,选择lower.tail =F)
1.AR(p)模型参数检验
检验1950—2008年我国邮路及农村投递线路每年新增里程数序列拟合模型参数的显著性。
x<-ts(a$kilometer,start=1950)
x.fit<-arima(x,order = c(2,0,0),method = "ML")
x.fit
结果如下:
#ar1系数显著性检验
t1<-0.7185/0.1083
pt(t1,df=56,lower.tail = F)
结果如下:
#ar2系数显著性检验
t2<-0.5294/0.1067
pt(t2,df=56,lower.tail = T)
结果如下:
#ar3系数显著性检验
t0=11.0223/3.0906
pt(t0,df=56,lower.tail = F)
结果如下:
参数检验结果显示,三个系数均显著非零,说明模型参数有统计学意义。
时间序列之模型检验的内容就讲到这里,大家有任何疑问都可以加入我们的QQ群:生物统计学习讨论群:938773609。期待我们的再次相约。