繁体   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