跳到主内容
研究主线模型诊断与稳定性 · 第14–19讲4/6 · 配套练习模块导览 →
练习

第17讲:模型误设定 (Model Misspecification) · 练习

验证遗漏市场变量对回归系数的影响,检验价格序列平稳性与协整关系,并比较修正前后的残差。

← 返回本讲讲义
完成状态保存在当前浏览器,可随时取消。

遗漏变量偏差验证#

问题

使用yfinance获取阿里巴巴(BABA)与京东(JD)2018-2020年日频数据,完成以下任务:

  1. 直接建立BABA收益率对JD收益率的单变量回归

  2. 添加恒生指数(^HSI)收益率作为控制变量重新回归

  3. 比较两次回归中JD系数的变化幅度与经济意义

  4. 通过VIF值判断新增变量是否引发多重共线性

Python答题框架

code
import yfinance as yf
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor

# 数据获取
start = '2018-01-01'
end = '2020-12-31'
baba = yf.download('BABA', start=start, end=end)['Adj Close']
jd = yf.download('JD', start=start, end=end)['Adj Close']
hsi = yf.download('^HSI', start=start, end=end)['Adj Close']

# 收益率计算与合并
...
returns = (...)

# 单变量回归
X_single = (...)
model_single = (...)
print("单变量回归系数:", model_single.params[1])

# 多变量回归
X_multi = (...)
model_multi = (...)
print("控制市场后的系数:", model_multi.params[2])

# VIF计算
vif_data = (...)
print("VIF值表:\n", vif_data)

时间序列平稳性检验#

问题

选取苹果(AAPL)和谷歌(GOOGL)2015-2020年月频数据:

  1. 对原始价格序列进行ADF检验判断平稳性

  2. 对一阶差分序列再次检验

  3. 建立协整关系模型并输出检验结果

  4. 若存在协整,构建误差修正模型(ECM)

Python答题框架

code
from statsmodels.tsa.stattools import adfuller, coint
from statsmodels.tsa.vector_ar.vecm import VECM

# 获取月频数据
data = yf.download(['AAPL','GOOGL'],
                  start='2015-01-01',
                  end='2020-12-31',
                  interval='1mo')['Adj Close']

# 原始序列ADF检验
for stock in data.columns:
    result = (...)
    print(f"{stock} ADF p值: {result[1]:.4f}")

# 差分序列检验
diff_data = (...)
for stock in diff_data.columns:
    (...)

# 协整检验
score, pvalue, _ = (...)
print(f"协整检验p值: {pvalue:.4f}")

# ECM模型构建(若存在协整)
model_ecm = (...)
print(...)

数据示例说明

ADF检验输出示例:

code
AAPL原始序列p值: 0.8562
GOOGL原始序列p值: 0.9023
AAPL差分后p值: 0.0001
GOOGL差分后p值: 0.0001
协整检验p值: 0.0321

此结果表明两股价格存在长期均衡关系。

完成练习后,自评一次

建议先独立作答,再展开参考答案进行核对。