如何从非线性回归拟合功率曲线?

G琼斯

我正在尝试按照非线性回归拟合曲线。

这是我的数据集:

stem_diameter <- c(15, 15, 16, 17, 19, 23, 23, 24, 24, 25, 25, 26, 27, 28, 29, 30, 30, 32, 32, 33, 34, 34, 35, 36, 36, 37, 38, 40, 41, 41, 42, 42, 46, 48, 48, 49, 51, 54, 55, 60)

total_biomass <- c(0.25, 0.65, 0.40, 0.40, 0.65, 0.60, 0.20, 0.60, 0.50, 0.35, 0.70, 0.65, 0.95, 0.60, 0.80, 0.90, 0.70, 1.15, 1.00, 1.70, 1.95, 1.15, 1.70, 1.25, 1.95, 1.20,
2.70, 2.00, 3.70, 2.35, 1.50, 2.50, 5.05, 4.10, 2.85, 2.15, 3.50, 4.80, 5.30, 2.95)

stem_data.df <- data.frame(stem_diameter, total_biomass)

我试过拟合线性模型如下:

model1 <- lm(total_biomass ~ stem_diameter, data = stem_data.df)
summary(model1)
plot(total_biomass ~ stem_diameter)
lines(stem_diameter, predict(model1))

但是我认为非线性模型更适合数据。

然后我继续这样做:

m <- nls(total_biomass ~ a(stem_diameter^b), stem_data.df, start = list(a = -1.8, b = 0.1)) # power formula: y = a*x^b
summary(m)
plot(total_biomass ~ stem_diameter)
lines(stem_diameter, fitted(m), col = "green")

正如我在别处读到的,a 和 b 是上述线性模型的系数。然而,拟合在绘图上的曲线看起来并不应该如何,这让我认为公式本身存在问题。数据本身似乎很好,因为我已经能够在 excel 散点图中绘制曲线,其 R2 值为 0.79,公式为 y = 0.0009x^2.0598。更改 a 和 b 的值对曲线也没有实际影响,因此我不确定可能是什么问题。

谁能解释一下可能是什么问题?

提前致谢

罗兰

我建议你研究这篇文章:https : //stats.stackexchange.com/a/255265/11849

反正,

fit1 <- lm(log(total_biomass) ~ log(stem_diameter), data = stem_data.df)

#you were missing a `*` and had bad starting values
m <- nls(total_biomass ~ a*(stem_diameter^b), stem_data.df, 
         start = list(a = exp(coef(fit1)[1]), b = coef(fit1)[2])) # power formula: y = a*x^b
summary(m)
plot(total_biomass ~ stem_diameter)
curve(predict(m, newdata = data.frame(stem_diameter = x)), add = TRUE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较非线性回归模型

来自分类Dev

2条曲线同时非线性回归

来自分类Dev

Fminsearch Matlab(非线性回归)

来自分类Dev

在R中绘制非线性回归

来自分类Dev

用ggplot绘制非线性回归列表

来自分类Dev

如何在ggplot2中绘制组内的非线性回归线和总数据?

来自分类Dev

如果使用正态分布的目标值进行训练,非线性回归算法的性能会更好吗?

来自分类Dev

用线性/非线性回归拟合两条曲线

来自分类Dev

Python移动视野时间序列非线性回归中的不良数据

来自分类Dev

如何基于R包Growthrates的非线性回归在ggplot中再现图?

来自分类Dev

GEKKO多元非线性回归

来自分类Dev

Keras序列模型非线性回归模型不良预测

来自分类Dev

神经网络的非线性回归

来自分类Dev

错误非线性回归python曲线拟合

来自分类Dev

R中的非线性曲线拟合

来自分类Dev

非线性拟合正弦曲线失败

来自分类Dev

多数据集的R中的非线性回归

来自分类Dev

Matlab中的n维非线性曲线拟合

来自分类Dev

使用PyMC(2)进行稳健的非线性回归

来自分类Dev

非线性回归误差(单梯度矩阵)

来自分类Dev

为R中的非线性回归找到合适的公式

来自分类Dev

确定R中非线性回归的拟合方程

来自分类Dev

如何对我的数据执行非线性回归

来自分类Dev

最大化R中的非线性回归函数

来自分类Dev

非线性回归

来自分类Dev

如何在 R 中拟合非线性线?

来自分类Dev

R:拟合曲线到点:使用什么线性/非线性模型?

来自分类Dev

如何在 Minitab 中运行非线性回归宏(简单的语法错误)?

来自分类Dev

在 esttab 中结合线性和非线性回归的输出