🔴
入学要求
💯
能力测试
🛣️
课程安排
🕹️
研究资源

练习

遗漏变量偏差验证

问题

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

  1. 直接建立BABA收益率对JD收益率的单变量回归
  1. 添加恒生指数(^HSI)收益率作为控制变量重新回归
  1. 比较两次回归中JD系数的变化幅度与经济意义
  1. 通过VIF值判断新增变量是否引发多重共线性

Python答题框架

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检验判断平稳性
  1. 对一阶差分序列再次检验
  1. 建立协整关系模型并输出检验结果
  1. 若存在协整,构建误差修正模型(ECM)

Python答题框架

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检验输出示例:

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

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