这是我的程序,
eta<-0.01
sigma<-0.02
mu<-0.2
lamda<-300
n<-15
logl<-function(params){#eta,sigma,mu
f<--n/2*log(2*pi)-n*log(params[2])-n/2*log(params[1]+lamda)-
y^2/(2*params[2]^2*(params[1]+lamda))+lamda*params[3]*y/(params[2]^2*(params[1]+lamda))-
params[3]^2/(2*params[2]^2*(params[1]+lamda))*lamda^2
return(-f)
}
y<-seq(0,by=0,length=n)
for (i in 1:n) {
y<-rnorm(1,mu*lamda,sigma*sqrt(eta+lamda))
}
geyser.res<-nlminb(c(0.0001,0.0001,0.0001),logl,hessian=TURE,
lower=c(1e-20,1e-10,1e-10),
upper=c(Inf,Inf,Inf))
虽然这条也可以运行,但是eta总是估不出来,运行的话会触碰到它的下界,1e-20,然后就以1e-20
作为结果。但是Mu和sigma可以估出来


雷达卡





京公网安备 11010802022788号







