做量化呢,得经常做回归,各种各样的,ols,wls,正则的lasso, 岭回归等等。回归有一个很重要的整体解释力度的参数就是R2,也就是可决系数。在python中,我们回归一般采用的是statsmodels这个模块,但是回归的时候获得的R2其实有那么点学问,有时候设置错参数可能得到的R2大家会觉得怪怪的。这里就给大家排个雷。首先,我们先给出两组、六个回归函数。
第一组:
def cross_reg1_1(df):
results = sm.OLS(df.rate, sm.add_constant(df[['plf_ttm']]), hasconst=False).fit()
return results
def cross_reg1_2(df):
results = sm.OLS(df.rate, sm.add_constant(df[['plf_ttm']]), hasconst=True).fit()
return results
def cross_reg1_3(df):
results = sm.OLS(df.rate, sm.add_constant(df[['plf_ttm']])).fit()
return results
第二组:
def cross_reg2_1(df):
results = sm.OLS(df.rate, df[['plf_ttm']], hasconst=False).fit()
return results
def cross_reg2_2(df):
results = sm.OLS(df.rate, df[['plf_ttm']], hasconst=True).fit()
return results
def cross_reg2_3(df):
results = sm.OLS(df.rate, df[['p

本文探讨了在使用statsmodels进行回归分析时,R2(可决系数)的计算问题。通过对比不同设置下的R2值,解释了hasconstant参数对R2的影响。当hasconstant为False时,由于未减去均值(uncentered TSS),导致R2值增大。同时,文章指出,若模型中显式或隐式包含常数项,R2将采用常规计算方式。理解这些差异有助于正确解读和应用statsmodels的回归结果。
最低0.47元/天 解锁文章
1400

被折叠的 条评论
为什么被折叠?



