【发布时间】:2012-05-15 12:46:51
【问题描述】:
我正在尝试在包bbmle 中使用命令mle2。我正在查看 Bolker 的“使用 bbmle 包的最大似然估计和分析”的 p2。不知何故,我无法输入正确的起始值。这是可重现的代码:
l.lik.probit <-function(par, ivs, dv){
Y <- as.matrix(dv)
X <- as.matrix(ivs)
K <-ncol(X)
b <- as.matrix(par[1:K])
phi <- pnorm(X %*% b)
sum(Y * log(phi) + (1 - Y) * log(1 - phi))
}
n=200
set.seed(1000)
x1 <- rnorm(n)
x2 <- rnorm(n)
x3 <- rnorm(n)
x4 <- rnorm(n)
latentz<- 1 + 2.0 * x1 + 3.0 * x2 + 5.0 * x3 + 8.0 * x4 + rnorm(n,0,5)
y <- latentz
y[latentz < 1] <- 0
y[latentz >=1] <- 1
x <- cbind(1,x1,x2,x3,x4)
values.start <-c(1,1,1,1,1)
foo2<-mle2(l.lik.probit, start=list(dv=0,ivs=values.start),method="BFGS",optimizer="optim", data=list(Y=y,X=x))
这是我得到的错误:
Error in mle2(l.lik.probit, start = list(Y = 0, X = values.start), method = "BFGS", :
some named arguments in 'start' are not arguments to the specified log-likelihood function
知道为什么吗?感谢您的帮助!
【问题讨论】:
-
values.start未指定。你必须定义它。foo2<<-也有错别字。 -
感谢您的快速回答!我进行了这些更改(我的起始值为 values.start
-
您是否正在实施probit regression?
-
我正在做一个异方差概率,公式几乎相同,所以我在这里复制简单概率,这给了我完全相同的问题,起始值似乎被错误指定......但是为什么?
-
l.lik.probit的公式很奇怪,因为它将 external 值x和y分配给它的 argumentsX和Y。此外,对mle2的调用以两种相互冲突的方式使用了命名参数“X”和“Y”两次。因此,我怀疑您可能正在阅读由一连串错误导致的错误消息,它可能无法反映所有问题。也许您应该先尝试mle2手册页上的示例,然后逐步修改它们以适应您的情况。
标签: r confidence-interval