[R] L-BFGS-B needs finite values of 'fn'

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Jun 24 13:18:10 CEST 2008


On Tue, 24 Jun 2008, Jinsong Zhao wrote:

> Another question related with the same code:
>
>> r <- c(3,4,4,3,5,4,5,9,8,11,12,13)
>> n <- rep(15,12)
>> x <- c(0, 1.1, 1.3, 2.0, 2.2, 2.8, 3.7, 3.9, 4.4, 4.8, 5.9, 6.8)
>> x <- log10(x)
>> fr <- function(c, alpha, beta) {
>>   P <- c + (1-c) * pnorm(alpha + beta * x)
>>   P <- pmax(pmin(P,1),0)
>>   -(sum(log(choose(n,r))) + sum(r * log(P)) + sum((n -r)* log(1-P)))
>>  }
>> fit <- mle((fr), start = list(c =0.2, alpha = 0, beta =0.1), method =
>> "BFGS")
>>

0 * (-Inf) = NaN.
pnorm(0 + 0*log10(0)) = NaN

See my previous answer.

>
> The above code could terminate normally. However, if ``beta'' set to 0, then 
> the following error message will appear:
>
> Error in optim(start, f, method = method, hessian = TRUE, ...) :
>  initial value in 'vmmin' is not finite
>
> I have learn that "drc" package could deal with this situation, it set the 
> first observation to control, however, I don't find the way to implement it 
> in the source code, for the code is too complex to me.
>
> Any suggestion? Thanks in advance!

You could always try out your own code piece by piece.

> Jinsong
>
> ______________________________________________
> R-help at r-project.org 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.
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list