作者chrisjon (恬静悠闲)
看板Statistics
标题[问题] R的MLE
时间Sat Jan 5 21:08:26 2008
我知道是用nlminb
打?nlminb之後,还是看不懂需要的参数到底是什麽东西
我这里书上有例子,可是还是不清楚 start是什麽值
=======================================================
x<-c(8组1.6xx~1.8xx)
y<-c(6~60的整数)
n<-c(56~60的整数)
fn<-function(p)
sum( -(y*(p[1]+p[2]*x) - n*log(1+exp(p[1]+p[2]*x))
+ log(choose(n,y))))
out<-nlm(fn,p=c(-50,20),hessian=true)
=======================================================
以下是我的老师写的weibull的 MLE
=======================================================
temp<-rweibull(12,2,3)
weib.lik<-function(para,x,r)
{
nn<-length(x)
ifelse(r>nn,rr<-nn,rr<-r)
x.sort<-sort(x)
x.rr<-x.sort[1:rr]
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)
}
weib.para.star<-function(x,r)
{
nn<-length(x)
ifelse(r>nn,rr<-nn,rr<-r)
x.sort<-sort(x)
x.rr<-x.sort[1:rr]
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)
}
para.star<-weib.para.star(temp,12)
weib.mle<-nlminb(star=para.star,weib.lik,lower=c(0,0),x=temp,r=12)
=======================================================
看不懂为什麽star=para.star,weib.lik放参数位置是什麽意思...~.~
请知道的人帮忙讲解一下好吗?
谢谢
--
要常玩BG
头脑才不会退化
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.25.135.23