r - 计算非线性最小二乘拟合的R ^ 2

标签 r

假设我有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/

相关文章:

删除由 ggarrange 排列的透明 ggplot 图之间的网格

r - R 中的符号::: 是什么意思

r - “Non Zero Exit Status” R 3.6.0 "Biobase"

根据列名称模式 reshape 数据

r - 将 R 中的行子集化为两个最大值

r - R 中的跟踪函数

javascript - R:从网站下载 .csv

r - 给定R中的一般方程,如何绘制椭圆?

r - ggplot2:带有 scale_colour_brewer 的 geom_smooth 颜色

r - ggplot 中多次填充的图例