股票量化分析(13) |
您所在的位置:网站首页 › 股价如何预测收盘价格的方法 › 股票量化分析(13) |
这里直线拟合需要用到statsmodels这个库; 曲线拟合需要用到np.polynomial.Chebyshev.fit()这个函数; 方差计算需要用到sklearn这个库。 首先来看直线拟合,这里拟合’600848’这只股票一年的收市的股价。 import tushare as ts import pandas as pd import matplotlib.pyplot as plt import numpy as np import talib df=ts.get_hist_data('600848',start='2015-01-01',end='2015-12-31') df=df.sort_index() df.index=pd.to_datetime(df.index,format='%Y-%m-%d') #收市股价 close= df.close x=np.arange(0,len(close)) y=close.values import statsmodels.api as sm from statsmodels import regression def regress_y(y): x=np.arange(0,len(y)) x=sm.add_constant(x) model=regression.linear_model.OLS(y,x).fit() return model model=regress_y(close) b=model.params[0] k=model.params[1] y_fit=k*x+b plt.plot(x,y) plt.plot(x,y_fit,'r')接着来看一下用sklearn计算偏差绝对值之和(MAE),偏差平方(MSE),偏差平方和开平方(RMSE) from sklearn import metrics MAE=metrics.mean_absolute_error(y,y_fit) MSE=metrics.mean_squared_error(y,y_fit) RMSE=np.sqrt(MSE)最后来看一下多项式拟合,这里取得是9项: #多项式拟合 p=np.polynomial.Chebyshev.fit(x,y,9) y_fit_n=p(x) plt.plot(x,y,'',x,y_fit_n,'r') |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |