Как рассчитать матрицу гетероскедастической согласованной ковариации (HCCM) для одномерной регрессии (то есть регрессии OLS с одним регрессором и без перехвата)?
История вопроса: у меня фиксированная регрессия панели эффектов, но только с одним регрессором. Так что я могу сделать это с помощью метода фиктивной переменной наименьших квадратов (LSDV)
lm.ser.yr <- lm(realwage ~ placebo.ser + factor(incyear) + 0, data = cps)
или я могу унизить LHS на уровне года и регрессировать
cps <- ddply(cps, .(incyear), transform, realwage.dm.yr = realwage - mean(realwage))
lm.ser.yr <- lm(realwage.dm.yr ~ placebo.ser + 0, data = cps)
Но есть проблемы с обоими.
При подходе LSDV и достаточном количестве манекенов объект lm
становится огромным (1 ГБ каждый). Это в основном из-за большой матрицы qr
, которую я должен сохранить, чтобы передать ее в vcovHC()
для вычисления HCCM, которая часто останавливается на ошибках «не удается выделить вектор размера» (или выполняет много операций подкачки ).
Со значением в пределах оценки все работает отлично, но я не могу вычислить HCCM, потому что ни vcovHC()
, ни hccm()
не обрабатывали однонаправленный lm
объект без перехвата (то есть он выплевывает NA
, что, насколько я могу судить, заключается в том, что без переменных-перехватчиков и фиктивных переменных мои остатки находятся намного дальше от нулевого среднего значения.
Есть ли решение этой проблемы с очень агрессивным управлением памятью и / или перемещением в облако?