Re: [問題] R的MLE

看板Statistics作者 (Mathisfun)時間18年前 (2008/01/05 23:53), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串2/2 (看更多)
temp<-rweibull(12,2,3)#產生12個隨機值從weibull(2,3) weib.para.star<-function(x,r)#參數初值函數 { nn<-length(x)#幾個隨機值 ifelse(r>nn,rr<-nn,rr<-r)#確定產生的是12個隨機值 x.sort<-sort(x)#排序 x.rr<-x.sort[1:rr]#取前12個,如果產生的隨機值不是12個的話 #這個我不太懂,但從這開始目的好像是先線性化,在推回參數值 x.qq<-log(-log(1-(c(1:rr)-0.5)/nn)) #plot(x.qq,log(x.rr),xlab="log(-log())", ylab="order statistics") x.lm<-lm(log(x.rr)~x.qq) lambda<-exp(-x.lm$coef[1]) beta<-1/x.lm$coef[2] para<-c(lambda,beta) return(para) } weib.lik<-function(para,x,r)#概似函數 { nn<-length(x)#幾個隨機值 ifelse(r>nn,rr<-nn,rr<-r)#確定產生的是12個隨機值 x.sort<-sort(x)#排序 x.rr<-x.sort[1:rr]#取前12個,如果產生的隨機值不是12個的話 #這是weibull的概似函數 like<-rr*para[2]*log(para[1])+rr*log(para[2])+(para[2]-1)* sum(log(x.rr))-sum((para[1]*x.rr)^para[2]) (nn-rr)*(para[1]*x.rr[rr])^para[2] return(-like)#乘負一,因為等下用nlminb時是要最小化 } para.star<-weib.para.star(temp,12)#參數初值 weib.mle<-nlminb(star=para.star,weib.lik,lower=c(0,0),x=temp,r=12) #(參數初值,想最小化的目標,下界,random value,個數) 有錯請指正! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.223.194.118

01/06 14:10, , 1F
謝謝! x.qq是tp值,令F(tp) = p 移項而得
01/06 14:10, 1F

01/06 14:13, , 2F
請問一下,初值是隨機的變數嗎?然後nlminb的目的是利用該
01/06 14:13, 2F

01/06 14:13, , 3F
隨機變數組,找出參數之MLE?
01/06 14:13, 3F

01/06 16:13, , 4F
這我不太清楚,不過應該是要給初始值,因為是用數值方法
01/06 16:13, 4F

01/06 16:14, , 5F
去求MLE,想法有點像牛頓法吧,你要給起始點!!
01/06 16:14, 5F

01/06 16:15, , 6F
初值指的是參數初值吧..你可以問一下老師在告訴我吧!
01/06 16:15, 6F

01/06 16:17, , 7F
恩,nlminb的目的是利用該組資料去求的MLE
01/06 16:17, 7F
文章代碼(AID): #17VwVe0k (Statistics)
討論串 (同標題文章)
文章代碼(AID): #17VwVe0k (Statistics)