如何计算 R 中 nls 包(非线性模型)中的 R 平方?
How to calculate R-squared in nls package (non-linear model) in R?
我使用 nls 包分析了非线性回归。
power<- nls(formula= agw~a*area^b, data=calibration_6, start=list(a=1, b=1))
summary(power)
我听说在非线性模型中,R 平方无效而不是 R 平方,我们通常显示 R 提供的残差标准误差
不过,我只想知道R-squared是什么。是否可以在 nls 包中检查 R 平方?
非常感谢!!!
- 输出
我找到了解决方案。这种方法在统计方面可能不正确(因为 R^2 在 non-linear 模型中无效),但我只想看看我的 non-linear 模型的整体拟合优度。
步骤 1> 将数据转换为对数(常用对数)
当我使用non-linear模型时,我无法检查R^2
nls(formula= agw~a*area^b, data=calibration, start=list(a=1, b=1))
因此,我将数据转换为 log
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
我使用 nls 包分析了非线性回归。
power<- nls(formula= agw~a*area^b, data=calibration_6, start=list(a=1, b=1))
summary(power)
我听说在非线性模型中,R 平方无效而不是 R 平方,我们通常显示 R 提供的残差标准误差
不过,我只想知道R-squared是什么。是否可以在 nls 包中检查 R 平方?
非常感谢!!!
- 输出
我找到了解决方案。这种方法在统计方面可能不正确(因为 R^2 在 non-linear 模型中无效),但我只想看看我的 non-linear 模型的整体拟合优度。
步骤 1> 将数据转换为对数(常用对数)
当我使用non-linear模型时,我无法检查R^2
nls(formula= agw~a*area^b, data=calibration, start=list(a=1, b=1))
因此,我将数据转换为 log
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