【金融】【python】CAPM实证分析

CAPM模型实证分析

  • CAPM模型

代码用于 financial asset pricing 课程,三因子模型可见其他博文。

CAPM模型

主要参考了这篇博客https://blog.csdn.net/weixin_42152885/article/details/80239226

#载入股指数据
import tushare as ts
mydf_sz = ts.get_hist_data('sz',start='2005-01-01',end='2019-5-7')
mydf_sh = ts.get_hist_data('sh',start='2005-01-01',end='2019-5-7')

mydf_sh_md = ts.get_hist_data('000002',start='2005-01-01',end='2019-5-7')
mydf_sh_md.head()

【金融】【python】CAPM实证分析_第1张图片

import pandas as pd
sh_md_merge = pd.merge(pd.DataFrame(mydf_sh.p_change),
                       pd.DataFrame(mydf_sh_md.p_change),
                       left_index=True,right_index=True,how='inner')

#计算日无风险利率
Rf_annual=0.0385  #以2017年中国一年期的国债利率为无风险利率
Rf_daily=(1+Rf_annual)**(1/365)-1  #年利率转化为日利率
 
#计算风险溢价:Ri-Rf
risk_premium=sh_md_merge-Rf_daily;
risk_premium.head()
#画出两个风险溢价的散点图,查看相关性
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg'

plt.scatter(risk_premium.values[:,0],risk_premium.values[:,1])
plt.show()

【金融】【python】CAPM实证分析_第2张图片

sh_md_merge.info()

【金融】【python】CAPM实证分析_第3张图片

##利用最小二乘法进行线性回归,拟合CAPM模型
import statsmodels.api as sm
md_capm=sm.OLS(risk_premium.p_change_y[1:],sm.add_constant(risk_premium.p_change_x[1:]))
result=md_capm.fit()
print(result.summary())

【金融】【python】CAPM实证分析_第4张图片

# plt.title('wanke')
plt.plot(mydf_sh_md.index.get_level_values(0).values[1:], risk_premium.p_change_y[1:])
plt.plot(mydf_sh_md.index.get_level_values(0).values[1:], risk_premium.p_change_x[1:])
# plt.legend(['wanke','Rp','SML'])
plt.show()

【金融】【python】CAPM实证分析_第5张图片

你可能感兴趣的:(金融,概率论,python)