繁体   English   中英

当我使用python statsmodels在OLS中添加外生变量时,为什么R-Squared会减少

[英]Why would R-Squared decrease when I add an exogenous variable in OLS using python statsmodels

如果我正确理解OLS模型,那绝不应该这样吗?

trades['const']=1
Y = trades['ret']+trades['comms']
#X = trades[['potential', 'pVal', 'startVal', 'const']]
X = trades[['potential', 'pVal', 'startVal']]

from statsmodels.regression.linear_model import OLS
ols=OLS(Y, X)
res=ols.fit()
res.summary()

如果我打开常数,我得到一个0.22的平方并且关闭它,我得到0.43。 这怎么可能呢?

请参阅此处的答案Statsmodels:计算拟合值和R平方

Rsquared遵循不同的定义,取决于模型中是否存在常量。

具有常数的线性模型中的Rsquared是标准定义,其使用与仅平均模型的比较作为参考。 总平方和被贬低。

没有常数的线性模型中的Rsquared与完全没有回归量的模型进行比较,或者常数的效果为零。 在这种情况下,R平方计算使用不贬值的总和平方和。

由于如果我们添加或删除常量,定义会发生变化,因此R平方可以采用任何一种方式。 如果我们添加额外的解释变量,实际解释的平方和将总是增加,或者如果新变量没有贡献任何东西则保持不变,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM