如何解决如何在R中的nls包非线性模型中计算R平方?
我使用nls软件包分析了非线性回归。
power<- nls(formula= agw~a*area^b,data=calibration_6,start=list(a=1,b=1))
summary(power)
我听说在非线性模型中,R平方不是有效的,而不是R平方的,我们通常会显示R提供的残差标准误差。
但是,我只想知道R平方是什么。可以在nls包中检查R平方吗?
非常感谢!
- OutPut
解决方法
我找到了解决方案。从统计角度来看,此方法可能是不正确的(因为R ^ 2在非线性模型中无效),但我只是想了解非线性模型的整体拟合优度。
步骤1>将数据转换为对数(通用对数)
使用非线性模型时,无法检查R ^ 2
nls(formula= agw~a*area^b,data=calibration,start=list(a=1,b=1))
因此,我将数据转换为日志
x1<- log10(calibration$area)
y1<- log10(calibration$agw)
cal<- data.frame (x1,y1)
第2步>分析线性回归
logdata<- lm (formula= y1~ x1,data=cal)
summary(logdata)
Call:
lm(formula = y1 ~ x1)
此模型提供y = -0.122 + 1.42x
但是,我想将拦截力强制为零,
步骤3>强制拦截为零
logdata2<- lm (formula= y1~ 0 + x1)
summary(logdata2)
现在等式为y = 1.322x,这意味着log(y)= 1.322 log(x),
所以它是y = x ^ 1.322。
在幂曲线模型中,我将截距强制为零。 R ^ 2为0.9994
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。