数学建模社区-数学中国
标题:
求高手指点写 ell,optim code
[打印本页]
作者:
HongYu_柳
时间:
2012-12-10 04:20
标题:
求高手指点写 ell,optim code
mu<-0
# i! N/ o( G4 y' v2 d" b7 }1 v, Q
sigma2<-1
* y! B3 w9 [" ?
n<-20
, I8 v& A$ ?( e! ]" t0 r
L<--0.25
/ Y3 t c# E" V: | t3 S+ a0 \
y<-rnorm(n,mu,sqrt(sigma2))
) ~' S7 _ O! \
x<-y
1 M' O8 e: l1 h
c<-(y<=L)
5 c' D: _6 u2 m/ `3 P; a
x[c]<-L
% E k9 k8 i* X2 ], I( H9 j
x
, M% ]1 z3 B/ U7 E9 P8 F6 k. ~6 \
Q1:写一个ell function compute log-likelihood od x.
1 E, M* ]) Q8 _' E/ s5 H/ y% X
Q2用 R optim来maximize这个likelihood.
% U% m0 N% \( ]; J) L/ @( n: @
% h8 @' V7 W; N9 q
我现在写了一个ell的试子了,但是怎么也求不出最大值。
- ~: U& v; {- \" m2 S
theta<-c(mu,sigma2)
. G$ U: o! R; K1 L, m L
ell<-function(theta,x,L=-0.25){
& G7 R; X6 u' `: P
stopifnot(is.vector(theta),length(theta)==2)
5 j. P, S, Z& I
if(theta[2]<=0)
) K! X' G# \5 ]$ B# } @
return(NA)
6 k5 J+ ]% b, R, N) N
else(c<-(x==L))
9 w) j3 C5 g" |. x$ p0 O& i
sum(dnorm(x[c],theta[1],sqrt(theta[2]),log=TRUE))
' v. o1 P- V# X. ?% k( |
sum2(dnorm(x[!c],theta[1],sqrt(theta[2]),lop=true))}
% {' o6 S; E8 v- I5 S2 @# W
. K* i, w u" M- v7 ]
我的求最大值试子是init<-c(mu=0,sigma2=1)
6 `0 W( e# ^8 Y! X- e# I* P S
8 z3 ^4 `( r/ J+ L' F3 j" Z0 z7 N
opt<-optim(par=init,fn=ell,method="L-BFGS-B",
P0 R( Q4 V/ ^
lower=c(-Inf,0.01),
. [" u1 X/ U. F$ N. C0 d) h% j
upper=c(Inf,Inf),hessian=TRUE,
* s9 Z. C, w6 w0 a k5 a) m
control=list(fnscale=-1))
M7 w) q4 w% |# t- d
谁能看看哪里错了。谢谢了。
作者:
zxtttxxqm
时间:
2012-12-11 14:05
这个的话你去问版主吧
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5