跳到主要内容

固定效应模型

一、直观理解:用“个体自己当自己的对照”​

面板数据同时有个体维度 ii 与时间维度 tt。许多看不见的差异(地区文化、企业基因、个人能力)既影响 yy,又可能与 XX 相关。若忽略它们,普通 OLS 会把这些差异算到 XX 头上。

固定效应(Fixed Effects, FE)模型允许每个个体有自己的截距 aia_i:

yit=ai+xitTβ+εity_{it}=a_i+x_{it}^\mathsf{T}\beta+\varepsilon_{it}

估计时通过组内去均值(within transformation)消掉 aia_i:

yit−yˉi=(xit−xˉi)Tβ+(εit−εˉi)y_{it}-\bar y_i=(x_{it}-\bar x_i)^\mathsf{T}\beta+(\varepsilon_{it}-\bar\varepsilon_i)

直觉:不靠“企业和企业比”,而靠“同一企业随时间的变化”来识别 β\beta。因此 FE 特别擅长控制不随时间变化的混杂。

二、适用场景与优缺点​

类型说明
适用场景短面板/长面板中个体异质性与回归元相关;政策评估中控制地区/个人固定特质;需要 within 变异识别。
核心优点消除不随时间混杂;假设比随机效应更弱(允许 aia_i 与 XX 相关);解释为个体内效应。
局限与缺点不随时间变化的 XX(如性别)在严格 FE 中无法估计;within 变异小则不精确;对测量误差更敏感;需要处理时间效应与序列相关。

三、核心原理​

1. 双向固定效应​

常同时加入时间效应 λt\lambda_t:

yit=ai+λt+xitTβ+εity_{it}=a_i+\lambda_t+x_{it}^\mathsf{T}\beta+\varepsilon_{it}

吸收所有个体不变因素与所有时期共同冲击。

2. 估计​

  • 虚拟变量 LSDV(个体哑变量);
  • 去均值 within 估计(等价于 LSDV 的 β\beta);
  • 高维 FE 可用交替投影等算法。

3. 推断​

默认 SE 往往不够。面板中常用个体聚类稳健标准误,允许组内相关与异方差。

4. 识别直觉​

FE 识别的是:个体内 XX 变化伴随的 yy 变化。若 XX 几乎不随时间变,FE 无能为力。

四、关键决策​

1. FE 还是 RE?​

若 aia_i 可能与 XX 相关,选 FE;Hausman 检验可辅助,但不是唯一标准。政策评估默认 FE/差分更常见。

2. 是否加时间 FE​

宏观冲击、共同趋势存在时建议加;事件研究中时间 FE 是标配。

3. 时不变变量​

若必须估计,考虑:

  • 随机效应 / 相关随机效应(Mundlak);
  • 豪斯曼-泰勒;
  • 或接受 FE 只识别时变效应。

4. 因果​

FE 不是自动因果:仍需条件外生(无时变混杂、无反向因果等)。可与 DID、IV 结合。

五、MATLAB 示例​

rng(20);
N = 50; T = 8;
id = repelem((1:N)', T);
time = repmat((1:T)', N, 1);
a = repelem(randn(N,1), T); % 个体效应
x = 0.5*a + randn(N*T,1); % x 与 a 相关 -> OLS 偏倚
y = a + 1.2*x + 0.8*randn(N*T,1);

% 混合 OLS(偏倚)
mdl_ols = fitlm(x, y);
fprintf("OLS beta = %.3f\n", mdl_ols.Coefficients.Estimate(2));

% Within:按个体去均值
y_w = y; x_w = x;
for i = 1:N
idx = id == i;
y_w(idx) = y(idx) - mean(y(idx));
x_w(idx) = x(idx) - mean(x(idx));
end
% 无截距回归
beta_fe = x_w \ y_w;
fprintf("FE within beta = %.3f (真值 1.2)\n", beta_fe);

% 用 fitlm + 哑变量(小 N 可行)
Ttbl = table(categorical(id), x, y, 'VariableNames', {'id','x','y'});
mdl_fe = fitlm(Ttbl, "y ~ x + id");
% x 的系数
fprintf("LSDV beta = %.3f\n", mdl_fe.Coefficients.Estimate("x"));

% 聚类 SE 示意:按 id 分块的夹心协方差(单变量)
e = y_w - x_w*beta_fe;
meat = 0;
for i = 1:N
idx = id == i;
xi = x_w(idx); ei = e(idx);
meat = meat + (xi'*ei)^2;
end
se_clu = sqrt(meat / (x_w'*x_w)^2);
fprintf("个体聚类 SE ≈ %.3f\n", se_clu);

六、如何解释结果​

  1. 面板结构(N、T、平衡与否);
  2. FE 维度(个体/时间);
  3. β^\hat\beta、聚类 SE、置信区间;
  4. 说明识别来自 within 变异;
  5. 时不变变量无法估计的声明;
  6. 稳健性:加时间 FE、滞后、剔除异常个体。

七、常见误区​

1. 有面板就一定因果​

FE 只控制时不变混杂。

2. 用普通 SE​

组内相关下 p 值过于乐观。

3. 解释 FE 系数为组间差异​

它是组内关联。

4. T 很小却加入大量时变控制导致过度拟合​

注意自由度与多重共线。

八、小结​

固定效应模型的核心是:

通过个体(与时间)截距吸收时不变异质性,用组内变化识别 β\beta。

它是面板与准实验研究的工作马。写清 within 含义、聚类推断与识别假设,比单纯报告“用了 FE”更重要。