四参数多项式的平滑曲线

问题描述 投票:0回答:1

我正在使用此公式(b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)处理nls模型>

我使用nls2软件包和随机算法来查找初始值。这是我的公式和曲线函数的代码:

eqn <- function(x){(b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)}


curve(eqn, data$x, data$y, col = "green", n = 6)

我不知道,如果我正确使用n =“”。但是,我使用n = 6作为等式的长度,因为我的数据在x和y变量上有6个值。

但是,当我尝试为模型绘制曲线时,它最终出现了错误:object 'b1' not found.

如何避免此错误?我通过在nls2的结构之外设置使用nls2获得的变量的估计值来避免此错误。

例如:

b1 = 1
b2 = 5
b3 = 0.7
b4 = 9.5

**另一方面,如何在方程式的curve()中设置变量的值而又不会出现错误:object 'b1' not found.,我应该使用start = list()吗?

curve(eqn, data$x, data$y, col = "green", n = 6, start = list (b1 = 1, b2 = 5, b3 = 0.7, b = 9.5))

我找到了有关为多项式方程制作曲线的各种示例,但是这些示例已经为方程的变量定义了值。是否可以使用从nls2计算出的估计值来设置变量?

我正在使用使用以下公式的nls模型(b1 *((b2 * x)^ b4))/(1 +((b2 * x)^ b4))^(b3 / b4)我使用nls2包用随机算法找到初始值。这是我的代码...

r function curve-fitting polynomials nls
1个回答
1
投票

您将需要定义您的方程式,以接受系数b1至b4作为这样的输入:

© www.soinside.com 2019 - 2024. All rights reserved.