计算100个MLE以找到估计量的均值

时间:2019-06-08 05:18:07

标签: r mle

我不知道如何从MLE函数中提取mu和sigma来进行进一步的计算。我想在生成100个样本后找到两个估计器的均值(mu&sigma)。我不知道如何进一步进行。

n <- 100
N=100
x <- rnorm(N,mean = 100, sd = 5)

normal.lik1<-function(theta,y){
  mu<-theta[1]
  sigma2<-theta[2]
  n<-100
  logl<- -.5*n*log(2*pi) -.5*n*log(sigma2) -
    (1/(2*sigma2))*sum((y-mu)**2)
  return(-logl)
}

mle <- optim(c(0,1),normal.lik1,y=x,method="L-BFGS-B",lower = c(-Inf, 0),
             upper = c(Inf,Inf))

out = vector("numeric",100)
out2 = replicate(100, {
  out = numeric(100)
  for (i in 1:100){
    x <- rnorm(N,mean = 100, sd = 5)
    out[i] = optim(c(0,1),normal.lik1,y=x,method="L-BFGS-B",
      lower = c(-Inf, 0),upper = c(Inf,Inf))


    } 

1 个答案:

答案 0 :(得分:0)

optim函数的估计参数可以在列表元素par(参数)中找到。

您可以使用mle$par提取这些值。

mle$par
# [1] 100.53527  26.02396

mle$par[1]  # mean
# [1] 100.5353
mle$par[2]  # variance
# [1] 26.02396