[R] Automatically extract info from Granger causality output

Pfaff, Bernhard Dr. Bernhard_Pfaff at fra.invesco.com
Fri Apr 15 10:13:29 CEST 2011


Dear Ivan,

first, it would pay-off in terms of readability to employ line breaks and second to provide a reproducable code snippet and third which package you have used. Now to your questions:
1) What happens if you provide colnames for your objects?
2) What happens if you omit the $ after count?

Best,
Bernhard

ps: the function seems to have been ported from the package 'vars'. In this package the function causality() is included which returns a named list with elements of class htest.  

> -----Ursprüngliche Nachricht-----
> Von: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] Im Auftrag von ivan
> Gesendet: Donnerstag, 14. April 2011 19:37
> An: r-help at r-project.org
> Betreff: [R] Automatically extract info from Granger causality output
> 
> Dear Community,
> 
> this is my first programming in R and I am stuck with a 
> problem. I have the following code which automatically 
> calculates Granger causalities from a variable, say e.g. "bs" 
> as below, to all other variables in the data frame:
> 
> log.returns<-as.data.frame( lapply(daten, function(x) 
> diff(log(ts(x))))) y1<-log.returns$bs
> y2<- log.returns[,!(names(log.returns) %in% "bs")]
> Granger<- function(y1,y2) {models=lapply(y2, function(x)
> VAR(cbind(x,y1),ic="SC") ); results=lapply(models,function(x) 
> causality(x,cause="y1")); print(results)}
> Count<-Granger(y1,y2)
> 
> which produces the following output (I have printed only part 
> of it (for Granger causality of bs on ml)):
> 
> $ml
> $ml$Granger
> 
>         Granger causality H0: y1 do not Granger-cause x
> 
> data:  VAR object x
> F-Test = 0.2772, df1 = 1, df2 = 122, p-value = 0.5995
> 
> 
> $ml$Instant
> 
>         H0: No instantaneous causality between: y1 and x
> 
> data:  VAR object x
> Chi-squared = 19.7429, df = 1, p-value = 8.859e-06
> 
> My questions:
> 
> 1)How can I edit the function above so that the output writes: Granger
> causality H0: bs do not Granger-cause ml   rather than  Granger
> causality H0: y1 do not Granger-cause x?
> 
> 2) I want to extract the p-values of the tests into a data 
> frame for instance. The problem is that the output has a 3 
> layer structure.
> Thus, for the above p-value I need to write count$ml$Granger$p.value.
> I thought of a loop of something like for(i in 
> 1:length(count)) {z=count$[[i]]$Granger$p.value} but it didn't work.
> 
> Thank you very much for your help.
> 
> Best Regards.
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
*****************************************************************
Confidentiality Note: The information contained in this ...{{dropped:10}}



More information about the R-help mailing list