四参数多项式的平滑曲线
Smooth curve of a four parameter polynomial
我正在使用此公式处理 nls 模型 (b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)
我使用带有随机算法的 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 计算的估计值来设置变量?
您需要定义方程式以接受系数 b1 到 b4 作为输入,如下所示:
eqn <- function(x, b1, b2, b3, b4){
(b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)
}
像这样将系数传递给调用函数:
curve(eqn(x, b1 = 1, b2 = 5, b3 = 0.7, b4 = 9.5), from=0, to=2, col = "green", n = 60)
您需要定义 x 的起始值和终止值。另外 select "n" 的值对于平滑曲线来说足够大,n 为 6 时不会平滑。
我正在使用此公式处理 nls 模型 (b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)
我使用带有随机算法的 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 计算的估计值来设置变量?
您需要定义方程式以接受系数 b1 到 b4 作为输入,如下所示:
eqn <- function(x, b1, b2, b3, b4){
(b1 * ((b2 * x)^b4)) / (1 + ((b2 * x)^b4))^(b3 / b4)
}
像这样将系数传递给调用函数:
curve(eqn(x, b1 = 1, b2 = 5, b3 = 0.7, b4 = 9.5), from=0, to=2, col = "green", n = 60)
您需要定义 x 的起始值和终止值。另外 select "n" 的值对于平滑曲线来说足够大,n 为 6 时不会平滑。