对于采样重要性重采样算法,我遇到以下代码问题。它返回
log = True:未使用的Argument
宣传Theta。
T = 1e5
theta <- runif(T,0,1, log=TRUE)
log.p <- function(x) dbeta(x, 3000+711, 17000+2201-711)
log.s <- function(x) dunif(x, 0, 1,)
w <- function(t) log.p(t) / log.s(t)
HA <- sum(w(theta)%*%theta)/T
答案 0 :(得分:1)
错误消息表明log
函数没有runif
参数。检查*unif
函数系列的文档(例如运行?runif
)向我们展示了这一点:
Usage:
dunif(x, min = 0, max = 1, log = FALSE)
punif(q, min = 0, max = 1, lower.tail = TRUE, log.p = FALSE)
qunif(p, min = 0, max = 1, lower.tail = TRUE, log.p = FALSE)
runif(n, min = 0, max = 1)
答案 1 :(得分:1)
如果我错了,更精通R的人会纠正我,但是从 here 来看,看起来runif()并没有采用日志参数。只是停止传递log = true,因为它在这里没有做任何事情。