Dear all,
   
  I would need to maximize a self-defined 'target' function(see below) with 
respect to theta, where v follows a log-normal distribution with mean 'mu(x)' 
and a constant variance. For each v drawn from its distribution, one maximized 
value and optimal theta are produced. I'd like to do this repeatedly and store 
the maximized value and corresponding theta. I wrote the following code that 
can produce a result. But the problem is that the result doesn't seem to be the 
optimized one because if I arbitrarily choose theta=c(4,27), I will get much 
bigger value than those simulated ones. I am not sure where is wrong. Could 
anyone help me with this?  Thank you in advance! Here is the code:
   
  rdt<-matrix(0,10,3)
  for (i in 1:10){
  #Define the target function
  target<-function(theta){
d0=theta[1]
T0=theta[2] 
  mu<-function(x,d=d0,ta=23.86,ti=11.067,ppt=1.321,a=-12.31, S=5.62, L=3.83,
b=c(0.338,-0.0055,0.113,-0.00466,-0.008,-0.205,-0.044,0.266,1.719,-0.169)){
return(a+sum(b*c(x,x^2,d,d^2,S,L,ta,ti,ppt,ti*ppt)))} 
  v<-function(x,d=d0){
return(rlnorm(1,mean=mu(x),sd=0.835^0.5))}
  p<-function(x,d=d0){
if(8.179+0.00023*(5.29+0.16*x-0.21*d)^5>45){return(45)}
return(8.179+0.00023*(5.29+0.16*x-0.21*d)^5)
}
  Y3<-function(x,d=d0){
return(p(x,d)*v(x,d))
}
  r<-Y3(T0)
return(r)
  }
  result<-optim(c(2,10),target,lower=c(0.1,0.5),upper=c(66,50),
method="L-BFGS-B",control=list(maxit=100000,fnscale=-1))
rdt[i,1]<-result$value
rdt[i,2:3]<-result$par }
  
 

 
---------------------------------


        [[alternative HTML version deleted]]

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to