数学建模社区-数学中国
标题:
求高手指点写 ell,optim code
[打印本页]
作者:
HongYu_柳
时间:
2012-12-10 04:20
标题:
求高手指点写 ell,optim code
mu<-0
+ q5 B, |) c9 l7 b& C
sigma2<-1
7 \0 [7 C) w* V: Q5 c) D
n<-20
" l1 p4 j& D, V6 ?- Z0 p9 N2 r2 I
L<--0.25
0 E, f7 ^! }) I' Q/ e6 p( w
y<-rnorm(n,mu,sqrt(sigma2))
) s3 A( q8 r( j, T8 T" u! W
x<-y
$ R4 A6 a4 H2 j4 B
c<-(y<=L)
8 b8 ]0 j4 H: d
x[c]<-L
9 _( L1 W, N! c' Z: k
x
8 _' _% ^6 h. k
Q1:写一个ell function compute log-likelihood od x.
( q+ Y* _! V# Q6 F. D) O5 A$ ?
Q2用 R optim来maximize这个likelihood.
5 I1 s8 N3 M+ P% f& H# k- D. }
% [6 a9 d+ ^/ C* f* i" `3 o
我现在写了一个ell的试子了,但是怎么也求不出最大值。
' n4 V5 H$ v6 J" h
theta<-c(mu,sigma2)
, R/ ^, u" @ r: k1 u
ell<-function(theta,x,L=-0.25){
" ~% Z! K. q. e8 `0 R1 y; b$ x: ^; ^
stopifnot(is.vector(theta),length(theta)==2)
6 s: l; z" H d# C* w6 K
if(theta[2]<=0)
4 s8 D7 k; W2 g1 z+ E
return(NA)
# @- c( B8 T& i) `, s
else(c<-(x==L))
* |* K; X; c P8 \2 @" O: m
sum(dnorm(x[c],theta[1],sqrt(theta[2]),log=TRUE))
5 f7 {- ^- ]# X8 P4 U1 m
sum2(dnorm(x[!c],theta[1],sqrt(theta[2]),lop=true))}
( ?" N a% M7 ]9 L" d
- I6 k) N3 B4 r4 ]% R: x
我的求最大值试子是init<-c(mu=0,sigma2=1)
) n! _+ z% ]2 ^; t- D1 e
& l3 w4 \" ?$ T! I4 V
opt<-optim(par=init,fn=ell,method="L-BFGS-B",
' u- n9 h- V+ E) F
lower=c(-Inf,0.01),
7 n" n7 S6 G) a7 I' w7 P
upper=c(Inf,Inf),hessian=TRUE,
2 ?) L. S8 i" y. g
control=list(fnscale=-1))
$ w0 I% I) p* c
谁能看看哪里错了。谢谢了。
作者:
zxtttxxqm
时间:
2012-12-11 14:05
这个的话你去问版主吧
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5