fama-french五因子模型的python代码
时间: 2023-08-11 13:06:55 浏览: 222
新建 DOC 文档 (4)_三因子_fama-french代码_famafrench_doc_
5星 · 资源好评率100%
以下是 Fama-French 五因子模型的 Python 代码示例:
```python
import pandas as pd
import numpy as np
import statsmodels.api as sm
# 导入数据
data = pd.read_csv('data.csv')
# 计算市场收益率
market_return = data['market_return']
# 计算SMB因子
small_cap = data['small_cap']
big_cap = data['big_cap']
SMB = pd.Series((small_cap - big_cap).values, index=market_return.index)
# 计算HML因子
high_book_to_market = data['high_book_to_market']
low_book_to_market = data['low_book_to_market']
HML = pd.Series((high_book_to_market - low_book_to_market).values, index=market_return.index)
# 计算RMW因子
robust_operating_profit = data['robust_operating_profit']
weak_operating_profit = data['weak_operating_profit']
RMW = pd.Series((robust_operating_profit - weak_operating_profit).values, index=market_return.index)
# 计算CMA因子
conservative_accruals = data['conservative_accruals']
aggressive_accruals = data['aggressive_accruals']
CMA = pd.Series((conservative_accruals - aggressive_accruals).values, index=market_return.index)
# 计算五因子模型
X = pd.DataFrame({'Market': market_return, 'SMB': SMB, 'HML': HML, 'RMW': RMW, 'CMA': CMA})
X = sm.add_constant(X)
Y = data['stock_return']
model = sm.OLS(Y, X).fit()
# 输出结果
print(model.summary())
```
其中,`data.csv` 是包含股票收益率、市场收益率、市值、账面市值比、强势盈利、弱势盈利、稳健运营、脆弱运营、保守应计和激进应计等数据的 CSV 文件,`small_cap` 和 `big_cap` 是小市值和大市值股票的收益率,`high_book_to_market` 和 `low_book_to_market` 是高账面市值比和低账面市值比股票的收益率。通过计算市场收益率、SMB 因子、HML 因子、RMW 因子和 CMA 因子,然后使用 `statsmodels` 包中的 `OLS` 函数进行回归计算,并输出结果。
阅读全文