我认为,第一个图和第三个图都能说明数据时AR(1)的,因为ACF是拖尾的,而PACF是结尾的,而且都只有第一个是显著的(在5%的水平上),如果你要建立ARMA模型,数据必须都是平稳的,从第二个图(一阶差分后)可以看出此时数据时没有自相关性和偏相关性,再用Unit Root Test进行检验就可以证明其平稳性了~~~
选择p,q,不是应该用AIC准则或者BIC准则的吗?
在EViews里面,run下面这个程序就直接能得出AIC和BIC的表格,但是要注意变量的命名是不是一样,还有在程序的最后一行要给出自己主观确定的最大滞后长度(这个程序里面写的是8)。
'subroutine end是子程序,laglength是子程序名称,该子程序调用时需要给出两个量,一个是常数最大滞后长度,一个是对哪个时间序列进行建立模型
subroutine laglength(scalar maxlag, series ls)
'the following for next loop will compute the AIC and BIC
smpl @first+1+maxlag @last
for !i=1 to maxlag
equation eq{!i}.ls ls c ls(-1 to -!i)
scalar aicl!i=eq{!i}.@aic
scalar bicl!i=eq{!i}.@schwarz
next
'table will make a table to include the results
' first the row the the colum the table's name is laglength
table(maxlag+1,3) laglength
'表格的宽度第1列3个字符,第2列,3列9个字符
Setcolwidth(laglength,1,3)
Setcolwidth(laglength,2,9)
Setcolwidth(laglength,3,9)
'表格内填的数字,第1行2列写入AIC,1行3列写入BIC
Setcell(laglength,1,2,"AIC")
Setcell(laglength,1,3,"BIC")
'第2行到最后一行写入1到最大滞后长度
for !i=1 to maxlag
Setcell(laglength,!i+1,1,@str(!i))
next
'分别把相应AIC填入相应位置
for !i=1 to maxlag
Setcell(laglength,1+!i,2,aicl!i)
Setcell(laglength,1+!i,3,bicl!i)
next
'去掉不需要的结果
for !i=1 to maxlag
delete aicl!i bicl!i eq!i
next
endsub
'调用子程序,假设滞后长度8,对r进行分析
call laglength(8,ls)