结合金融场景的Scipy模块编程
数据链接:https://pan.baidu.com/s/1VMh8-4IeCUYXB9p3rL45qw
提取码:c6ys
python
import numpy as np
import pandas as pd
import statsmodels
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['FangSong']
mpl.rcParams['axes.unicode_minus']=False
python
P_BoComm=pd.read_excel('data/交通银行A股和H股每日收盘价数据(2018年至2020年).xlsx',sheet_name='Sheet1',header=0,index_col=0)
P_BoComm.plot(figsize=(9,6),grid=True, fontsize=13) # 股票可视化
python
R_BoComm=np.log(P_BoComm/P_BoComm.shift(1)) # 计算交通银行股票的对数收益率
R_BoComm.describe()
python
R_BoComm.isnull().any()
python
Index_dropna = R_BoComm.dropna() # 直接删除
Index_dropna
python
import statsmodels.api as sma
Y = Index_dropna.iloc[:,-1]
X = Index_dropna.iloc[:,0]
X_addcons = sma.add_constant(X)
model = sma.OLS(endog=Y, exog=X_addcons)
result=model.fit()
result.summary()
python
plt.figure(figsize=(9,6))
plt.scatter(X,Y,c='b',marker='o')
plt.plot(X,result.params[0]+result.params[1]*X,'r-',lw=2.5)
plt.xticks(fontsize=13)
plt.xlabel('交通银行A股日收益率',fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel('交通银行H股日收益率',fontsize=13)
plt.title('交通银行A股日收益率的散点图和线性拟合',fontsize=13)
plt.grid()
plt.show()