Skip to content
Prev 366743 / 398503 Next

Granger-causality test using vars package

Thank you for your reply. The code follows the example in the vignette and I changed it only a little as shown below.

library(vars)
data(Canada)
summary(Canada)
stat.desc(Canada,basic=FALSE)
plot(Canada, nc=2, xlab="")

# Testing for unit roots using ADF
adf1<-adf.test(Canada[,"prod"])
adf1
adf2<-adf.test(Canada[,"e"])
adf2
adf3<-adf.test(Canada[,"U"])
adf3
adf4<-adf.test(Canada[,"rw"])
adf4

# Use VAR to create a list of class varest
Canada<-Canada[, c("prod", "e", "U", "rw")]
p1ct<-VAR(Canada, p=1, type = "both")
p1ct
summary(p1ct, equation="e")
plot(p1ct, names = "e")

#Run Granger-causality test
causality(p1ct)

The Granger-causality test returns following output
$Granger

	Granger causality H0: prod do not Granger-cause e U rw

data:  VAR object p1ct
F-Test = 11.956, df1 = 3, df2 = 308, p-value = 1.998e-07


$Instant

	H0: No instantaneous causality between: prod and e U rw

data:  VAR object p1ct
Chi-squared = 3.7351, df = 3, p-value = 0.2915


Warning message:
In causality(p1ct) : 
Argument 'cause' has not been specified;
using first variable in 'x$y' (prod) as cause variable.

I am struggling with the result as it is not clear to me whether the variable prod Granger-causes e or U or rw. H0 is that prod does not Granger-cause e U rw. What does that mean? How can I find out if prod Granger-causes e, U and rw, respectively i.e. how can I determine that prod Granger-causes e, U and rw?

Thanks for your support in advance.