linearmodels PanelOLS个体固定效应模型predict()结果解读
解答
你的初步解读不正确,问题核心是对带个体固定效应的PanelOLS模型predict()方法的计算逻辑存在误解。
计算逻辑验证
你构造的测试数据集、拟合代码、新数据预测流程如下:
import pandas as pd from linearmodels.panel import PanelOLS # 构造训练集 y = pd.DataFrame( index=[[1, 1, 1, 2, 2, 2], [1, 2, 3, 1, 2, 3]], data=[70, 60, 50, 30, 33, 27], columns=["y"], ) y.index.set_names(["Entity", "Time"], inplace=True) x = pd.DataFrame( index=[[1, 1, 1, 2, 2, 2], [1, 2, 3, 1, 2, 3]], data=[[100], [89], [62], [29], [49], [23]], columns=["X"], ) x.index.set_names(["Entity", "Time"], inplace=True) # 拟合带个体固定效应的组内模型 model_within = PanelOLS(dependent=y, exog=x, entity_effects=True).fit() # 构造新个体3的解释变量 new_x = pd.DataFrame( index=[[3, 3, 3], [1, 2, 3]], data=[[40], [70], [33]], columns=["X"], ) new_x.index.set_names(["Entity", "Time"], inplace=True) # 执行预测 model_within.predict(new_x)
预测输出结果:
| Entity | Time | predictions |
|---|---|---|
| 3 | 1 | 16.136230 |
| 2 | 28.238403 | |
| 3 | 13.312390 |
根据计量经济学中组内估计量的经典定义(伍德里奇,2012,第485页),带个体固定效应的面板模型形式为:
$$y_{it} = \alpha_i + \beta X_{it} + \epsilon_{it}$$
组内估计通过对每个个体做时间维度去均值消去个体固定效应$\alpha_i$,得到核心解释变量的系数估计值$\hat{\beta}$,估计完成后模型会存储训练集中所有出现过的个体的固定效应估计值$\hat{\alpha_i} = \bar{y_i} - \hat{\beta}\bar{X_i}$。
结合linearmodels官方对predict()方法的说明,你得到的预测值计算逻辑非常明确:
- 本次测试中模型估计得到的核心系数$\hat{\beta}\approx0.4034$
- 新个体3从未出现在训练集中,模型没有该个体的固定效应$\hat{\alpha_3}$的估计值,默认将未知个体的固定效应取值为0
- 最终预测值完全由$\hat{y} = 0 + \hat{\beta} * X_{it}$计算得到,可自行验算:0.403440≈16.136、0.403470≈28.238、0.4034*33≈13.312,和输出结果完全匹配。
对你原有推测的纠正
你认为预测值是“新个体各期y相对自身全周期y均值的偏离”,这个理解是错的:
如果要计算相对个体均值的偏离,预测值应该是$\hat{\beta}(X_{it}-\bar{X_i})$,也就是需要先对新个体的X做时间去均值再乘系数,但你当前拿到的结果完全没有做去均值处理,和“相对个体均值的偏离”没有任何关系。只有在调用predict()时传入参数fit=False,才会输出这类去均值后的偏离值,但这类结果仅能反映个体内部的变动幅度,不能作为y的水平预测值。
预测结果的规范解释
你当前拿到的新个体预测值没有实际的经济学解释意义:
- 组内估计量的识别仅来自个体内部的时间维度变异,估计得到的$\hat{\beta}$仅能可靠解释“同一个体X随时间变动1单位时,y的平均变动幅度”,无法解释不同个体之间X水平差异对应的y水平差异。
- 个体固定效应$\alpha_i$包含了所有个体不随时间变化的不可观测异质性,不同个体的$\alpha_i$可能差异极大(比如本次训练集中个体1的$\hat{\alpha_1}\approx26.25$,个体2的$\hat{\alpha_2}\approx16.42$,两个训练个体的固定效应差距接近10个单位),默认将未知新个体的$\alpha_i$设为0是完全没有现实依据的机械计算结果。
- 如果要对训练集未出现过的新个体做有解释力的水平预测,必须额外获得该个体至少一期的真实y观测值,才能推算出该个体的$\hat{\alpha_i}$,否则所有预测结果都只是没有截距项的线性映射,不具备实际解读价值。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

