Кокрановское преобразование Оркатта в R, вычислить BIC для модели - PullRequest
0 голосов
/ 28 июня 2018

Я строю линейную модель в R. Я имею дело с автокорреляцией, используя пакет orcutt:

require(orcutt)
model.lm <- lm(y ~  x1 + x2 + x3 + x4)
coch1 = cochrane.orcutt(model.lm, convergence = 8)

Я хочу найти значение BIC для model.lm и coch1, однако вот что происходит:

Я могу легко извлечь BIC из модели .m.

> BIC(model.lm)
[1] 2402.508
> class(model.lm)
[1] "lm"

Однако я не могу легко извлечь BIC из coch1.

> BIC(coch1)
Error in UseMethod("logLik") : 
  no applicable method for 'logLik' applied to an object of class "orcutt"
> class(coch1)
[1] "orcutt"

Поскольку класс coch1 - "orcutt", я не могу просто запустить BIC (coch1), как я мог сделать для model.lm, который является классом "lm". Как я могу вычислить значения AIC и BIC для модели coch1?

1 Ответ

0 голосов
/ 03 июля 2018

Я почти уверен, что понял, как вычислить руку AIC:

AICvalueCOCH = nrow(Data)*(log(2*pi)+1+log((sum(coch1$residuals^2)/nrow(Data))))+((length(coch1$coefficients)+1)*2) 

и БИК от руки:

BICvalueCOCH = nrow(Data)*(log(2*pi)+1+log((sum(coch1$residuals^2)/nrow(Data))))+((length(coch1$coefficients)+1)*log(nrow(Data)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...