Существует ли простой способ сделать регрессию фиксированных эффектов в R, когда количество фиктивных переменных приводит к матрице модели, которая превышает максимальную векторную длину R? Например,
> m <- lm(log(bid) ~ after + I(after*score) + id, data = data)
Error in model.matrix.default(mt, mf, contrasts) :
cannot allocate vector of length 905986769
где идентификатор является фактором (и переменная, вызывающая проблему выше).
Я знаю, что мог пройти и унизить все данные, но это отбрасывает стандартные погрешности (да, Вы могли вычислить SE's "вручную" w/df корректировка, но я хотел бы минимизировать вероятность, что я представляю новые ошибки). Я посмотрел на plm пакет, но это кажется только разработанным для классических данных панели w/компонент времени, который не является структурой моих данных.
Plm нормально работает с данными такого рода. Компонент времени не требуется.
> library(plm)
> data("Produc", package="plm")
> zz <- plm(log(gsp)~log(pcap)+log(pc)+log(emp)+unemp, data=Produc, index=c("state"))
> zz2 <- lm(log(gsp)~log(pcap)+log(pc)+log(emp)+unemp+factor(state), data=Produc)
> summary(zz)$coefficients[,1:3]
Estimate Std. Error t-value
log(pcap) -0.026149654 0.0290015755 -0.9016632
log(pc) 0.292006925 0.0251196728 11.6246309
log(emp) 0.768159473 0.0300917394 25.5272539
unemp -0.005297741 0.0009887257 -5.3581508
> summary(zz2)$coefficients[1:5,1:3]
Estimate Std. Error t value
(Intercept) 2.201617056 0.1760038727 12.5089126
log(pcap) -0.026149654 0.0290015755 -0.9016632
log(pc) 0.292006925 0.0251196728 11.6246309
log(emp) 0.768159473 0.0300917394 25.5272539
unemp -0.005297741 0.0009887257 -5.3581508