В методе, предоставленном plm
для объектов plm, в пакете plm
нет функции hatvalues
, слово "hatvalues" отсутствует даже в исходном коде plm. Обязательно загрузите пакет plm
при выполнении coeftest
. Кроме того, убедитесь, что установлена последняя версия plm из CRAN (в настоящее время версия 2.2-3).
Если у вас загружен пакет plm
, код должен работать. Это делается с примером игрушек на моей машине. Чтобы быть уверенным, вы можете использовать vcovHC
, как указано plm
:
Fist, попробуйте vcovHC(QSFE, type = "HC3", method = "arellano")
. Если это приводит к той же ошибке, попробуйте plm::vcovHC(QSFE, type = "HC3", method = "arellano")
.
Далее, пожалуйста, попробуйте: coeftest(QSFE, vcov.=function(x) vcovHC(QSFE, method="arellano", type="HC3"))
Редактировать : Используя предоставленный набор данных, ясно, что диспетчеризация до vcovHC.plm
работает правильно. Пакет sandwich
здесь не задействован. Причиной root является потребность в памяти функции vcovHC.plm
с аргументом type
, установленным в "HC3"
(и другие). Это также объясняет ваш комментарий о функции, работающей для подмножества данных.
vcovHC(QSFE, type = "HC3", method = "arellano")
Error in 1 - diaghat : non-numeric argument to binary operator
Called from: omega(uhat, diaghat, df, G)
Browse[1]> diaghat
[1] "Error : cannot allocate vector of size 59.7 Gb\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError: cannot allocate vector of size 59.7 Gb>