簡體   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