数学建模社区-数学中国
标题:
求高手指点写 ell,optim code
[打印本页]
作者:
HongYu_柳
时间:
2012-12-10 04:20
标题:
求高手指点写 ell,optim code
mu<-0
; T+ P/ Y! J1 o
sigma2<-1
& S& G9 r! R/ J$ F$ U% k# W
n<-20
- Z+ T4 D5 \# F
L<--0.25
3 @9 K3 `. n- W& F
y<-rnorm(n,mu,sqrt(sigma2))
9 @0 F9 ^; f' q$ N
x<-y
, }, k$ `9 ]4 U B
c<-(y<=L)
% e" C0 t- a/ _" V) r, ~
x[c]<-L
& C% C$ ?; p) d
x
* i+ s, U8 Y" n4 d) X
Q1:写一个ell function compute log-likelihood od x.
3 \( V, I: y9 y9 f7 I+ d' Q
Q2用 R optim来maximize这个likelihood.
# D. J0 k: f% U ]- ]. Q
' u% r& |( n) p. ]6 G% m6 U" G
我现在写了一个ell的试子了,但是怎么也求不出最大值。
) B) S7 k9 U! |& X# w7 y
theta<-c(mu,sigma2)
" X( P2 e3 R) a" Z
ell<-function(theta,x,L=-0.25){
4 c$ K2 w L$ ~
stopifnot(is.vector(theta),length(theta)==2)
, c) m7 ]9 j9 y& i3 r2 W, n, d
if(theta[2]<=0)
m. N2 Y7 F" m/ ^) Z
return(NA)
+ _( s( \7 s4 O1 ?( W p3 b
else(c<-(x==L))
: y8 F0 Q' a# K7 |* ?" |9 n& L. P7 {
sum(dnorm(x[c],theta[1],sqrt(theta[2]),log=TRUE))
0 s& P5 q( o5 f* U. g, m% V ]
sum2(dnorm(x[!c],theta[1],sqrt(theta[2]),lop=true))}
3 p5 j! N2 m" O3 A( ~. L* v
7 g8 W3 h; L% ]6 j
我的求最大值试子是init<-c(mu=0,sigma2=1)
% t; g U8 P) u) X) I
) |, a- e: W3 i( c* ]
opt<-optim(par=init,fn=ell,method="L-BFGS-B",
3 @$ t. D* @- a2 `/ W- N/ e
lower=c(-Inf,0.01),
6 J) L- e3 [: r, C# [5 v
upper=c(Inf,Inf),hessian=TRUE,
5 s; e u1 ^+ u( v9 {6 J. m! s* \% \
control=list(fnscale=-1))
; U$ h( X7 Z4 L1 `0 a d4 C
谁能看看哪里错了。谢谢了。
作者:
zxtttxxqm
时间:
2012-12-11 14:05
这个的话你去问版主吧
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5