任务背景:某量化研究员选取2020-2022年期间15只科技股日度收益率数据,试图寻找存在显著相关性的股票对(使用Spearman相关系数)。原始数据获取与处理代码如下:
import numpy as np
import pandas as pd
import yfinance as yf
from scipy import stats
# 股票代码列表
tech_stocks = ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'META',
'TSLA', 'NVDA', 'INTC', 'ADBE', 'CSCO',
'ORCL', 'IBM', 'QCOM', 'CRM', 'AMD']
# 获取收盘价数据
price_data = yf.download(tech_stocks,
start='2020-01-01',
end='2022-12-31')['Close']
# 计算日收益率
returns = price_data.pct_change().dropna()
分析要求:
代码框架:
def multiple_comparison_analysis():
# 初始化参数
alpha = 0.05
combinations = len(tech_stocks)*(len(tech_stocks)-1)//2
# 原始检验
original_pairs = []
# Bonferroni检验
bonferroni_pairs = []
# 在此处补充你的代码逻辑
# 输出结果
print(f"原始方法显著对数:{len(original_pairs)}")
print(f"预期假阳性数:{round(combinations * alpha, 1)}")
print(f"校正后显著对数:{len(bonferroni_pairs)}")
问题场景:某对冲基金构建了包含200只股票的投资组合,研究团队每日进行以下分析:
任务要求:
数据准备:
# 两阶段数据集划分
full_data = yf.download('SPY',
start='2020-01-01',
end='2022-12-31')['Close']
stage1 = full_data.loc[:'2021-12-31']
stage2 = full_data.loc['2022-01-01':]
提示公式:
请分别给出数学计算过程与Python实现代码。