有没有类似于 Stata 的 cnsreg 的函数来估计约束回归?
特别是,我有一个事件研究,即具有多个因素(事件时间、日历时间和 ID 固定效应)的线性回归。假设事件时间有 N 个级别 E1 到 EN。我想在 E1 + E2 + ... EM = 0 的额外条件下估计 E1 到 EN(及其 SE)的所有参数,其中 M < N.
我已经尝试过套餐
Stata 中的命令 cnsreg 可以做到这一点,参见,例如,https://github.com/IanHo2019/Event_Study。
如何在 R 中估计这样的模型?
非常感谢, 米哈尔
您可以通过在公式中添加+0或-1来获得该因子的所有级别。
library(restriktor)
set.seed(13)
DF <- data.frame(y = rnorm(20), E = factor(1:5))
mf. <- model.matrix(~ E + 0, DF)
fm <- lm(y ~ mf. + 0, DF)
fm.r <- restriktor(fm, "mf.E1 + mf.E2 + mf.E3 = 0")
summary(fm.r)
给予
Call:
conLM.lm(object = object, constraints = constraints)
Restriktor: restricted linear model:
Residuals:
Min 1Q Median 3Q Max
-1.31889 -0.15543 0.25090 0.73460 1.85740
Coefficients:
Estimate Std. Error t value Pr(>|t|)
mf.E1 -0.349536 0.373413 -0.9361 0.3641
mf.E2 0.431770 0.373413 1.1563 0.2657
mf.E3 -0.082234 0.373413 -0.2202 0.8287
mf.E4 -0.537132 0.457336 -1.1745 0.2585
mf.E5 0.627510 0.457336 1.3721 0.1902
Residual standard error: 0.91467 on 15 degrees of freedom
Standard errors: standard
Multiple R-squared reduced from 0.280 to 0.230
Generalized order-restricted information criterion:
Loglik Penalty goric
-24.364 5.000 58.727