数学建模社区-数学中国
标题:
求高手指点写 ell,optim code
[打印本页]
作者:
HongYu_柳
时间:
2012-12-10 04:20
标题:
求高手指点写 ell,optim code
mu<-0
0 M: n/ ?: y3 s9 B5 ~6 K
sigma2<-1
( }3 X$ E* H% V! t7 L! |- V
n<-20
/ `: j7 V! f' s6 k. ^' K
L<--0.25
) U, k+ g# n/ e) N
y<-rnorm(n,mu,sqrt(sigma2))
8 K( n+ r& C k! O9 c2 Y: A; K
x<-y
+ h" t7 o' q0 s
c<-(y<=L)
: h9 C2 X$ B8 a* E, y, S. B
x[c]<-L
+ \4 {* P0 a- ~; u1 j, ^/ _5 ^
x
; @$ @# R) ~9 l1 w$ k; s
Q1:写一个ell function compute log-likelihood od x.
) B" {& {5 K6 L/ `( X
Q2用 R optim来maximize这个likelihood.
% n0 e0 e. l: M$ C% l# ]7 X# q. L
+ W- z7 y. L' m, |4 y8 r/ o
我现在写了一个ell的试子了,但是怎么也求不出最大值。
( S& D6 P4 R' q& X9 Q+ u- X
theta<-c(mu,sigma2)
5 P- z) v; J/ Y% G
ell<-function(theta,x,L=-0.25){
+ b( P/ t; j6 W+ d
stopifnot(is.vector(theta),length(theta)==2)
( L* f& B; J( h4 X
if(theta[2]<=0)
6 i/ V s$ x5 H3 P2 J
return(NA)
6 |) u. i, R* A" H$ t
else(c<-(x==L))
3 T# P$ {- i+ D; U( K* R
sum(dnorm(x[c],theta[1],sqrt(theta[2]),log=TRUE))
& h3 V ?( r& H/ t& T
sum2(dnorm(x[!c],theta[1],sqrt(theta[2]),lop=true))}
! n6 @% ?; v. G9 q$ e3 j
3 d- T) i6 r5 `3 I. L
我的求最大值试子是init<-c(mu=0,sigma2=1)
; z5 z, s7 Q) D& s3 ?& [0 q
# B0 h4 N$ }9 P5 K( k4 {9 W& y' S
opt<-optim(par=init,fn=ell,method="L-BFGS-B",
, q& K- D F. c
lower=c(-Inf,0.01),
6 V2 B) Y/ G- _# x1 m
upper=c(Inf,Inf),hessian=TRUE,
+ A( |0 ]) T9 q: @' z P+ _( W
control=list(fnscale=-1))
0 ` ]( M8 w$ s# f& e0 x
谁能看看哪里错了。谢谢了。
作者:
zxtttxxqm
时间:
2012-12-11 14:05
这个的话你去问版主吧
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5