问题:
使用yfinance获取蔚来汽车(NIO)2023年Q1的日频数据(约60个交易日),完成以下任务:
Python答题框架:
import yfinance as yf
import numpy as np
from sklearn.utils import resample
# 数据获取
nio = yf.download('NIO', start='2023-01-01', end='2023-03-31')['Close']
days = np.arange(len(nio))
# 小样本回归
sample_idx = np.random.choice(...)
small_X = days[sample_idx]
small_y = nio.iloc[sample_idx]
model_small = sm.OLS(...).fit()
# 全样本回归
model_full = sm.OLS(...).fit()
# 自助采样
bootstrap_slopes = []
for _ in range(1000):
(...实现自助采样...)
(...计算斜率...)
print(f"小样本斜率:{model_small.params[1]:.2f}")
print(f"全样本斜率:{model_full.params[1]:.2f}")
print(f"95%置信区间:{[np.percentile(bootstrap_slopes, 2.5), ...]}")
问题:
选取纳斯达克指数(^IXIC)2015-2020年月频数据:
Python答题框架:
from statsmodels.stats.diagnostic import breaks_cusumolsresid
# 获取数据
nasdaq = yf.download(...)
prices = (...)
time_index = (...)
# 分段回归
break_date = '2020-03-01'
pre_break = (...)
post_break = (...)
# CUSUM检验
full_model = sm.OLS(...).fit()
cusum_test = (...)
print(f"结构突变检验p值:{cusum_test[1]:.4f}")
# 残差可视化
(...绘制带有竖线标记的残差图...)
数据示例说明:
分段回归结果:
2015-2020趋势系数: 25.3
2020年前趋势系数: 22.1
2020年后趋势系数: 38.6
CUSUM检验p值: 0.013
提示:残差图的突变点可通过垂直线标记,使用plt.axvline()实现