1.简介固定效应模型的核心逻辑在于通过对比同一个体在不同时间点的变化来消除那些不随时间改变、但会影响结果的个体特征。•例子如果你想研究“受教育程度”对“收入”的影响。•问题每个人天生的“能力”或“家庭背景”会影响收入但这些很难被衡量不可观测。•FE 的做法假设一个人的“能力”在几年内是不变的。通过观察同一个人在读完学位前后的收入变化我们实际上就自动“减掉”了那个不变的“能力”因素。固定效应的数学表达式基本的个体固定效应模型可以表示为• 个体 在时刻 的因变量如某公司的利润。• 随时间变化的自变量如该公司的研发投入。• 我们想要估计的回归系数。•个体固定效应。它代表了每个个体特有的、不随时间变化的因素如企业文化、地理位置。• 随时间变化的随机误差项。固定效应Fe vs. 随机效应RE在做面板分析时经常会面临固定效应 (FE)和随机效应 (RE)的选择1.FE 的优势允许个体效应 与自变量 相关。这在现实中非常普遍例如个人能力通常与受教育程度相关。2.FE 的局限它无法估算那些不随时间变化的变量的影响。例如如果你用了个体固定效应模型就无法告诉你“性别”对收入的影响因为在同一个体的观测周期内性别通常是不变的会被当作固定效应“减掉”。2.代码实现import pandas as pd import numpy as np import statsmodels.api as sm import matplotlib.pyplot as plt import seaborn as sns def run_statsmodels_fe(df, entity_colEntity, x_colX, y_colY): 输入 DataFrame执行 LSDV 固定效应回归并绘图 # 构造虚拟变量 (LSDV法) # drop_firstTrue 避免虚拟变量陷阱 df_dummies pd.get_dummies(df, columns[entity_col], drop_firstTrue, dtypefloat) # 确定自变量列X 所有的个体虚拟变量列 dummy_cols [col for col in df_dummies.columns if f{entity_col}_ in col] X_matrix df_dummies[[x_col] dummy_cols] X_matrix sm.add_constant(X_matrix) # 添加全局截距项 Y_vector df_dummies[y_col] # 执行回归 model sm.OLS(Y_vector, X_matrix) results model.fit() # --- 绘图部分 --- sns.set_theme(stylewhitegrid) g sns.lmplot( datadf, xx_col, yy_col, hueentity_col, aspect1.5, height6, scatter_kws{alpha:0.5}, ciNone ) plt.title(fFixed Effects Regression: {y_col} ~ {x_col} (Grouped by {entity_col})) plt.show() return results3.结果展示