我在一个学生研究职位,并且是 R 的新手。我问了一个类似的问题(发布在这里:MLE 问题)。我已经解决了最初的问题,但我遇到了更多关于此功能的问题。
我仍在使用此函数来尝试估计 theta[i], 其中每个其他变量都是当前已知的。
下面是我的代码:
maxParam <- function(theta) {
logl <- sum(for (i in 1:length(doses)) {
sum(
for (j in 1:LITTERS.M) {
sum(
for (k in 0:(litterResponses[i,j]-1)) {
sum(log10(probabilityResponses[i] + k * theta[i]))
}
+
for (k in 0:(litterSizes[i,j]-litterResponses[i,j]-1)) {
sum(log10(1 - probabilityResponses[i] + k * theta[i]))
}
-
for (k in 0:(litterSizes[i,j] - 1)) {
sum(log10(1 + k * theta[i]))
}
)
}
)
})
return (-logl)
}
mle.fit <- mle(maxParam, start=list(theta=c(1,1,1,1,1,1)))
print(mle.fit)
我被抛出的错误是:
错误:缺少参数“theta”,没有默认值
如果错误很愚蠢,我深表歉意,我对 R 知之甚少。
注意: 我使用 (1,1,1,1,1,1) 的向量作为 theta 的测试。这不是实际数据。剂量是对应于血清剂量水平的 6 向量。Litter Responses 是一个矩阵,描述了每窝每剂量对血清的反应。LitterSizes 是一个矩阵,描述了每窝每剂量的窝大小。LITTERS.M 是与血清接触的初始窝数。ProbabilityResponses 是一个向量,用于描述给定小鼠将受到血清影响的概率。