I have been throught the Im, Pesaran and Shin paper many times to solve this issue but have failed so far.
When I perform the IPS test in R using the plm
package [purtest()
function] I get exactly the same rho values for every panel as when I do the ADF test individually for it, but the problem is that the T-rho individual statistic differs. Shouldn't it be the same with ADF test?
Since I do have the same rho coefficient value I understand that the difference should be coming from the rho coefficient's standard error.
I use same lags and intercept as an exogenous variable at both tests.
Has anyone encountered this before?
As you see to a simple example with one only panel below (same happens with multiple panels), IPS rho value is equal to the ADF z.lag.1 Estimate ( -0.376026893)
However, IPS trho = -3.6235638, while ADF t-statistic is -3.5532
Why is this difference?
Im-Pesaran-Shin Unit-Root Test
Exogenous variables: Individual Intercepts
Automatic selection of lags using AIC: 0 - 0 lags (max: 5)
statistic (Wtbar): -2.41
p-value: 0.008
lags obs rho trho p.trho mean var
Section1 0 52 -0.376026893 -3.6235638 0.005353902223 -1.5254 0.7578
###############################################
# Augmented Dickey-Fuller Test Unit Root Test #
###############################################
Test regression drift
Call:
lm(formula = z.diff ~ z.lag.1 + 1)
Residuals:
Min 1Q Median 3Q Max
-0.51672098 -0.13117631 -0.02416759 0.09858407 0.47207489
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.00638350 0.02452175 -0.26032 0.79568610
z.lag.1 -0.37602689 0.10582777 -3.55320 0.00084152 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1768252 on 50 degrees of freedom
Multiple R-squared: 0.2015994, Adjusted R-squared: 0.1856314
F-statistic: 12.62521 on 1 and 50 DF, p-value: 0.0008415186
Value of test-statistic is: -3.5532 6.3408
Critical values for test statistics:
1pct 5pct 10pct
tau2 -3.51 -2.89 -2.58
phi1 6.70 4.71 3.86
Statistical tests come with a lot of parameters to specify. Your observation seems to relate to the parameter dfcor
to purtest
.
See this example where rho
is the same no matter the value for dfcor
but trho
is slightly different:
library(plm)
data(Grunfeld)
pG <- pdata.frame(Grunfeld)
b <- purtest(pG$value, test = "ips", exo = "intercept", lags = 0, dfcor = TRUE)
b2 <- purtest(pG$value, test = "ips", exo = "intercept", lags = 0, dfcor = FALSE)
summary(b)
#> Im-Pesaran-Shin Unit-Root Test
#> Exogenous variables: Individual Intercepts
#> User-provided lags
#> statistic (Wtbar): -1.419
#> p-value: 0.078
#>
#> lags obs rho trho p.trho mean var
#> 1 0 19 -0.7221173 -3.0980241 0.0267255342 -1.5204 0.8654
#> 2 0 19 -0.8376784 -3.9708351 0.0015756584 -1.5204 0.8654
#> 3 0 19 -0.5503275 -2.4918122 0.1174272537 -1.5204 0.8654
#> 4 0 19 -0.9812049 -4.4232340 0.0002648235 -1.5204 0.8654
#> 5 0 19 -0.0246934 -0.2247631 0.9329996429 -1.5204 0.8654
#> 6 0 19 0.1313902 2.0376353 0.9999127394 -1.5204 0.8654
#> 7 0 19 -0.2767321 -1.5074566 0.5300598000 -1.5204 0.8654
#> 8 0 19 -0.2343526 -1.4013933 0.5833071748 -1.5204 0.8654
#> 9 0 19 -0.3064189 -1.4852375 0.5413593097 -1.5204 0.8654
#> 10 0 19 -0.6898608 -2.8137835 0.0562945264 -1.5204 0.8654
summary(b2)
#> Im-Pesaran-Shin Unit-Root Test
#> Exogenous variables: Individual Intercepts
#> User-provided lags
#> statistic (Wtbar): -1.796
#> p-value: 0.036
#>
#> lags obs rho trho p.trho mean var
#> 1 0 19 -0.7221173 -3.2751947 1.605723e-02 -1.5204 0.8654
#> 2 0 19 -0.8376784 -4.1979203 6.603715e-04 -1.5204 0.8654
#> 3 0 19 -0.5503275 -2.6343147 8.602350e-02 -1.5204 0.8654
#> 4 0 19 -0.9812049 -4.6761911 8.947014e-05 -1.5204 0.8654
#> 5 0 19 -0.0246934 -0.2376169 9.313144e-01 -1.5204 0.8654
#> 6 0 19 0.1313902 2.1541642 9.999458e-01 -1.5204 0.8654
#> 7 0 19 -0.2767321 -1.5936655 4.858266e-01 -1.5204 0.8654
#> 8 0 19 -0.2343526 -1.4815366 5.432370e-01 -1.5204 0.8654
#> 9 0 19 -0.3064189 -1.5701756 4.979070e-01 -1.5204 0.8654
#> 10 0 19 -0.6898608 -2.9746990 3.733484e-02 -1.5204 0.8654