Maximum likelihood estimation of the 2-parameter Inverse Weibull distribution. No observations should be censored.
1 2 3 4 5 6 7 8 9 10
Parameter link functions applied to the
Optional initial values for the
Initializing method internally implemented. Currently only the values 1 and 2 are allowed and NO observations should be censored.
Numeric or character vector. The position(s) of the name(s) of
the parameters/linear predictors to be
modeled as intercept–only. Default is
The Weibull distribution and the Inverse Weibull distributions are related as follows:
Let X be a Weibull random variable with paramaters scale =b and shape =a. Then, the random variable Y = 1/X has the Inverse Weibull density with parameters scale = 1/b and shape = a.
The Inverse weibull density for a response Y is given by
f(y;a,b) = a (b^a) y^(-a-1) * exp(-(y/b)^(-a))
for a > 0, b > 0, y > 0. The mean, that is returned as the fitted values, (if a > 1) and the variance (if a >2) are
E[Y] = b * Γ(1 - 1/a), Var[Y] = (b^2) * [Γ(1 - 2/a) - (Γ(1 - 1/a))^2].
Fisher scoring is used to estimate both parameters.
Although the expected information matrices used are valid in all regions of
the parameter space, the regularity conditions for maximum likelihood
estimation (MLE) are satisfied only if a>2
(according to Kleiber and Kotz (2003)). If this is violated then a warning
message is issued. To enforce a > 2, it has been set by default
lshape = logofflink(offset = 2).
As a result of the math relation between the Weibull and the Inverse Weibull distributions, regularity conditions for inference for the latter, are the following: if a ≤ 1 then the MLE's are not consisten, if 1 < a < 2 then MLEs exist but are not assymptotically normal, if a = 2, the MLE's exist and are normal and asymptotically efficient but the convergence rate is slower compared when a > 2. If a > 2, then the MLE's have classical asymptotic properties.
An object of class
The object is used to model special models such as
zero can be a numeric or a character
vector specifying the position of the names
(partially or not) of the linear predictor modeled as intercept only.
In this family function these names are
Numeric values can be entered as usual.
for further details.
For simplicity, the second choice is recommended.
If the shape parameter is less than two (i.e. less than
exp(0.69315)), then misleading inference may
result ! (see above the regularity condition for the 'variance'),
e.g., in the
vcov of the object.
However, the larger the shape parameter is (for instance, greater than
exp(2.5), plus reasonable scale), the more unstable the algorithm
may become. The reason is that inverse weibull densities under such
conditions are highly peaked and left skewed. Thus, density values are
too close to zero (or values represented as zero in computer arithmetic).
By default, the shape paramater is modeled as intercept only.
Successful convergence depends on having reasonably good initial
values. If the initial values chosen by this function are not good,
make use the two initial value arguments,
This VGAM family function currently handles multiple responses however, it does not handle censored data. This feature will be considered in a later version of the package.
The Inverse Weibull distribution, which is that of Y = 1/X where X has the Weibull density, is known as the log-Gompertz distribution.
Victor Miranda and T. W. Yee.
Harper, W. V., Eschenbach, T. G. and James, T. R. (2011) Concerns about Maximum Likelihood Estimation for the Three-Parameter Weibull Distribution: Case Study of Statistical Software. The American Statistician, 65(1), 44-54.
Kleiber, C. and Kotz, S. (2003) Statistical Size Distributions in Economics and Actuarial Sciences, Hoboken, NJ, USA: Wiley-Interscience.
Johnson, N. L. and Kotz, S. and Balakrishnan, N. (1994) Continuous Univariate Distributions, 2nd edition, Volume 1, New York: Wiley.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
#-----------------------------------------------------------------------# # Here, covariate 'x2' affects the scale parameter. # See how data is generated. set.seed(102) wdata <- data.frame(x2 = runif(nn <- 1000)) # Complete data wdata <- transform(wdata, y1 = rinvweibull(nn, scale = exp(2.5 - (0.5) * x2), shape = exp(1.5) ), y2 = rinvweibull(nn, scale = exp(1.5 + x2), shape = exp(1.25) )) #------------------------------------------------------------------------# # Fitting the Inverse Weibull distribution accordingly. # Note that multiple responses are handled. fit1 <- vglm(cbind(y1, y2) ~ x2, invweibull2mr(zero = "shape", # OPTIONAL INITIAL VALUE. Be carefull here when # entered initial value. Sensitive distribution ishape = exp(1.2), lss = TRUE), data = wdata, trace = TRUE, crit = "log") coef(fit1, matrix = TRUE) vcov(fit1) summary(fit1) ### A second option (producing same results!!) might be to use the ### constraints argument in the 'vglm()' call. Note that 'x2' affects ### the scale parameter only. fit2 <- vglm(y1 ~ x2, invweibull2mr(zero = NULL), data = wdata, trace = TRUE, constraints = list(x2 = rbind(1, 0))) coef(fit2, matrix = TRUE) vcov(fit2) summary(fit2) constraints(fit2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.