I noticed that fitdist is giving wildly different parameter outputs based on the start value I give it.
For a reproducible example, take:
x <- c(2.1e6, 6.1e6, 1.3e7, 1.6e7, 2.0e7, 2.4e7, 2.8e7, 5.9e7, 7.2e7, 2.3e8)
fitdistrplus::fitdist(x, "llogis", method="mle", start = NULL)
fitdistrplus::fitdist(x, "llogis", method="mle", start = list(shape = 1.1, scale = 2e7)
The first returns a shape parameter of 0.1079 and a scale parameter of 2.288e7, while the second returns a shape parameter of 1.423 and a scale parameter of 2.274e7. These are very different, since a loglogistic distribution with shape parameter <1 does not have a mean, while it does if the shape parameter is >1.
I noticed if I adjust the scale of x before fitting the distribution, then I get the same results regardless of providing a start list:
y <- x/1e6
fitdistrplus::fitdist(y, "llogis", method="mle", start = NULL)
fitdistrplus::fitdist(y, "llogis", method="mle", start = list(shape = 1.1, scale = 20))
The former returns shape = 1.424 and scale = 22.72, and the second returns shape = 1.424 and scale = 22.736.
So it appears that the first distribution fit to x is not in fact the best fit, since the fitted parameters do not match the rest of the outputs. It seems when using fitdist, one needs to either provide appropriate start parameters or appropriately scale the data first.
Question 1: How does one choose appropriate starting parameters, or how does one choose the appropriate amount by which to scale the data?
Question 2: Without fitting multiple times at different scales or with different choices of start parameters, how can one know whether the first case has occurred where the fit is not correct? I did notice the Std Errors were "NaN", but they are sometimes "NaN" even when the parameters produced are "correct" (e.g., using a start list of shape = 0.1 and scale = 1e6).