首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >f(x,...)中出错:缺少参数"x“,在nlm中没有默认值

f(x,...)中出错:缺少参数"x“,在nlm中没有默认值
EN

Stack Overflow用户
提问于 2017-05-02 20:51:28
回答 1查看 11.5K关注 0票数 0
代码语言:javascript
复制
rm(list=ls(all=TRUE))
data <- read.csv("con.csv", header=TRUE, sep = ",")
x <- data$X0
n = length(x); T1 <- 1
f <- function(a,b) {
  L <- (n*log(a))+(n*a*log(T1))+(n*a*log(b))-(n*log((T1^a)-(b^a)))- ((a+1)*sum(log(b+x)))
  return(-L)  
}

ML <- nlm(f, c(0.01,0.17))

在f(x,...)中导致错误:参数"x“丢失,没有默认值帮助我找出错误和解决方案

EN

回答 1

Stack Overflow用户

发布于 2017-05-02 21:12:20

传递给函数f的参数必须是单个向量。下面是正确的定义:

代码语言:javascript
复制
f <- function(pars) {
  L <- (n*log(pars[1]))+(n*pars[1]*log(T1))+(n*pars[1]*log(pars[2]))-
       (n*log((T1^pars[1])-(pars[2]^pars[1])))- ((pars[1]+1)*sum(log(pars[2]+x)))
  return(-L)  
}

下面是一个工作示例:

代码语言:javascript
复制
set.seed(1234)
n <- 100
x <- runif(n)+5
T1 <- 1
(ML <- nlm(f, p=c(0.01,0.17)))

结果是:

代码语言:javascript
复制
$minimum
[1] 227.3527

$estimate
[1] 2.420050e-07 1.768907e-01

$gradient
[1]  259.0327 -308.4809

$code
[1] 2

$iterations
[1] 12
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43738371

复制
相关文章

相似问题

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