import numpy as np
import pandas as pd
import matplotlib
from matplotlib import pyplot as plt
font = {
"family": "Microsoft YaHei"
}
matplotlib.rc("font", **font)
import statsmodels.api as sm
# 读取数据
shangzheng = pd.read_csv('shangzheng.csv')
# 计算retindex
shangzheng['Retindex'] = np.log(shangzheng['收盘价'] / shangzheng['收盘价'].shift(1))[1:]
xinan = pd.read_csv('xinan.csv')
xinan['Retindex'] = np.log(xinan['close'] / xinan['close'].shift(1))[1:]
# 转换数据类型为string
xinan['trade_date'] = xinan['trade_date'].apply(lambda x: str(x))
# 把2014/1/1格式的日期转换为20140101格式
def date(x):
ymd = x.split('/')
year = ymd[0]
month = ymd[1] if len(ymd[1]) == 2 else '0' + ymd[1]
day = ymd[2] if len(ymd[2]) == 2 else '0' + ymd[2]
return year + month + day
shangzheng['日期'] = shangzheng['日期'].apply(date)
# 转换完以后可以用相同日期为基准合并两张表
shangzheng_xinan = pd.merge(shangzheng, xinan, left_on='日期', right_on='trade_date')
# 取出需要的3列
ret = shangzheng_xinan.loc[:, ['日期', 'Retindex_x', 'Retindex_y']]
# 去除异常空值
ret = ret.dropna()
# 计算eret
rf = 1.036 ** (1 / 360) - 1
ret['eret_x'] = ret['Retindex_x'].apply(lambda x: x - rf)
ret['eret_y'] = ret['Retindex_y'].apply(lambda x: x - rf)
# 画散点图
plt.scatter(ret['eret_x'], ret['eret_y'], color='black')
plt.xlim(-0.06, 0.06)
plt.ylim(-0.15, 0.15)
plt.title('XinAnGuFen return and market return')
plt.savefig('XinAnGuFen return and market return.png')
plt.show()
# 计算OLS
model = sm.OLS(ret['eret_y'], sm.add_constant(ret['eret_x']))
result = model.fit()
print(result.summary())
# 读数据,计算retindex
huaxia = pd.read_csv('huaxia.csv')
ret['Retindex_huaxia'] = np.log(huaxia['close'] / huaxia['close'].shift(1))[1:]
# 画折线图 retindex
plt.plot(ret['Retindex_huaxia'], color='black')
plt.savefig('huaxia2014ret.png')
plt.show()
# 日期转为string
huaxia['trade_date'] = huaxia['trade_date'].apply(lambda x: str(x))
# 组合华夏银行和前面的ret表
huaxia_ret = pd.merge(huaxia, ret, left_on='trade_date', right_on='日期')
# 读三因子数据
yinzi = pd.read_csv('三因子example/chuangyeban3yinzi.csv').iloc[1:, 2:]
yinzi = yinzi.reset_index()
# 拼接ret和三因子两张表
hxthrfac = pd.concat([huaxia_ret['Retindex_huaxia'], yinzi.iloc[:, 1:]], axis=1)
# 画散点图
plt.scatter(hxthrfac['Retindex_huaxia'], hxthrfac['R_market'])
plt.savefig('R_market.png')
plt.show()
plt.scatter(hxthrfac['Retindex_huaxia'], hxthrfac['SMB'])
plt.savefig('SMB.png')
plt.show()
plt.scatter(hxthrfac['Retindex_huaxia'], hxthrfac['HML'])
plt.savefig('HML.png')
plt.show()
# 计算OLS
regthrfac = sm.OLS(hxthrfac['Retindex_huaxia'], sm.add_constant(hxthrfac.iloc[:, 1:]))
result = regthrfac.fit()
print(result.summary())
HinomotoOniko
- 粉丝: 2356
- 资源: 145
最新资源
- VB+ACCESS宾馆客房管理系统(系统+论文+封面)(2024y3).7z
- VB+access成绩分析统计系统(论文+源代码)(2024tz).7z
- vb+access大气污染模型(系统+翻译+论文+开题)(2024wa).7z
- vb+access抽奖系统(系统+论文+开题报告+外文翻译+封面+中英摘要+任务书+中期检查表)(2024ou).7z
- VB+ACCESS大型机房学生上机管理系统(源代码+系统)(2024n5).7z
- VB+ACCESSVCD租借管理系统(系统+论文+需要分析)(20248q).7z
- php学籍管理系统pc-毕业设计(2024bt).7z
- wangfang1.pdf
- wangfang.pdf
- 《Qt5开发实战》书+源码.zip
- 数学计算中的平方表与圆周率π的应用
- 圣诞树网页的HTML与CSS代码实例
- Java商城-商城演示和商城项目
- 改进的大规模语音合成模型CosyVoice 2: 统一流式与非流式合成
- 全平台数据库管理工具MySQL
- 开源源码分享动态圣诞树
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页