我首先要说的是,据我所知,计算非线性回归的R ^ 2值并不完全正确或有效。
然而,我正处于将SigmaPlot中的大部分工作执行到R的过渡期,对于我们的非线性(浓度响应)模型,同事习惯于查看与模型相关的R ^ 2值估计适合度。
SigmaPlot使用1-(残留SS /总SS)计算R ^ 2,但在R I中似乎无法提取总SS(残留SS在摘要中报告)。
当我试图让我们使用更好的适合度估算器时,我们将非常感谢任何帮助实现此功能。
干杯。
答案 0 :(得分:10)
我没有提取总SS,而是计算了它们:
test.mdl <- nls(ctrl.adj~a/(1((conc.calc/x0)^b)),
data=dataSet,
start=list(a=100,b=10,x0=40), trace=T);
1 - (deviance(test.mdl)/sum((ctrl.adj-mean(ctrl.adj))^2))
我得到与使用SigmaPlot时相同的R ^ 2,所以一切都应该是好的。
答案 1 :(得分:5)
因此,y的总变差类似于(n-1)* var(y),未解释我的模型的比例为sum(residuals(fit)^2)
,所以请执行1-(sum(residuals(fit)^2)/((n-1)*var(y)) )