fama-french三因子模型的python代码
时间: 2023-05-22 15:06:07 浏览: 230
Fama-French三因子Stata代码和数据(2000-2020)、五因子模型Stata代码和数据(2000-2020)
以下是一个使用 fama-french 三因子模型的 python 代码:
``` python
import pandas_datareader as pdr
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
# 获取数据
start = '2021-01-01'
end = '2021-12-31'
# 获取道琼斯工业指数数据
djia = pdr.get_data_yahoo('^DJI', start, end)['Adj Close']
# 获取 fama-french 数据
ff = pd.read_csv('fama_french.csv')
ff.rename(columns={'Unnamed: 0': 'date'}, inplace=True)
ff.index = pd.to_datetime(ff.date, format='%Y%m')
ff = ff[['Mkt-RF', 'SMB', 'HML']] / 100
# 计算超额收益率
returns = djia.pct_change().dropna()
excess = returns - ff['Mkt-RF']
# 运行 fama-french 模型
model = smf.ols(formula='excess ~ SMB + HML', data=ff.join(excess)).fit()
# 获取模型结果
print(model.summary())
```
这是一个简单的 fama-french 三因子模型,使用 Pandas 和 statsmodels 包计算结果。具体来说,它获取道琼斯工业指数的股票数据和 fama-french 的市场、规模和价值因素数据,并计算出市场因素的超额收益率。然后,它使用线性回归来确定市场、规模和价值因素对超额收益率的影响。输出包括模型摘要,显示拟合优度和每个系数的显著性等信息。
阅读全文