[英]Maximum Likelihood estimation based on Newton-Raphson and the method of moments
我正在進行一項小型仿真研究,以漸近地研究矩量法和最大似然估計器的性質。
矩估計器的方法很容易獲得(由我的代碼的第二行給出),但是對於我來說,我不得不編寫一個Newton-Raphson算法(對於一個樣本來說效果很好)。 MLE需要使用矩估計器的方法作為起點(a0),因為它以這種方式具有一些最佳的統計特性。 開始
x<-rbeta(500,0.5,3)
mom<-3*mean(x)/(1-mean(x))
mlea<-function(x,a0,numstp=100,eps=0.001){
n=length(x)
numfin=numstp
ic=0
istop=0
while(istop==0){
ic=ic+1
lprime=n/a0+n/(a0+1)+n/(a0+2)+sum(log(x))
ldprime=-n/a0^2-n/(a0+1)^2-n/(a0+2)^2
a1=a0-(lprime/ldprime)
check=abs((a1-a0)/a0)
if(check<eps){istop=1}
a0=a1
}
list(a1=a1,check=check,realnumstps=ic)
}
這適用於一個樣本,但是我能否獲得1000個樣本的估計值? 我如何輕松地概括這個過程? 我的主要困難是由於以下事實引起的:the鼠需要媽媽作為起點,而這兩者都需要從同一樣本中計算得出。
先感謝您。
我想你想這樣做嗎?
n<-100
replicate(n, {
x<-rbeta(500,0.5,3)
mom<-3*mean(x)/(1-mean(x))
mlea(x, mom)
})
現在,將不返回數字向量,因為您的函數mlea返回了一個列表。 假設您真正關心的清單中的值是a1,那么您可以
n<-100
replicate(n, {
x<-rbeta(500,0.5,3)
mom<-3*mean(x)/(1-mean(x))
mlea(x, mom)$a1
})
注意,我在函數調用結束時調用了$ a1。
因此,這里發生的事情是復制將為復制中的每個迭代從您的Beta分布中提取500個新觀察值(將迭代n次),然后基於該x計算媽媽,然后給出mlea的結果
我的結果?
replicate(3, {
x<-rbeta(500,0.5,3)
mom<-3*mean(x)/(1-mean(x))
list(a1=mlea(x, mom)$a1, mom=mom)
})
# [,1] [,2] [,3]
#a1 0.494497 0.522325 0.5153832
#mom 0.4955767 0.5083678 0.5206997
這里的每一列都是一個觀察
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.