我不知道如何从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))
}
答案 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