我正在進行一個小型模擬研究,以檢驗矩方法和漸近最大似然估計量的性質。基於牛頓拉夫森的最大似然估計和矩量法
矩估計方法很容易獲得(它由我的代碼的第二行給出),但對於我必須編寫牛頓 - 拉夫遜算法(對於一個樣本來說工作得非常好)。因爲它以這種方式享有一些最佳統計特性,因此需要使用矩估計方法作爲起點(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樣本?我怎麼能輕易地概括這個過程?我的主要困難是由於母親需要媽媽作爲起點,而這兩方面都需要從同一個樣本計算出來。
預先感謝您。
你可以用'複製(N,{...})''那裏...'代表整個代碼要重複'N'倍。 – 2014-10-09 19:32:01
@RomanLuštrik不返回數字的矢量,如果你喜歡嘗試。 – JohnK 2014-10-09 19:36:17