欢迎来到 LinearModels 教程!这是一个专注于面板数据分析和工具变量回归的中文教程。
LinearModels 是 Python 中专门处理面板数据(Panel Data)和工具变量回归(IV Regression)的强大库。它填补了 statsmodels 在这些领域的空白,特别适合经济学、金融学和社会科学研究。
场景1:分析政策效果
- 你想研究"最低工资法"对就业的影响
- 有多个城市、多年的数据(面板数据)
- LinearModels 帮你控制城市固定效应,分离政策真实效果
- 就像做对照实验,但用观察数据
场景2:因果推断
- 你想知道"教育年限"对"收入"的因果影响
- 但教育和收入可能都受"家庭背景"影响(内生性问题)
- LinearModels 的工具变量方法帮你找到真实的因果关系
- 就像找到一个"自然实验"
场景3:资产定价研究
- 你想检验 Fama-French 三因子模型
- 需要同时分析多只股票的收益率
- LinearModels 提供专门的资产定价模型
- 就像给股票收益率做"体检"
-
- 什么是面板数据?
- 什么是工具变量?
- LinearModels vs Statsmodels
- 安装和环境配置
- 第一个例子:工资面板数据分析
-
- 面板数据结构:长格式 vs 宽格式
- 个体效应和时间效应
- 混合OLS(Pooled OLS)
- 面板数据的优势和挑战
- 实战:多城市房价分析
-
- 固定效应模型(FE):个体和时间固定效应
- 随机效应模型(RE):GLS估计
- Hausman检验:FE vs RE 如何选择
- 聚类标准误(Clustered SE)
- 实战:企业生产率分析(200企业×10年)
-
- 内生性问题:遗漏变量、测量误差、反向因果
- 工具变量(IV):定义和性质
- 两阶段最小二乘法(2SLS)
- 弱工具变量检验:F统计量
- 过度识别检验:Sargan/Hansen J检验
- 实战:教育收益率(500人×5年)
-
- 资产定价基础:CAPM、Fama-French
- 线性因子模型
- 时间序列回归 vs 横截面回归
- GMM估计
- 实战:Fama-French三因子模型(100只股票×60月)
-
- 似不相关回归(SUR)
- 三阶段最小二乘(3SLS)
- 动态面板模型(Dynamic Panel)
- Fama-MacBeth回归
- 实战:多方程系统估计
- 第00章:了解 LinearModels 和面板数据
- 第01章:掌握面板数据结构
- 第02章:学会固定效应和随机效应
- 跳过第03章(工具变量暂时不学)
- 选学第04-05章
学完可以做什么:分析多时期数据、控制个体固定效应、政策评估
- 第00章:基础准备
- 第01章:面板数据结构
- 第02章:固定效应模型(核心)
- 第03章:工具变量回归(核心重点)
- 理解内生性问题
- 掌握2SLS方法
- 学会工具变量选择和检验
- 选学第05章的3SLS
学完可以做什么:因果推断、政策评估、解决内生性问题
- 第00章:基础准备
- 第01章:面板数据基础
- 第04章:资产定价模型(核心重点)
- CAPM、Fama-French
- 因子模型估计
- 第05章:Fama-MacBeth回归
- 回头学第02-03章(如需要)
学完可以做什么:资产定价研究、因子模型检验、投资组合分析
- 第00-01章:基础准备
- 第02章:固定效应和随机效应
- 第03章:工具变量回归
- 第04章:资产定价模型
- 第05章:系统回归和高级主题
学完可以做什么:学术研究、经济计量分析、政策评估、发表论文
# ❌ 技术文档的写法(难懂)
# "Fixed effects model controls for unobserved heterogeneity"
# ✅ 本教程的解释(生活化)
# 固定效应模型 = 给每个个体一个"专属基准线"
# 比如:分析学生成绩时
# - 有的学生天生聪明(个体效应)
# - 固定效应帮你"去除"这个影响
# - 专注分析"学习时间"对成绩的影响
# 就像给每个学生一个"起跑线修正"- 专注面板数据和工具变量(LinearModels的核心优势)
- 不重复 statsmodels 已有的内容
- 每章2-4个精选案例
- 强调实际应用场景
- 重视内生性问题的识别和解决
- 强调固定效应在因果推断中的作用
- 工具变量的选择和检验
- 政策评估的实战应用
from linearmodels import PanelOLS
import pandas as pd
# 数据:多个个体、多个时期
# entity: 个体标识(如企业ID)
# time: 时间标识(如年份)
model = PanelOLS.from_formula('y ~ x1 + x2 + EntityEffects + TimeEffects', data)
result = model.fit(cov_type='clustered', cluster_entity=True)
print(result)pip install linearmodels numpy pandas matplotlib seaborn statsmodels- Python 3.9+
- LinearModels 5.0+
- NumPy 1.20+
- Pandas 1.3+
- Statsmodels 0.14.0+
# 数据处理
pip install openpyxl xlrd
# 可视化增强
pip install plotly
# Jupyter支持
pip install jupyter notebook1. 顺序学习(推荐新手)
- 从第00章开始,按顺序学习
- 每章的练习都要动手做
- 重点理解固定效应和工具变量
2. 按需学习(有经验者)
- 直接跳到需要的章节
- 快速查阅代码示例
- 参考实战项目
3. 问题驱动学习(推荐)
- 遇到面板数据 → 第01-02章
- 遇到内生性问题 → 第03章
- 做资产定价研究 → 第04章
- 边学边用,效果最好
| 特性 | LinearModels | Statsmodels |
|---|---|---|
| 面板数据 | ✅ 专门优化,易用 | |
| 固定效应 | ✅ 一行代码搞定 | |
| 工具变量 | ✅ IV/2SLS/GMM完整支持 | |
| 聚类标准误 | ✅ 内置多种类型 | |
| 资产定价 | ✅ 专门模块 | ❌ 不支持 |
| 线性回归 | ✅ 功能全面 | |
| 时间序列 | ❌ 不支持 | ✅ 完整支持 |
| 适用场景 | 面板数据、因果推断 | 通用统计建模 |
简单来说:
- 有面板数据或需要工具变量 → 用 LinearModels
- 做时间序列或常规统计 → 用 Statsmodels
- 两者可以配合使用!
- 官方文档:bashtage.github.io/linearmodels
- GitHub仓库:github.com/bashtage/linearmodels
- API参考:API Documentation
- 示例数据:每章配有真实数据集
这是一个开放的学习资源,欢迎:
- 报告错误和改进建议
- 贡献新的示例和案例
- 分享你的学习心得
面板数据就像是:
- 纪录片:跟踪同一批人/企业的变化(vs 横截面是"快照")
- 对照实验:每个个体都是自己的对照组
- 时间机器:既能看横向比较,又能看纵向变化
- 显微镜:更精确地识别因果关系
掌握了 LinearModels,你就拥有了:
- 🔍 洞察力:识别真实的因果关系
- 🎯 准确性:控制不可观测的异质性
- 💡 科学性:严谨的政策评估方法
- 🚀 前沿性:掌握经济学研究的主流工具
让我们开始这段面板数据和因果推断的学习之旅吧!
开始学习 → 第00章:简介和安装
数据来源:
- LinearModels Official Documentation
- Panel Data Econometrics - Wooldridge
- Mostly Harmless Econometrics - Angrist & Pischke
与 Statsmodels 教程配合学习:
- 先学 Statsmodels教程 的第00-02章(基础回归)
- 再学本教程的面板数据和工具变量
- 两个教程互补,掌握完整的统计建模工具链