R 中的非线性最小二乘法:eval(predvars,data,env)中的错误:找不到对象
Non-linear least squares in R: Error in eval(predvars, data, env) : object not found
我试图在 R 中安装一个 gnls
函数并抛出一个错误:
Error in eval(predvars, data, env) : object A not found
不确定我哪里出错了。
set.seed(111)
y.size <- rnorm(100,4,1)
p <- rnorm(100,5,1)
df <- data.frame(p, y.size)
# fit generalised nonlinear least squares
require(nlme)
mgnls <- gnls(y.size ~ ((A *((p*K/Ka)-1))-1)* log(p),
start = list(A = c(-1,-10),
K = c(800,3000),
Ka = c(35000,45000)),
data = df)
plot(mgnls) # more homogenous
对于任何需要更多信息的人:我正在努力跟进
我看到有 2 个问题。首先我不明白约定list(A = c(-1,-10), K = c(800,3000),Ka = c(35000,4500))
。一般只用1个值来初始化起始值。
其次,您的等式定义 K/Ka 两个值都是可调参数。这将导致错误,因为 K 和 Ka 的值有无数个,它们的计算结果相同。最好将一个值设置为常数或定义一个等于比率的新值。
set.seed(111)
y.size <- rnorm(100,4,1)
p <- rnorm(100,5,1)
df <- data.frame(p, y.size)
# fit generalised nonlinear least squares
require(nlme)
mgnls <- gnls(y.size ~ ((A *((p*K_Ka)-1))-1)* log(p),
start = list(A = -5, K_Ka = 0.5),
data=df)
plot(mgnls) # more homogenous
我试图在 R 中安装一个 gnls
函数并抛出一个错误:
Error in eval(predvars, data, env) : object A not found
不确定我哪里出错了。
set.seed(111)
y.size <- rnorm(100,4,1)
p <- rnorm(100,5,1)
df <- data.frame(p, y.size)
# fit generalised nonlinear least squares
require(nlme)
mgnls <- gnls(y.size ~ ((A *((p*K/Ka)-1))-1)* log(p),
start = list(A = c(-1,-10),
K = c(800,3000),
Ka = c(35000,45000)),
data = df)
plot(mgnls) # more homogenous
对于任何需要更多信息的人:我正在努力跟进
我看到有 2 个问题。首先我不明白约定list(A = c(-1,-10), K = c(800,3000),Ka = c(35000,4500))
。一般只用1个值来初始化起始值。
其次,您的等式定义 K/Ka 两个值都是可调参数。这将导致错误,因为 K 和 Ka 的值有无数个,它们的计算结果相同。最好将一个值设置为常数或定义一个等于比率的新值。
set.seed(111)
y.size <- rnorm(100,4,1)
p <- rnorm(100,5,1)
df <- data.frame(p, y.size)
# fit generalised nonlinear least squares
require(nlme)
mgnls <- gnls(y.size ~ ((A *((p*K_Ka)-1))-1)* log(p),
start = list(A = -5, K_Ka = 0.5),
data=df)
plot(mgnls) # more homogenous