个股Beta计算#
给定以下代码框架:
code
import yfinance as yf
import statsmodels.api as sm
def calculate_beta(y_returns, x_returns):
X = sm.add_constant(x_returns)
model = sm.OLS(y_returns, X).fit()
return model.params[1] # 返回beta值请完成:
-
获取阿里巴巴(BABA)与沪深300指数(代码:510300.SS)2020-2023年的日频数据
-
计算每日收益率并清洗缺失值
-
通过线性回归计算系统性风险系数β
-
解释计算结果的实际含义
数据获取提示:
code
data = yf.download(['BABA', '510300.SS'],
start='2020-01-01',
end='2023-12-31',
progress=False)动态Beta分析#
给定滚动窗口计算函数:
code
def rolling_beta(asset_ret, market_ret, window=60):
betas = []
for i in range(window, len(asset_ret)):
# 在此补充滚动回归逻辑
betas.append(current_beta)
return pd.Series(betas, index=asset_ret.index[window:])请完成:
-
获取亚马逊(AMZN)与标普500指数(SPY)过去5年的收盘价数据
-
计算120个交易日的滚动Beta序列
-
绘制Beta值随时间变化的曲线
-
分析2022年美联储加息周期中Beta值的变化特征
数据示例:
code
data = yf.download(['AMZN', 'SPY'],
period='5y',
interval='1d',
auto_adjust=True)['Close']