Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用具有大量固定效应的回归快速预测_R_Regression_Panel_Categorical Data - Fatal编程技术网

R 使用具有大量固定效应的回归快速预测

R 使用具有大量固定效应的回归快速预测,r,regression,panel,categorical-data,R,Regression,Panel,Categorical Data,我想用R来估计具有大量固定效应的回归 然后,我将使用该回归对测试数据集进行预测 然而,这需要很快完成,因为我想引导我的标准错误并多次这样做 我知道R中的lfe包可以做到这一点。比如说 reg=felm(Y~1|F1 + F2,data=dat) 其中dat为数据,F1、F2为分类变量列(包括固定效应) predict(reg,dat2),但是,如前所述,它不适用于lfe包 不幸的是,lm太慢了,因为我有很多固定效果 加速的方法是提取系数并手动执行矩阵运算。例如: xtrain <- da

我想用
R
来估计具有大量固定效应的回归

然后,我将使用该回归对测试数据集进行预测

然而,这需要很快完成,因为我想引导我的标准错误并多次这样做

我知道
R
中的
lfe
包可以做到这一点。比如说

reg=felm(Y~1|F1 + F2,data=dat)
其中dat为数据,
F1、F2
为分类变量列(包括固定效应)

predict(reg,dat2)
,但是,如前所述,它不适用于lfe包


不幸的是,
lm
太慢了,因为我有很多固定效果

加速的方法是提取系数并手动执行矩阵运算。例如:

xtrain <- data.frame(x1=jitter(1:1000), x2=runif(1000), x3=rnorm(1000))
xtest <- data.frame(x1=jitter(1:1000), x2=runif(1000), x3=rnorm(1000))
y <- -(1:1000)
fit <- lm(y ~ x1 + x2 + x3, data=xtrain)

beta <- matrix(coefficients(fit), nrow=1)
xtest_mat <- t(data.matrix(cbind(intercept=1, xtest)))
predictions <- as.vector(beta %*% xtest_mat)

library(microbenchmark)
microbenchmark(as.vector(beta %*% xtest_mat),
               predict(fit, newdata = xtest))

Unit: microseconds
                          expr     min       lq      mean  median      uq      max neval cld
 as.vector(beta %*% xtest_mat)   8.140  10.0690  13.12173  12.372  15.852   26.292   100  a 
 predict(fit, newdata = xtest) 635.413 657.2515 745.94840 673.009 763.166 2363.065   100   b

xtrain您的问题是什么?如果您正在寻找比
lm
更快的其他软件包或资源,这似乎不符合主题。抱歉,这并不能回答问题。F1和F2是分类变量。用大量的分类变量来拟合lm成本太高,这是一开始的要点。您没有提供一个可重复的示例。你也没有抓住要点:无论你使用felm还是lm,手动执行预测操作都会加快速度。你是对的,我没有提供一个可复制的示例。但是,无论您是否手动操作,您都需要使用固定效果(因子系数)进行预测。我找到了一个涉及getfe(felm_obejct)的解决方案,但是lm的速度太慢了,这就是关键所在。这并不是说预测是缓慢的,而是有大量因素的回归是缓慢的。