thanks Ravi .... yes , we were getiing the correct results but we thought
there should be a way to avoid those NaN values ... and now we are done
the if condition was written wrongly there ... instead of that if we do

 p > 0 && q > 0 && r > 0 && p < 1 && q < 1 && r < 1

its perfectly fine .. but is there a smart way to write this condition ?

On Fri, Oct 1, 2010 at 12:30 AM, Ravi Varadhan <rvaradhan@jhmi.edu> wrote:

> I forgot to mention:
>
> You actually got correct results with using optim and `CG'.  The warning
> messages were just telling you that there were some log(negative number)
> operations during the iterative process.
>
> Ravi.
>
> ____________________________________________________________________
>
> Ravi Varadhan, Ph.D.
> Assistant Professor,
> Division of Geriatric Medicine and Gerontology
> School of Medicine
> Johns Hopkins University
>
> Ph. (410) 502-2619
> email: rvaradhan@jhmi.edu
>
>
> ----- Original Message -----
> From: arindam fadikar <arindam.fadikar@gmail.com>
> Date: Thursday, September 30, 2010 2:17 pm
> Subject: [R] how to avoid NaN in optim()
> To: r-help@r-project.org
>
>
> > hi ,
> >
> >  lik <- function(nO, nA, nB, nAB){
> >
> >  loglik <- function(par)
> >    {
> >        p=par[1]
> >        q=par[2]
> >        r <- 1 - p - q
> >
> >        if (c(p,q,r) > rep(0,3) && c(p,q,r) < rep(1,3) )
> >
> >          {
> >            -(2 * nO * log (r) + nA * log (p^2 + 2 * p * r)
> >              + nB * log (q^2 + 2 * q * r)
> >              + nAB * (log(2) +log(p) +log(q)))
> >         }
> >        else
> >          NA
> >    }
> >
> >  loglik
> >
> >  }
> >
> >
> >  i want to maximize this likelihood function over the range (0,0,0) to
> >  (1,1,1). so i tried
> >
> >  optim ( c(0.3,0.3), lik ( 176,182 , 60 ,17) , method = "CG")
> >
> >  and obtained the following :
> >
> >  > optim(c(0.3,0.3), fn, method="CG")
> >  $par
> >  [1] 0.26444187 0.09316946
> >
> >  $value
> >  [1] 492.5353
> >
> >  $counts
> >  function gradient
> >       130       19
> >
> >  $convergence
> >  [1] 0
> >
> >  $message
> >  NULL
> >
> >  Warning messages:
> >  1: In log(q^2 + 2 * q * r) : NaNs produced
> >  2: In log(q) : NaNs produced
> >  3: In log(q^2 + 2 * q * r) : NaNs produced
> >  4: In log(q) : NaNs produced
> >
> >
> >  please help ...
> >
> >
> >  --
> >  Arindam Fadikar
> >  M.Stat
> >  Indian Statistical Institute.
> >  New Delhi, India
> >
> >       [[alternative HTML version deleted]]
> >
> >  ______________________________________________
> >  R-help@r-project.org mailing list
> >
> >  PLEASE do read the posting guide
> >  and provide commented, minimal, self-contained, reproducible code.
>



-- 
Arindam Fadikar
M.Stat
Indian Statistical Institute.
New Delhi, India

	[[alternative HTML version deleted]]

