我正在测试R中Arima拟合的可靠性,并尝试了以下例程:
我用设置的参数模拟了AR(1)过程的100个步骤,并将其重复了1000次。我取拟合参数的平均值。
我重复该过程1000次,并检查平均拟合参数的分布,并得到以下结果。如您所见,正确的参数远远超出了分布的范围。分布的形状与预期一致(正态,预测方差),但是似乎存在系统性偏倚,低估了均值。
这是Arima拟合过程或仿真的问题,还是我不了解的统计信息的问题?
nsim<-1e3
a<- 0.5
b<- 0.1
N<-1000
AR<-1:N
sigmas<-1:N
for (k in 1:N){
M<-replicate(nsim,arima.sim(list(ar=a),n=100,sd=b))
simulations<-list()
for (i in 1:nsim) simulations[[i]] <- arima(M[,i],order=c(1,0,0))
coefs1<-1:nsim
coefs2<-1:nsim
for (i in 1:nsim){
coefs1[i] <- simulations[[i]]$coef[2]
coefs2[i] <- simulations[[i]]$sigma2
}
AR[k]<-mean(coefs1)
sigmas[k]<-mean(coefs2)
cat(k, " "); flush.console()
}
plot(density(sigmas),main="Distribution of fitted sigma^2",xlab="sig2",xlim=c(0.0096,0.01005))
abline(v=0.01)
plot(density(AR),main="Distribution of fitted slopes",xlab="AR parameter",xlim=c(.46,0.505))
abline(v=0.5)[enter image description here][2]
[1]: https://i.stack.imgur.com/g04O3.jpg
[2]: https://i.stack.imgur.com/ygq3U.jpg