| fitdistr.grouped-class {sn} | R Documentation |
Methods for objects of class created by fitdistr.grouped
Description
A successful call to function fitdistr.grouped creates
an object of class, also named fitdistr.grouped, for which a set
of methods exist.
The structure of an object of this class is described in section
‘Object components’.
Usage
## S3 method for class 'fitdistr.grouped'
logLik(object, ...)
## S3 method for class 'fitdistr.grouped'
coef(object, ...)
## S3 method for class 'fitdistr.grouped'
vcov(object, ...)
## S3 method for class 'fitdistr.grouped'
print(x, ...)
## S3 method for class 'fitdistr.grouped'
summary(object, cor=FALSE, ...)
## S3 method for class 'fitdistr.grouped'
fitted(object, full=FALSE, ...)
Arguments
x, object |
an object of class |
cor |
logical (default= |
full |
logical (default= |
... |
further arguments passed to or from other methods. |
Object components
Components of an object of class fitdistr.grouped:
callthe matched call
familythe selected
familyof distributionslogLthe achieved maximum log-likelihood
parama vector of estimated parameters
vcovthe approximate variance-covariance matrix of the estimates
inputa list with the input quantities and some derived ones
opta list as returned by
optim
Author(s)
Adelchi Azzalini
References
Possolo, A., Merkatas, C. and Bodnar, O. (2019). Asymmetrical uncertainties. Metrologia 56, 045009.
See Also
the function fitdistr.grouped,
the plotting method plot.fitdistr.grouped
Examples
data(barolo)
attach(barolo)
A75 <- (reseller=="A" & volume==75)
logPrice <- log(price[A75], 10) # as used in selm documentation; see its fitting
detach(barolo)
breaks <- seq(1, 3, by=0.25)
f <- cut(logPrice, breaks = breaks)
counts <- tabulate(f, length(levels(f)))
fit.logPrice.gr <- fitdistr.grouped(breaks, counts, family='ST')
summary(fit.logPrice.gr) # compare this fit with the ungrouped data fitting
print(fit.logPrice.gr)
coef(fit.logPrice.gr)
vcov(fit.logPrice.gr)
data.frame(intervals=levels(f), counts, fitted=format(fitted(fit.logPrice.gr)))
full.intervals <- c("(-Inf, 1]", levels(f), "(3, Inf)")
data.frame("full-range intervals" = full.intervals,
"full-range counts" = c(0, counts, 0),
"full-range fit" = fitted(fit.logPrice.gr, full=TRUE))
sum(counts) - sum(fitted(fit.logPrice.gr))
sum(counts) - sum(fitted(fit.logPrice.gr, full=TRUE)) # must be "nearly 0"
#---
# Use first entry in Table 3 of Possolo et al. (2019) and do similar fitting
# to the *probability* values, not observation counts
afcrc59 <- 1.141
breaks <- c(-Inf, afcrc59 - 0.033, afcrc59, afcrc59 + 0.037, Inf)
prob <- c(0.16, 0.50, 0.84)
cum.percent <- c(0, prob, 1)*100
fitSN <- fitdistr.grouped(breaks, counts=diff(cum.percent), family="SN")
print(coef(fitSN))
print(rbind(target=c(prob, 1)*100, fitted=cumsum(fitted(fitSN))), digits=5)
# Note: given the nature of these data (i.e. probabilities, not counts),
# there is no point to use vcov, logLik and summary on the fitted object.