数学建模社区-数学中国

标题: 求高手指点写 ell,optim code [打印本页]

作者: HongYu_柳    时间: 2012-12-10 04:20
标题: 求高手指点写 ell,optim code
mu<-0
% g0 Y9 k8 X: l/ D/ a7 O: W sigma2<-1
3 y' l0 O- V& C2 T$ u( ~; w# x, M  n<-20" `- h, u  X7 d% `7 J9 k5 X
  L<--0.25
# y5 {. O) t* W* q' z  y<-rnorm(n,mu,sqrt(sigma2))
) V! R. D' ^/ V, t, A: M; b  k; F  x<-y
) {5 z3 F* C1 d  c<-(y<=L)
8 r. E+ m0 Z! H5 o. n x[c]<-L
- O) z# c  M: e( u x) @) H  I( S7 m5 s# ~
Q1:写一个ell function compute log-likelihood od x.
/ p+ `# B) G2 ~- I  ?" Q" I& P* kQ2用 R optim来maximize这个likelihood.( u2 l* v+ s8 h$ N8 y; V
4 X5 o' {1 f; t! c
我现在写了一个ell的试子了,但是怎么也求不出最大值。4 K: J$ M9 q+ E& r
theta<-c(mu,sigma2)$ c, H" `8 O/ j/ `0 ^
ell<-function(theta,x,L=-0.25){
  O5 e% B5 e7 v* f6 v$ k stopifnot(is.vector(theta),length(theta)==2)
' `5 c0 u) I% h' r6 P if(theta[2]<=0)
' D' ?. @* t: ?  g return(NA)
8 \& a6 @, S' ^# `! y$ l else(c<-(x==L)). g  w" Z; G9 I/ F! P) a
sum(dnorm(x[c],theta[1],sqrt(theta[2]),log=TRUE))
% j9 i! E( y6 s8 K sum2(dnorm(x[!c],theta[1],sqrt(theta[2]),lop=true))}# ]  m- C- s5 t3 H8 r

( _7 G  y+ o; j3 w9 W) q我的求最大值试子是init<-c(mu=0,sigma2=1)4 X1 K* N% A% b4 p, k. o1 x

( C8 ~! ]  o5 h0 D$ {9 D: dopt<-optim(par=init,fn=ell,method="L-BFGS-B",
5 E9 v5 l! o! ]3 Z1 |. z0 N  lower=c(-Inf,0.01),
( w( ~# o; v% e2 q8 M1 V! P  upper=c(Inf,Inf),hessian=TRUE," M, q9 V# \3 m
  control=list(fnscale=-1))
" h6 V7 u1 U2 \' ^' z9 n谁能看看哪里错了。谢谢了。
作者: zxtttxxqm    时间: 2012-12-11 14:05
这个的话你去问版主吧




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5