数学建模社区-数学中国
标题:
求高手指点写 ell,optim code
[打印本页]
作者:
HongYu_柳
时间:
2012-12-10 04:20
标题:
求高手指点写 ell,optim code
mu<-0
, `$ e, i; e. ?! Q
sigma2<-1
0 H/ X1 h) v0 R. U
n<-20
- T3 h" }1 K/ Y" W U) `
L<--0.25
6 q. G4 K! u( I, ^% O6 y
y<-rnorm(n,mu,sqrt(sigma2))
- H; x/ P7 n- A9 g; C. K" _& L' h' t
x<-y
/ `- N7 N4 [) J/ ]6 I2 J* I$ g3 ]
c<-(y<=L)
# V* t: A u3 l+ V I3 K
x[c]<-L
# w( `- R5 w# E% ~0 H& f
x
) v/ v0 i6 G* o+ f, c
Q1:写一个ell function compute log-likelihood od x.
0 B4 w+ o7 m3 c ^
Q2用 R optim来maximize这个likelihood.
. z& K7 z# e7 |( D+ o: S. X4 Z
^' f2 O% j+ @( C
我现在写了一个ell的试子了,但是怎么也求不出最大值。
) E, v( V8 R, q: ]& f* `) V6 x# V3 A
theta<-c(mu,sigma2)
6 a6 o) z `3 w
ell<-function(theta,x,L=-0.25){
4 J0 I+ f% h: E8 @" Z1 I' L* F2 v
stopifnot(is.vector(theta),length(theta)==2)
3 k: R/ a+ x8 x) C, F, a: i
if(theta[2]<=0)
" Y Q( e8 j7 a' |, i
return(NA)
* ]) T$ @: K( S, { D. r7 j# q5 q
else(c<-(x==L))
9 D. Q% q$ N" I- @+ X
sum(dnorm(x[c],theta[1],sqrt(theta[2]),log=TRUE))
7 E8 ?8 D* ]) R# U4 F5 s* `
sum2(dnorm(x[!c],theta[1],sqrt(theta[2]),lop=true))}
6 K/ \( s- E7 X, H4 S' v# ~
( b4 j. w& M2 \* I3 z
我的求最大值试子是init<-c(mu=0,sigma2=1)
) z! A3 x! }/ {' F7 I
& b9 I# C) D! F) H1 q0 [
opt<-optim(par=init,fn=ell,method="L-BFGS-B",
3 s8 g' B0 d' \, O
lower=c(-Inf,0.01),
" c1 X, m6 N) A( m: D' W- R
upper=c(Inf,Inf),hessian=TRUE,
8 u. Q* e* T1 b9 s9 g: y
control=list(fnscale=-1))
% H) M4 {! U C m; L
谁能看看哪里错了。谢谢了。
作者:
zxtttxxqm
时间:
2012-12-11 14:05
这个的话你去问版主吧
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5