我正在尝试用时间固定和固定的固定效应估计一个dif-dif-regression。我的模型包括治疗组的假人(treat
),治疗活动期间的假人(ban
),差异估计器(treat.ban
)这是另外两个假人(treat * ban
)和一些控制变量的产物。
当我估计没有固定效果的模型时,它可以正常工作。包括固定效果会导致以下警告:
警告消息:在chol.default中(mat,pivot = TRUE,tol = tol):. 矩阵是缺乏秩序还是不确定
使用一些样本数据查看回归摘要(请注意,原始样本结果更合理,但我仍然面临NAs
和{{1}系数中treat
的问题傻瓜):
ban
我担心的是,差异系数library(lfe)
library(dplyr)
reg1 <- felm(dynmes ~ treat + ban + treat.ban + log(total.assets)
+ market.to.book + leverage | symbol + date,
data = temp)
> summary(reg1)
Call:
felm(formula = dynmes ~ treat + ban + treat.ban + log(total.assets) +
market.to.book + leverage | symbol + date, data = temp)
Residuals:
Min 1Q Median 3Q Max
-0.052129 -0.024407 -0.002392 0.019482 0.075099
Coefficients:
Estimate Std. Error t value Pr(>|t|)
treatTRUE NA NA NA NA
banTRUE NA NA NA NA
treat.banTRUE 0.037566 0.020848 1.802 0.0761 .
log(total.assets) NA NA NA NA
market.to.book 0.199361 0.081149 2.457 0.0167 *
leverage 0.004716 0.009160 0.515 0.6084
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.03534 on 66 degrees of freedom
Multiple R-squared(full model): 0.892 Adjusted R-squared: 0.838
Multiple R-squared(proj model): 0.1625 Adjusted R-squared: -0.2563
F-statistic(full model):16.52 on 33 and 66 DF, p-value: < 2.2e-16
F-statistic(proj model): 2.134 on 6 and 66 DF, p-value: 0.06093
Warning message:
In chol.default(mat, pivot = TRUE, tol = tol) :
the matrix is either rank-deficient or indefinite
可能存在偏差,因为它可能会捕捉到treat.ban
和ban
假人实际应该涵盖的一些影响。
我猜虚拟变量的共线性导致了这个问题,但我还没有找到一种方法来处理它。我已经阅读了lfe小插曲,我也尝试在公式的第二部分(即treat
)中更改顺序,但没有成功。此外,我发现了一些关于如何处理共线性的一般性建议(例如,在stackexchange上发布this帖子),但对我的案例没有解决方案。
我不确定这个问题是否应该放在stackexchange上,如果它是一个普遍的统计问题,如果试图包括例如时间固定效应在回归中与时间虚拟。但我想这更像是计算或编码问题,这就是我在这里发布的原因。
以下是我用于上述回归示例的原始数据集的子样本(我的原始样本大约是200,000行,这就是我首先使用... | date + symbol
的原因):
felm