我的印象是R平方值限制在0和1之间。但是,在阅读了一些网上文献/论坛以及一些个人经验之后,我现在觉得R平方值(决定系数)是:
a) 介于负无穷大和 1
之间b)调整后的 R 平方值可以超过 1(我假设正无穷大?)
出现 a 的原因是我拟合了一些返回负 R 平方值的回归模型。这是当最佳拟合线的表现比因变量的平均值差时。即 RSS > TSS。
b的原因是,当我对数据使用PLS回归模型时,我得到的R平方值约为0.94(我不记得实际数字),但将其代入调整后的R平方方程中得到我的值高于 1。我将此归因于观测值少于输入变量(140 个奇数观测值和 228 个输入变量)。我在下面附上了调整后的 R 平方值的公式。
在对 p 和 N 进行几次组合之后,我观察到如果 N > p,则调整后的 R 平方不会超过 1。但是就我而言,N< p, the adjusted R-squared does exceed 1.
TL;博士 所以我想知道:
def adj_r2(r2,n,k):
return 1 - (((1-r2)*(n-1))/(n-k-1))
# case 1: r2=-inf
adj_r2(r2=-4000,n=100,k=10) # returns -4449.550561797752
# case 2: n<k
adj_r2(r2=-4000,n=5,k=10) # returns 2668.3333333333335
adj_r2(r2=0.8,n=5,k=10)# returns 1.1333333333333333