Причинно-следственные испытания колонны мудрым Грейнджер в R

У меня есть 2 матрицы разных параметров: M1 и M3 с одинаковыми размерами. Я хотел бы сделать мудрый столбец grangertest в R.

M1<- matrix( c(2,3, 1, 4, 3, 3, 1,1, 5, 7), nrow=5, ncol=2) 
M3<- matrix( c(1, 3, 1,5, 7,3, 1, 3, 3, 4), nrow=5, ncol=2)

Я хочу сделать тест причинности Грейнджер, чтобы определить, вызывает ли М2 грейнджер M1. Мои настоящие матрицы содержат больше столбцов и строк, но это только пример. Оригинальный код между двумя векторами ниже:

library(lmtest)
data(ChickEgg)
grangertest(chicken ~ egg, order = 3, data = ChickEgg)

Как мне написать это для анализа по столбцам, чтобы в качестве результата возвращалась матрица с 2 строками ("F [2]" и "Pr (> F) [2]") и двумя столбцами?

 akrun23 июн. 2016 г., 09:43
Можете ли вы проверить решение, опубликованное мной?
 akrun23 июн. 2016 г., 09:16
Это дает мне ошибки.
 Joke O.23 июн. 2016 г., 09:21
Да, Акрон. Это потому, что ti изначально предназначен для двух векторов. Я добавлю это сейчас.
 Joke O.23 июн. 2016 г., 09:31
Я только что добавил исходный код из библиотеки lmtest, используя данные "ChickEgg". Мне нужно переписать его так, чтобы я мог выполнять анализ между двумя столбцами из разностных матриц, а не из одной и той же матрицы или фрейма данных.

Ответы на вопрос(2)

Решение Вопроса

Это идет в правильном направлении?

library(lmtest)

M1<- matrix( c(2,3, 1, 4, 3, 3, 1,1, 5, 7), nrow=5, ncol=2) 
M3<- matrix( c(1, 3, 1,5, 7,3, 1, 3, 3, 4), nrow=5, ncol=2)

g <- list()
for (i in 1:ncol(M1)){
g[[i]]  <- grangertest(M1[ ,i] ~ M3[ ,i])
}

foo <- function(x){ 
  F <- x$F[2] 
  P <- x

Это идет в правильном направлении?

Pr(>F)`[2] data.frame(F = F, P = P) } do.call(rbind, lapply(g, foo)) F P 1 0.3125000 0.6754896 2 0.1781818 0.7457180
 Joke O.23 июн. 2016 г., 09:41
Молодец, Алекс. Это сработало отлично. Я просто перенес результаты.

Мы можем использоватьsapply

sapply(1:ncol(M1), function(i) {
       m1 <- grangertest(M1[,i]~M3[,i])
       data.frame(F=m1$F[2], p=m1

Мы можем использоватьsapply

Pr(>F)`[2])}) # [,1] [,2] #F 0.3125 0.1781818 #p 0.6754896 0.745718

Ваш ответ на вопрос