NeweyWest - аргумент нулевой длины

Привет, я новичок в R, вот моя проблема:

Я пытаюсь воспроизвести тему магистерской диссертации, работающую с французской моделью fama для оценки активов в отношении криптовалют. В основном я получил форуму:

r=бета1*rm+бета2*SMB+бета3*HML

Я получил свои расчеты для rm, SMB и HML (все векторы в пределах 364 записей) и мои исторические результаты r в пределах 364 записей. (rm под названием CRIX, ссылаясь на тест) Теперь я проверил, могу ли я просто использовать функцию lm для моей регрессии (которая отлично работает), но тест на гетероскедастичность показал, что мне нужно использовать надежные стандартные ошибки, поэтому я бы использовал NeweyWest функция, но всегда получаю ошибку:

Error in if (ncol(x) == 1) { : argument is of length zero

 bitcoin <- lm(formula = returns_daily[,"bitcoin"]~CRIX+SMB+HML)

summary(bitcoin)

Call:
lm(formula = returns_daily[, "bitcoin"] ~ CRIX + SMB + HML)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.218119 -0.028217  0.000865  0.029360  0.252865 
Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.005456   0.002867   1.903 0.057856 .  
CRIX         0.193845   0.051950   3.731 0.000221 ***
SMB          0.038500   0.034388   1.120 0.263637    
HML         -0.067920   0.034054  -1.994 0.046856 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.05312 on 360 degrees of freedom
Multiple R-squared:  0.0532,    Adjusted R-squared:  0.04531 
F-statistic: 6.743 on 3 and 360 DF,  p-value: 0.0001952

coeftest(bitcoin)
t test of coefficients:
              Estimate Std. Error t value  Pr(>|t|)    
(Intercept)  0.0054561  0.0028673  1.9029 0.0578556 .  
CRIX         0.1938453  0.0519501  3.7314 0.0002212 ***
SMB          0.0385002  0.0343879  1.1196 0.2636373    
HML         -0.0679199  0.0340543 -1.9945 0.0468558 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> coeftest(bitcoin,vcov=NeweyWest(bitcoin))
Error in if (ncol(x) == 1) { : argument is of length zero

NeweyWest(bitcoin)
Error in if (ncol(x) == 1) { : argument is of length zero

Все мои входные векторы имеют одинаковую длину, и у меня нет пропущенных значений, поэтому я действительно не понимаю, почему мой NeweyWest-Test не работает. Любые рекомендации о том, как отследить мою ошибку?


person Henning Wode    schedule 25.04.2018    source источник
comment
Я не могу воспроизвести вашу ошибку на тестовом наборе данных. Чтобы получить помощь по этому вопросу, вам, вероятно, потребуется создать минимальный воспроизводимый пример, например, вы можете опубликовать некоторые из своих данных, используя dput().   -  person gfgm    schedule 25.04.2018


Ответы (1)


Только что столкнулся с той же ошибкой, но повезло найти ее решение, которое заключается в предоставлении данных функции lm с использованием аргумента data. Оставив это здесь для будущих поколений, так как, я думаю, такой вопрос вряд ли мог не устареть для автора за 7 месяцев.

person Eugene Zalyubovsky    schedule 25.11.2018