假设我有x
个值,y
个值和y个期望值f
(来自某些非线性最佳拟合曲线)。
如何计算R中的R ^ 2?请注意,此函数不是线性模型,而是非线性最小二乘(nls
)拟合,因此不是lm
拟合。
最佳答案
您只需使用lm
函数来拟合线性模型:
x = runif(100)
y = runif(100)
spam = summary(lm(x~y))
> spam$r.squared
[1] 0.0008532386
请注意,r平方不是为非线性模型定义的,或者至少是非常棘手的quote from R-help:
有一个很好的理由表明R中的nls模型不提供
r平方-r平方对于一般的nls模型没有意义。
r平方的一种思考方式是对残差的比较
拟合模型的平方和与的残差平方和
一个仅由常数组成的平凡模型。你不能
确保在处理时这是嵌套模型的比较
nls模型。如果没有嵌套模型,则不进行比较
非常有意义。
因此,答案是您可能不想在第一时间这样做
地点。
如果需要同行评审的证据,请参见this article;例如,并不是说您不能计算R ^ 2值,而是它可能与线性模型中的情况不同/具有相同的理想属性。
关于r - 计算非线性最小二乘拟合的R ^ 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14530770/