目录
1.模型的显著性检验
R语言实现
例题
2.参数显著性检验
例题
小结
1.模型的显著性检验
检验模型的有效性(对信息的提取是否充分)
判定原则:
一个好的拟合模型应该能够提取几乎所有的样本相关信息,即残差序列应该为白噪声序列。反之,如果残差序列为非白噪声序列,那就意味着残差序列中还残留着相关信息未被提取,这就说明拟合模型不够有效
原假设:残差序列为白噪声序列
备择假设:残差序列为非白噪声序列
LB检验统计量:
若拒绝原假设,说明拟合模型不显著;如不能拒绝原假设,认为拟合模型显著有效。
R语言实现
1、用Box.test()对残差序列进行白噪声检验
2、用aTSA程序包里的ts.diag()函数
例题
例4-1续(2)检验1900-1998年全球7级以上地震发生次数序列拟合模型的显著性(α =0.05)
代码如下:
a<-read.table("D:/桌面/4_1.csv",sep=",",header=T)
x<-ts(a$number,start=1900)
plot(x) #时序图
library(aTSA) #aTSA导入程序包
adf.test(x) #单位根检验
for(i in 1:2)print(Box.test(x,lag=6*i))
acf(x)
pacf(x)
#参数估计
fit1=arima(x,order=c(1,0,0),method="ML")
fit1
#模型显著性检验
ts.diag(fit1)
除了最后一句,其他的都在上一篇进行了介绍,在这里就不再介绍了。
图1是残差序列的自相关图,图2是残差序列的偏自相关图,(重点)图3白噪声检验的p值,图4是正态性检验。
如图,可知模型拟合显著有效。
2.参数显著性检验
检验每一个未知参数是否显著非零。删除不显著参数使模型结构最精简
假设条件:
检验统计量:
p值小于a,拒绝原假设,认为参数显著。
R语言arima函数输出不包含参数检验
t值计算:参数估计值除以参数标准差
调用t分布p值函数pt获取p值
例题
例4-1续(3)检验1900-1998年全球7级以上地震发生次数序列拟合模型参数的显著性(a = 0.05)
代码如下:续上面
#参数显著性检验#第一种方法
t<-0.5432/0.0840
t
pt(t,length(x)-length(fit1$coef),lower.tail=F)
#第二种方法
t<-abs(fit1$coef)/sqrt(diag(fit1$var.coef))
t
pt(t,length(x)-length(fit1$coef),lower.tail=F)
返回:
如图,检验p值都小于0.05,所以模型拟合参数显著有效。
下面两道例题就请大家自己分析吧,代码已附上
例4-2续(1)确定美国科罗拉多州某一加油站连续57天盈亏序列模型的显著性检验(α =0.05)
b<-read.table("D:/桌面/4_2.csv",sep=",",header=T)
y<-ts(b$overshort)
plot(y) #时序图
#library(aTSA) #aTSA导入程序包
adf.test(y) #单位根检验
for(i in 1:2)print(Box.test(y,lag=6*i))
acf(y)
pacf(y)
#参数估计
fit2=arima(x,order=c(0,0,1),method="CSS")
fit2
#模型显著性检验
ts.diag(fit2)
#参数显著性检验
t<-abs(fit2$coef)/sqrt(diag(fit2$var.coef))
t
pt(t,length(y)-length(fit2$coef),lower.tail=F)
例4-3续(1)确定1880-1985全球气表平均温度改变值序列模型的显著性检验(α =0.05)
c<-read.table("D:/桌面/4_3.csv",sep=",",header=T)
z<-ts(c$change,start=1880)
plot(z) #时序图
difz<-diff(z) #计算差分
plot(difz) #差分时序图
#library(aTSA) #aTSA导入程序包
adf.test(difz) #单位根检验
for(i in 1:2)print(Box.test(difz,lag=6*i))
acf(difz)
pacf(difz)
#参数估计
fit3<-arima(difz,order=c(1,0,1))
fit3
#模型显著性检验
ts.diag(fit3)
#参数显著性检验
t<-abs(fit3$coef)/sqrt(diag(fit3$var.coef))
t
pt(t,length(difz)-length(fit3$coef),lower.tail=F)
小结
1、模型的显著性检验
检验残差序列是否为白噪声序列可以调用aTSA程序包里的ts.diag函数
2、参数显著性检验
检验每一个未知参数是否显著非零。t检验计算t值,用pt函数求p值。