Skip to content

固定效应模型

吸收法(AbsorbingLS)估计的多维固定效应模型 yit=βxit+αi+εit:个体效应 αi 不进入回归矩阵,可吸收个体、时间、行业等任意多维固定效应,结果与 Stata 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 年),数据生成过程 y=0.6x10.4x2+αi+ε(真实系数 0.6 / -0.4)。

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)

Released under the AGPL-3.0 License.