数学建模社区-数学中国
标题:
求高手指点写 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* k
Q2用 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: d
opt<-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