pssbounds

Module to display the necessary critical values to conduct the Pesaran, Shin and Smith (2001) bounds test for cointegration (R & Stata)

View the Project on GitHub andyphilips/pssbounds

pssbounds

Module to display the necessary critical values to conduct the Pesaran, Shin and Smith (2001) bounds test for cointegration. This is available for both Stata and R.

:warning: pssbounds is an outdated package that is no longer updated or supported. A new and improved version can be found at http://andyphilips.github.io/dynamac/.

Download

Stata

The most recent Stata version of pssbounds can be downloaded by clicking here. This program is part of a suite that also includes dynpss, a program to dynamically simulate autoregressive distributed lag models, available HERE. See Jordan and Philips (2017) for an in-depth discussion of this program.

R

In R, the pssbounds function is part of the pss package, available HERE. To download pss, you will need to obtain the devtools package and make a call from R to GitHub:

install.packages("devtools")
library(devtools)
install_github("andyphilips/pss")
library(pss)

You should now be ready to use pss.

Table of Contents

Description

pssbounds is a module that displays the necessary critical values to conduct the Pesaran, Shin and Smith (2001, henceforth PSS) bounds test for cointegration. It is available for both Stata and R.

As discussed in Philips (2017), the upper and lower bounds of the PSS cointegration test are non-standard, and depend on the number of observations, the number of regressors (k) appearing in levels, and the restrictions (if any) placed on the intercept and trend (called a case). Asymptotic critical values are provided by PSS (2001), while small-sample critical values are from Narayan (2005). The following five cases are possible: I (no intercept, no trend), II (restricted intercept, no trend), III (unrestricted intercept, no trend), IV (unrestricted intercept, restricted trend), V (unrestricted intercept, unrestricted trend). See PSS (2001) for more details; Case III is the most common.

pssbounds assumes that you have already run the ARDL-bounds model, ensured white-noise residuals, and have obtained the statistic from an F-test on the restriction that all variables appearing in levels are jointly equal to zero (see Philips 2017 for examples of this procedure). The bounds test for cointegration has three possible outcomes. If the value of the F-statistic lies outside the I(0) critical value (or lower “bound”), the test fails to reject the null hypothesis and we may conclude that all regressors appearing in levels are in fact stationary. If the value of the F-statistic lies outside the I(1) critical value (upper “bound”), the test rejects the null hypothesis and we may conclude that cointegration exists. If the value of the F-statistic lies between the I(0) and I(1) critical values, the test is inconclusive.

pssbounds also provides the critical values of an optional t-test for cointegration. It can be used to test the null hypothesis that the coefficient on the lagged dependent variable is equal to zero, although note that the upper and lower I(0)-I(1) bounds are exactly the opposite as for the F-test. No small-sample critical values are currently available for this test, so these are asymptotic approximations, and no values are available for cases II or IV.

Syntax

Stata

pssbounds , observations(#) fstat(#) k(#) [tstat(#) case(#)]

Required options

Additional options

R

pssbounds(obs, fstat, tstat=NULL, case, k)

Required options

Additional options

Reference

If you use pssbounds in Stata, please cite:

Jordan, Soren and Andrew Q. Philips. 2017 “Cointegration testing and dynamic simulations of autoregressive distributed lag models”. Working Paper.

and

Philips, Andrew Q. 2017. “Have your cake and eat it too? Cointegration and dynamic inference from autoregressive distributed lag models.” American Journal of Political Science.

If you use pssbounds in R, please cite:

Jordan, Soren and Andrew Q. Philips. 2016. “pss: R package to perform the bounds test for cointegration and perform dynamic simulations.”

and

Philips, Andrew Q. 2017. “Have your cake and eat it too? Cointegration and dynamic inference from autoregressive distributed lag models.” American Journal of Political Science.

Authors

Andrew Q. Philips, Department of Political Science, University of Colorado at Boulder. andrew.philips [AT] colorado.edu. @andyphilips

and

Soren Jordan, Department of Political Science, Auburn University. sorenjordanpols [AT] gmail.com.

Citations

Narayan, Paresh Kumar. 2005. “The Saving and Investment Nexus for China: Evidence from Cointegration Tests.” Applied Economics 37(17):1979-1990.

Pesaran, M Hashem, Yongcheol Shin and Richard J Smith. 2001. “Bounds testing approaches to the analysis of level relationships.” Journal of Applied Econometrics 16(3):289-326.

Examples

Stata

See the working paper for up-to-date examples of pssbounds in action.

R

library(MASS)
library(car)
data("airquality")
d.wind <- c(NA,diff(airquality$Wind))
d.temp <- c(NA,diff(airquality$Temp))
l.wind <- lag(airquality$Wind, k = 1)
l.temp <- lag(airquality$Temp, k = 1)
cbind(d.wind, d.temp, l.wind, l.temp)

Run an error-correction model with the following regressors: the first difference of temp, and the lagged-levels of temp and wind (white-noise residuals assumed):

res <- lm(d.temp ~ l.temp + l.wind + d.wind)
summary(res) # t-stat on l.temp = 4.438

Perform F-test:

linearHypothesis(res, c("l.temp = 0", "l.wind = 0")) # 9.8789

Grab critical values from bounds test:

bounds <- pssbounds(obs = 153, case = 3, k = 1, fstat = 9.879, tstat = 4.438)

F-statistic bounds test concludes I(1) and cointegrating, but the t-statistic test concludes all I(0) regressors.

Run the same model excluding the constant:

res2 <- lm(d.temp ~ l.temp + l.wind + d.wind - 1)
summary(res2) # t-stat on l.temp =  1.445
linearHypothesis(res2, c("l.temp=0","l.wind = 0")) # 1.045
bounds2 <- pssbounds(case = 1, tstat = 1.445, fstat = 1.045, obs = 153, k = 1)

Now the bounds F-statistic test concludes I(0) regressors.

Version

Stata version: 1.0.5; R version: 0.1.3.9000.