Python数据风险案例54——人工智能热门概念股爬虫分析其价值(三因子模型)
import pandas as pd
import numpy as np
import statsmodels.api as sm
from datetime import datetime
# 假设这是从股票网站爬取的数据,已经加载到DataFrame中
data = pd.read_csv('stock_data.csv', parse_dates=['date'])
# 选择需要的列
data = data[['date', 'close', 'volume']]
# 将数据按日期排序
data.sort_values('date', inplace=True)
# 计算每日收盘价的对数返回
data['log_ret'] = np.log(data['close'] / data['close'].shift(1))
# 选择过去10个交易日的平均每日成交量作为因子
data['vol_10'] = data['volume'].rolling(window=10).mean()
# 创建一个数据框,用于存储模型的结果
results = pd.DataFrame(columns=['intercept', 'beta', 'alpha', 'omega'])
# 遍历不同的时间窗口来测试三因子模型的参数
for lag in range(1, 11):
X = sm.add_constant(data[['log_ret', 'vol_10']].shift(lag))
results.loc[lag] = sm.OLS(data['log_ret'], X).fit().params
# 输出结果
print(results)
这段代码首先加载股票数据,然后计算每日的收盘价的对数返回,并创建一个新的列来表示过去10天平均的成交量。接着,代码遍历不同的时间窗口来拟合一个OLS模型,并存储模型的参数结果。最后,打印出结果。这个例子展示了如何使用Python进行简单的金融时间序列分析。
评论已关闭