Вычисление 100 MLE, чтобы найти среднее значение оценки - PullRequest
0 голосов
/ 08 июня 2019

Я не знаю, как я могу извлечь mu и sigma из функции MLE, чтобы продолжить дальнейшие вычисления. Я хотел бы найти среднее значение обеих оценок (mu & sigma) после генерации 100 образцов. Я не знаю, как действовать дальше.

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 голосов
/ 08 июня 2019

Параметры оценки функции 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...