Grokbase Groups R r-help July 2003
Thanks Prof. B. Ripley and
Spencer Graves for your help.

According to the last message from
BR, perhaps I should use another
distribution or combination
of distributions to model my data,
which look like a beta(0.1,0.1)
but can have both 0 and 1. Any

(regarding the extra "1)" in my
original message, it was just a pasting


Mensaje citado por Prof Brian Ripley <>:
In this example shrinking by (1 - 2e-16) leads to a significant change in
the distribution: see my probability calculation. And you can't shrink by
much less. A beta(0.1, 0.1) is barely a continuous distribution.
On Fri, 4 Jul 2003, Spencer Graves wrote:

My standard work-around for the kind of problem you identified is to
shrink the numbers just a little towards 0.5. For example:
a <- rbeta(100,0.1,0.1)
fitdistr(x=a, "beta", start=list(shape1=0.1,shape2=0.1))
Error in optim(start, mylogfn, x = x, hessian = TRUE, ...) :
Function cannot be evaluated at initial parameters
r.a <- range(a)
c0 <- 0
c1 <- 1
if(r.a[1]==0)c0 <- min(a[a>0])
if(r.a[2]==1)c1 <- max(a[a<1])
c. <- c(c0, 1-c1)
if(any(c.>0))c. <- min(c.[c.>0])
[1] 2.509104e-14
fitdistr(x=0.5*c.[1] + (1-c.[1])*a, "beta",
shape1 shape2
0.08728921 0.10403875
(0.01044863) (0.01320188)
hope this helps. spencer graves

Prof Brian Ripley wrote:
rbeta(100,0.1,0.1) is generating samples which contain 1, an impossible
value for a beta and hence the sample has an infinite log-likelihood.
It is clearly documented on the help page that the range is 0 < x < 1.
However, that is not so surprising as P(X > 1-1e-16) is about 1% and
values will get rounded to one.

The same would happen for a value of 0.

Your code is syntactically incorrect, at least as received here.

On Fri, 4 Jul 2003, Agustin Lobo wrote:

I have the following problem:

I have a vector x of data (0<x<=1 ) with
a U-shaped histogram and try to fit a beta
distribution using fitdistr. In fact,
hist(rbeta(100,0.1,0.1)) looks a lot like
my data.

The equivalent to
the example in the manual
sometimes work:

a <- rbeta(100,0.1,0.1)
fitdistr(x=a, "beta", start=list(shape1=0.1,shape2=0.1))1)
shape1 shape2
0.09444627 0.12048753
(0.01120670) (0.01550129)

but sometimes does not:
a <- rbeta(100,0.1,0.1)
fitdistr(x=a, "beta", start=list(shape1=0.1,shape2=0.1))1)
Error in optim(start, mylogfn, x = x, hessian = TRUE, ...) :
Function cannot be evaluated at initial parameters

Unfortunately, my data fall in the second case

I've searched for any weird value that be present in the
cases in which fitdistr exits with the error message, but
could not find any.

Any help?
(please if anyone answers be sure to answer to my address as well,
I cannot subscribe to the list)



Dr. Agustin Lobo
Instituto de Ciencias de la Tierra (CSIC)
Lluis Sole Sabaris s/n
08028 Barcelona SPAIN
tel 34 93409 5410
fax 34 93411 0012
alobo at

R-help at mailing list
R-help at mailing list
Brian D. Ripley, ripley at
Professor of Applied Statistics,
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595

This mail sent through IMP:

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 5 of 6 | next ›
Discussion Overview
groupr-help @
postedJul 4, '03 at 4:16p
activeJul 6, '03 at 4:07p



site design / logo © 2017 Grokbase