性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
我们对“668012 中微公司股票”线性回归来分析一下,我们首先需要导入股票数据的包
pip install tushare
接着通过线性回归研究股票,打印输出股票前5个数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime as dt
#使用如下方式下载某个公司的股票交易历史数据
import tushare as ts #使用pip install tushare 安装tushare python包 股票数据包
from sklearn.linear_model import LinearRegression
from sklearn import preprocessing
df =ts.get_hist_data('688012') #比如 668012 中微公司股票
df.to_csv('688012.csv')
#导入数据,输出前几行看一下情况
df=pd.read_csv('./688012.csv')
print(np.shape(df))
df.head()
#将每个数据的键值类型从字符串转化为日期
df['date']=pd.to_datetime(df['date'])
df =df.set_index('date')
#按时间升序排列
df.sort_values(by=['date'],inplace=True , ascending =True )
df.tail()
#检测是否有缺失数据
df.dropna(axis=0,inplace=True)
df.isna( ).sum( )
#线性回归
num=7 #选择个数
df ['label']=df['close'].shift(-num)
print(df.shape)
Data =df.drop(['label','price_change','p_change'],axis=1)
Data.tail( )
运行结果:
接下来通过线性回归图像来观察股票
plt.figure(figsize=(20,20)) #设置图像大小
plt.xticks(fontsize=10) #设置x轴刻度字体大小
plt.subplots_adjust(wspace =0.2,hspace=1) #wspace调整图像的左右间距,hspace调整图像上下间距。
plt.subplot(2,2,1) #设置存放的图像2*2个
plt.plot(Data.open)
plt.subplot(2,2,2)
plt.plot(Data.close)
plt.subplot(2,2,3)
plt.plot(Data.volume)
运行结果: