使似然返回一个数字R的向量

时间:2018-01-08 13:31:50

标签: r vector statistics log-likelihood

我想让我的似然函数返回多个值。 我有以下可能性

loglike <- function(x,mu,tau,u){

logl <- sum(-0.5*log(2*pi) -.5*log(tau^2+u^2) * (1/(2*(tau^2+u^2)))*((x-mu)**2) )

return(-logl)
}

x <- c(3.3569,1.9247,3.6156,1.8446,2.2196,6.8194,2.0820,4.1293,0.3609,2.6197)
u <- c(1,3,0.5,0.2,2,1.7,0.4,1.2,1.1,0.7)  
tau=2

mu <- seq(0,10,length=1000)

我希望在插入mu的向量时生成向量的可能性,但它只返回一个数字。如何为向量中的每个mu返回-logl的可能性?

1 个答案:

答案 0 :(得分:1)

您可以尝试vapply以便为每个mu运行该功能:

loglike <- function(x, mu, tau, u){

  logl <- vapply(mu, function(m) {
    logl <- sum(-0.5*log(2*pi) -.5*log(tau^2+u^2) * (1/(2*(tau^2+u^2)))*((x-m)**2) )
  }, FUN.VALUE = numeric(1))

  return(-logl)
}

loglike(x, mu, tau, u)