簡體   English   中英

基於牛頓-拉夫森和矩量法的最大似然估計

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM