我用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-平方吗?
非常感谢!
发布于 2020-10-14 12:11:24
我找到了解决办法。这种方法在统计方面可能不正确(因为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
https://stackoverflow.com/questions/64316765
复制相似问题