Tushare ID:493711
连载用Python进行量化分析和机器学习。
先讲一下最简单的量化分析和机器学习中的一元线性回归附源码。
回归分析(Regression analysis)
回归分析(Regression analysis),是研究因变量与自变量之间相关性的一种数学方法,并将相关性量化,即得到回归方程。
我们可以通过回归方程(回归预测模型)来预测因变量的变化。
回归分析的分类:
1) 按自变量的个数,可以分为一元回归,多元回归
2)按变量相关性的形状(回归线)是否为直线型,可分为线性回归,非线性回归。
一元线性回归
顾名思义,就是只包含一个自变量,且与因变量的关系是呈线性的回归分析,其回归方程(回归模型)可用下面的方程表示:
y=bx+a (其中:y为因变量,x为自变量,b为回归系数或斜率,a为截距)
下面,我们将通过python工具来理解最简单的回归分析,即一元线性回归,并了解回归分析的步骤。
# 导入包
import tushare as ts
pro = ts.pro_api('自己的token')
# 获取华夏银行日线数据,在备用行情里面
df1 = pro.bak_daily(ts_code='600015.SH', start_date='20180701', end_date='20220318',fields='')
df1.head()
# 增加一列,股票的涨跌幅
df1['zd_close'] = round((df1['close']-df1['close'].shift(1))/df1['close'].shift(1),2)
# 导入所需要的模块
import pandas as pd
import statsmodels.formula.api as smf
# 查看数据
dir(df1)
# 考察数据框的情况
df1.info()
df1.describe()
# 先将涨跌幅对换手率进行一元回归
model = smf.ols('pct_change ~ turn_over',data= df1)
results = model.fit()
results.summary()
# 利用.join()方法把数据的列放在一起,减少工作量
all_col = "+".join(df1.columns)
all_col
# 定义一个回归公式
formula = 'zd_close~' + all_col + "-zd_close"
formula
# 查看参数
results1 = smf.ols(formula,data=df1).fit()
results1.params
results1.summary()