外观
固定效应模型
吸收法(AbsorbingLS)估计的多维固定效应模型 reghdfe 一致。
核心代码
py
def _fit_fixed_effects(
self,
df: pd.DataFrame,
entity_col: str,
time_col: str
) -> Any:
"""
执行固定效应回归
参数:
df: 清洗后的数据框
entity_col: 个体标识列
time_col: 时间标识列
返回:
吸收式固定效应拟合结果
"""
absorb_vars = [item for item in self._unique_preserve_order(self.fe_vars) if item in df.columns]
if not absorb_vars:
absorb_vars = [item for item in self._unique_preserve_order([entity_col, time_col]) if item and item in df.columns]
if not absorb_vars:
raise ValueError(_('固定效应回归至少需要选择 1 个固定效应变量。'))
fit_info = self._fit_linear_model(
df,
self.y_var,
[item for item in self.x_vars if item != self.y_var],
model_kind='fe',
absorb_vars=absorb_vars,
header='Fixed Effects Results',
drop_entity_singletons=bool(entity_col and entity_col in absorb_vars),
entity_col=entity_col,
)
self.result = fit_info['result']
self.model_stats = dict(fit_info['stats'])
self.raw_output = fit_info['raw_output']
self.display_x_vars = [item for item in self.x_vars if item != self.y_var]
self.table_custom_rows = self._base_custom_rows(absorb_vars)
return self.result极小样本复现
样本 fe_panel.csv 共 60 行(10 家企业 × 6 年),数据生成过程
bash
python examples/run_fixed_effects.py期望输出:
============================================================
固定效应模型(个体固定效应: firm)
============================================================
样本量 N = 60(10 家企业 × 6 年)
------------------------------------------------------------
变量 系数 标准误
Constant -0.6587*** (0.0966)
x1 0.6309*** (0.0573)
x2 -0.4010*** (0.0447)
------------------------------------------------------------
(数据生成过程真实系数: x1 = 0.6, x2 = -0.4)