首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中的非线性最小二乘:eval中的错误(predvars,data,env):找不到对象

R中的非线性最小二乘:eval中的错误(predvars,data,env):找不到对象
EN

Stack Overflow用户
提问于 2022-05-26 23:57:38
回答 1查看 47关注 0票数 2

我试图在R中加入一个gnls函数,并抛出一个错误:Error in eval(predvars, data, env) : object A not found不知道我在哪里出错。

代码语言:javascript
运行
复制
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

任何需要更多信息的人:我正试图跟随this method

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-27 00:32:51

我看有两个问题。首先,我不明白list(A = c(-1,-10), K = c(800,3000),Ka = c(35000,4500))的惯例。通常,只有一个值用于初始化起始值。

其次,您的方程定义了K/Ka,这两个值都是可调整的参数。这将导致错误,因为K和Ka的值是无限的,这将计算出相同的值。最好将一个值设置为一个常数,或者定义一个等于该比率的新值。

代码语言:javascript
运行
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72399178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档