R 中的约束回归(如 cnsreg)

问题描述 投票:0回答:1

有没有类似于 Stata 的 cnsreg 的函数来估计约束回归?

特别是,我有一个事件研究,即具有多个因素(事件时间、日历时间和 ID 固定效应)的线性回归。假设事件时间有 N 个级别 E1 到 EN。我想在 E1 + E2 + ... EM = 0 的额外条件下估计 E1 到 EN(及其 SE)的所有参数,其中 M < N.

我已经尝试过套餐

  • CensReg(似乎不适用于平等约束)和
  • restriktor(仅调整 lm 对象,即掉落的虚拟对象不可恢复。

Stata 中的命令 cnsreg 可以做到这一点,参见,例如,https://github.com/IanHo2019/Event_Study

如何在 R 中估计这样的模型?

非常感谢, 米哈尔

r regression constraints
1个回答
0
投票

您可以通过在公式中添加+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 
© www.soinside.com 2019 - 2024. All rights reserved.