【statsmodels】快速实现回归预测

python 做线性回归分析有好几种方式,常要的是 scipy 包,statsmodels 包,以及 sklearn包。
但是个人比较喜欢使用statsmodel进行线性回归,一是其可以更好的呈现回归效果,二是其能够自动跳过缺失值。

  1. sklearn则不能方便地显示回归系数的显著性,而statsmodels使用summary方法就可以很直观的显示相关参数。
  2. statsmodels对缺失值预测能够直接返回None,而不报错。而如果被预测数据有缺失值,sklearnLinearRegression缺会报错,这对高效进行回归预测是一个问题
  3. smf进行预测的方式更加灵活,支持用字符串构造线性回归公式
  4. 需要注意的一个点是,使用smf进行回归预测,如果将数据传回到df中,最好使用df.loc[:,'column_name']的形式,否则会有数据缺失的问题
import statsmodels.formula.api as smf  
import pandas as pd

df = pd.read_csv('train.csv')
df['shift_wap'] = df.groupby(['stock_id','date_id'],as_index=False)['wap'].shift(-1).sort_index()

lr = smf.ols('shift_wap ~ ask_price + ask_size + wap + bid_price + bid_size+ reference_price + matched_size', data=df).fit() 
print(lr.summary())

df.loc[:,'unexpected_wap'] = lr.predict(df[['ask_price','ask_size','wap','bid_price','bid_size','reference_price','matched_size']]) 

https://blog.csdn.net/weixin_43230383/article/details/121607538

你可能感兴趣的:(机器学习,statsmodels)