Log-gamma Distribution Family Function
lgammaff.RdEstimation of the parameter of the standard and nonstandard log-gamma distribution.
Usage
lgamma1(lshape = "loglink", ishape = NULL)
lgamma3(llocation = "identitylink", lscale = "loglink",
lshape = "loglink", ilocation = NULL, iscale = NULL, ishape = 1,
zero = c("scale", "shape"))Arguments
- llocation, lscale
Parameter link function applied to the location parameter \(a\) and the positive scale parameter \(b\). See
Linksfor more choices.- lshape
Parameter link function applied to the positive shape parameter \(k\). See
Linksfor more choices.- ishape
Initial value for \(k\). If given, it must be positive. If failure to converge occurs, try some other value. The default means an initial value is determined internally.
- ilocation, iscale
Initial value for \(a\) and \(b\). The defaults mean an initial value is determined internally for each.
- zero
An integer-valued vector specifying which linear/additive predictors are modelled as intercepts only. The values must be from the set {1,2,3}. The default value means none are modelled as intercept-only terms. See
CommonVGAMffArgumentsfor more information.
Details
The probability density function of the standard log-gamma
distribution is given by
$$f(y;k)=\exp[ky - \exp(y)] / \Gamma(k),$$
for parameter \(k>0\) and all real \(y\).
The mean of \(Y\) is digamma(k) (returned as
the fitted values) and its variance is trigamma(k).
For the non-standard log-gamma distribution, one replaces \(y\)
by \((y-a)/b\), where \(a\) is the location parameter
and \(b\) is the positive scale parameter.
Then the density function is
$$f(y)=\exp[k(y-a)/b - \exp((y-a)/b)] / (b \, \Gamma(k)).$$
The mean and variance of \(Y\) are a + b*digamma(k)
(returned as
the fitted values) and b^2 * trigamma(k), respectively.
Value
An object of class "vglmff"
(see vglmff-class).
The object is used by modelling functions
such as vglm,
and vgam.
References
Kotz, S. and Nadarajah, S. (2000). Extreme Value Distributions: Theory and Applications, pages 48–49, London: Imperial College Press.
Johnson, N. L. and Kotz, S. and Balakrishnan, N. (1995). Continuous Univariate Distributions, 2nd edition, Volume 2, p.89, New York: Wiley.
Note
The standard log-gamma distribution can be viewed as a generalization of the standard type 1 extreme value density: when \(k = 1\) the distribution of \(-Y\) is the standard type 1 extreme value distribution.
The standard log-gamma distribution is fitted with lgamma1
and the non-standard (3-parameter) log-gamma distribution is
fitted with lgamma3.
Examples
ldata <- data.frame(y = rlgamma(100, shape = exp(1)))
fit <- vglm(y ~ 1, lgamma1, ldata, trace = TRUE, crit = "coef")
#> Iteration 1: coefficients = 0.89067759
#> Iteration 2: coefficients = 0.92236538
#> Iteration 3: coefficients = 0.9224699
#> Iteration 4: coefficients = 0.9224699
summary(fit)
#>
#> Call:
#> vglm(formula = y ~ 1, family = lgamma1, data = ldata, trace = TRUE,
#> crit = "coef")
#>
#> Coefficients:
#> Estimate Std. Error z value Pr(>|z|)
#> (Intercept) 0.92247 0.05698 16.19 <2e-16 ***
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> Name of linear predictor: loglink(shape)
#>
#> Log-likelihood: -113.6391 on 99 degrees of freedom
#>
#> Number of Fisher scoring iterations: 4
#>
coef(fit, matrix = TRUE)
#> loglink(shape)
#> (Intercept) 0.9224699
Coef(fit)
#> shape
#> 2.515496
ldata <- data.frame(x2 = runif(nn <- 5000)) # Another example
ldata <- transform(ldata, loc = -1 + 2 * x2, Scale = exp(1))
ldata <- transform(ldata, y = rlgamma(nn, loc, sc = Scale, sh = exp(0)))
fit2 <- vglm(y ~ x2, lgamma3, data = ldata, trace = TRUE, crit = "c")
#> Iteration 1: coefficients =
#> -1.45936415, 1.16212337, 0.19172302, 1.72745129
#> Iteration 2: coefficients =
#> -1.267101646, 1.056979534, 0.082088825, 2.049779064
#> Iteration 3: coefficients =
#> -1.059054370, 1.006670755, 0.011251028, 2.076384759
#> Iteration 4: coefficients =
#> -1.0422567728, 1.0005824994, 0.0027422466, 2.0815295492
#> Iteration 5: coefficients =
#> -1.0401193218, 1.0000875843, 0.0019974207, 2.0821083940
#> Iteration 6: coefficients =
#> -1.0399548089, 1.0000525843, 0.0019432071, 2.0821525944
#> Iteration 7: coefficients =
#> -1.0399429064, 1.0000500765, 0.0019393177, 2.0821556926
#> Iteration 8: coefficients =
#> -1.0399420578, 1.0000498977, 0.0019390402, 2.0821559151
#> Iteration 9: coefficients =
#> -1.0399419972, 1.0000498849, 0.0019390204, 2.0821559309
#> Iteration 10: coefficients =
#> -1.039941993, 1.000049884, 0.001939019, 2.082155932
#> Iteration 11: coefficients =
#> -1.0399419926, 1.0000498839, 0.0019390189, 2.0821559322
coef(fit2, matrix = TRUE)
#> location loglink(scale) loglink(shape)
#> (Intercept) -1.039942 1.00005 0.001939019
#> x2 2.082156 0.00000 0.000000000