手动检查R中的面板单元根测试

时间:2012-04-03 03:06:38

标签: r testing statistics linear-regression

我花了很多时间寻找一个可以运行Pesaran(2007)单位根测试的特殊包(假设横截面依赖性不同于其他大多数)并且我没有找到。所以,我决定手动完成;但是,我不知道我哪里出错了,因为我的结果与Microsoft Excel的结果非常不同(非常容易完成)。

我的数据框架由22个国家/地区组成,每日价格指数为506。以下是使用Pesaran(2007)单位根测试运行的模型:

(i)只有拦截

enter image description here

其中$ \ overline {Y} $是每个国家/地区观察时的横截面平均值$ t $和$ b $是我们感兴趣的系数,因为它可以让我们计算ADF检验统计量然后确定该过程是否静止。

我以下列方式构建了这些变量:

(德尔塔)Y(t)的

dif.yt = diff(yt) 
## yt is the object containing all the observations for a specific country 
## (e.g. Australia)

Y(T-1)

yt.lag.1 = lag(yt, -1)

Y(巴)(T-1)

ybar.lag.1 = lag(c(rowMeans(x)), -1) 
## x is the object containing my entire data frame

(德尔塔)Y(巴)(T-1)

dif.ybar.lag.1 = diff(ybar.lag.1)

(德尔塔)Y(巴)(T-2)

dif.ybar.lag.2 = diff(lag(c(rowMeans(x)), -2))

(德尔塔)Y(T-1)

dif.yt.lag.1 = diff(yt.lag.1)

(德尔塔)Y(T-2)

dif.yt.lag.2 = diff(lag(yt, -2)

在单独构建每个变量之后,我运行线性回归

reg = lm(dif.yt ~ yt.lag.1[-1] + ybar.lag.1[-1] + dif.ybar.lag.1 + 
                  dif.ybar.lag.2 + dif.yt.lag.1 + dif.yt.lag.2)
summary(reg)

很明显,我的回归方程中的解释变量长度不同,所以我想知道R中是否有一种方法可以使所有变量长度相等(可能带有函数)。

另外,我想知道我使用的程序是否正确以及是否有更优化的方法。

1 个答案:

答案 0 :(得分:1)

 library(dynlm)

    #object class is a zoo or ts 

  reg =   dynlm(d(yt) ~ (L(yt, 1) + L(ybar,1) + d(L(ybar,1) + ....
     data = ~yourdata, start = .... other args)

summary(reg)

有关该套餐的更多详情:http://cran.r-project.org/web/packages/dynlm/dynlm.pdf