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())
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Python 股票数据分析 tushare获取上证指数和各股票的数据 各类指标统计散点图折线图线性回归建模 三因子模型R market SMB HML jupyter notebook numpy pandas statmodels matplotlib 数据分析 数据挖掘 机器学习 人工智能
资源推荐
资源详情
资源评论
收起资源包目录
24.rar (15个子文件)
shangzheng.csv 27KB
XinAnGuFen return and market return.png 13KB
三因子example
FF三因子模型.ipynb 38KB
创业板数据.csv 11MB
chuangyeban3yinzi.csv 19KB
stock_get.ipynb 17KB
stock1.ipynb 184KB
SMB.png 25KB
HML.png 25KB
xinan.csv 19KB
huaxia2014ret.png 22KB
py1.py 3KB
huaxia.csv 18KB
R_market.png 23KB
上证指数.xlsx 681KB
共 15 条
- 1
HinomotoOniko
- 粉丝: 2288
- 资源: 145
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 柯尼卡美能达Bizhub C266打印机驱动下载
- java游戏之我当皇帝那些年.zip开发资料
- 基于Matlab的汉明码(Hamming Code)纠错传输以及交织编码(Interleaved coding)仿真.zip
- 中国省级新质生产力发展指数数据(任宇新版本)2010-2023年.txt
- 基于Matlab的2Q-FSK移频键控通信系统仿真.zip
- 使用C++实现的常见算法
- travel-web-springboot【程序员VIP专用】.zip
- 基于Matlab, ConvergeCase中部分2D结果文件输出至EXCEL中 能力有限,代码和功能极其简陋.zip
- java桌面小程序,主要为游戏.zip学习资源
- Java桌面-坦克大战小游戏.zip程序资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页