[R] Fitting a curve to weibull distribution in R using nls

Aditya Bhatia aditya.bhatia52 at gmail.com
Tue Oct 13 23:42:25 CEST 2015


I am trying to fit this data to a weibull distribution:

My y variable is:1  1  1  4  7 20  7 14 19 15 18  3  4  1  3  1  1  1
1  1  1  1  1  1

and x variable is:1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18
19 20 21 22 23 24

The plot looks like this:http://i.stack.imgur.com/FrIKo.png and I want
to fit a weibull curve to it. I am using the nls function in R like
this: nls(y ~ ((a/b) * ((x/b)^(a-1)) * exp(- (x/b)^a)))

This function always throws up an error saying: Error in
numericDeriv(form[[3L]], names(ind), env) :
 Missing value or an infinity produced when evaluating the model
In addition: Warning message:
In nls(y ~ ((a/b) * ((x/b)^(a - 1)) * exp(-(x/b)^a))) :
  No starting values specified for some parameters.
Initializing ‘a’, ‘b’ to '1.'.
Consider specifying 'start' or using a selfStart model

So first I tried different starting values without any success. I
cannot understand how to make a "good" guess at the starting values.
Then I went with the SSweibull(x, Asym, Drop, lrc, pwr) function which
is a selfStart function. Now the SSWeibull function expects values for
Asym,Drop,lrc and pwr and I don't have any clue as to what those
values might be.

I would appreciate if someone could help me figure out how to proceed.

Background of the data: I have taken some data from bugzilla and my
"y" variable is number of bugs reported in a particular month and "x"
variable is the month number after release.



More information about the R-help mailing list