问题:
使用yfinance获取阿里巴巴(BABA)与京东(JD)2018-2020年日频数据,完成以下任务:
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年月频数据:
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
此结果表明两股价格存在长期均衡关系。