R 平方(决定系数)范围超出 0 和 1?

问题描述 投票:0回答:1

我的印象是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;博士 所以我想知道:

    我是否正确地认为 R 平方值的范围可以从负无穷到 1,调整后的 R 平方值可以从 0 到正无穷大,而不是限制在 0 和 1 之间?
  1. 如果不是,R 平方和调整后的 R 平方是否有不同的范围?
statistics coefficient-of-determination
1个回答
0
投票
我对调整后的 r2_score 范围有类似的问题。我已经实现并得出结论,负 inf 和正无穷值都是可能的。

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
    
© www.soinside.com 2019 - 2024. All rights reserved.