Learn R Programming

distr6 (version 1.1.0)

Geometric: Geometric Distribution Class

Description

Mathematical and statistical functions for the Geometric distribution, which is commonly used to model the number of trials (or number of failures) before the first success.

Value

Returns an R6 object inheriting from class SDistribution.

Constructor

Geometric$new(prob = 0.5, qprob = NULL, trials = FALSE, decorators = NULL, verbose = FALSE)

Constructor Arguments

Argument Type Details
prob numeric probability of success.
qprob numeric probability of failure.
trials logical number of trials or failures, see details.

decorators Decorator decorators to add functionality. See details.

Constructor Details

The Geometric distribution is parameterised with prob or qprob as a number between 0 and 1. These are related via, $$qprob = 1 - prob$$ If qprob is given then prob is ignored. The logical parameter trials determines which Geometric distribution is constructed and cannot be changed after construction. If trials is TRUE then the Geometric distribution that models the number of trials, \(x\), before the first success is constructed. Otherwise the Geometric distribution calculates the probability of \(y\) failures before the first success. Mathematically these are related by \(Y = X - 1\).

Public Variables

Variable Return
name Name of distribution.
short_name Id of distribution.
description Brief description of distribution.

Public Methods

Accessor Methods Link
decorators() decorators
traits() traits
valueSupport() valueSupport
variateForm() variateForm
type() type
properties() properties
support() support
symmetry() symmetry
sup() sup
inf() inf
dmax() dmax
dmin() dmin
skewnessType() skewnessType
kurtosisType() kurtosisType

Statistical Methods

Link
pdf(x1, ..., log = FALSE, simplify = TRUE) pdf
cdf(x1, ..., lower.tail = TRUE, log.p = FALSE, simplify = TRUE) cdf
quantile(p, ..., lower.tail = TRUE, log.p = FALSE, simplify = TRUE) quantile.Distribution
rand(n, simplify = TRUE) rand
mean() mean.Distribution
variance() variance
stdev() stdev
prec() prec
cor() cor
skewness() skewness
kurtosis(excess = TRUE) kurtosis
entropy(base = 2) entropy
mgf(t) mgf
cf(t) cf
pgf(z) pgf
median() median.Distribution
iqr() iqr

Parameter Methods

Link
parameters(id) parameters
getParameterValue(id, error = "warn") getParameterValue
setParameterValue(..., lst = NULL, error = "warn") setParameterValue

Validation Methods

Link
liesInSupport(x, all = TRUE, bound = FALSE) liesInSupport
liesInType(x, all = TRUE, bound = FALSE) liesInType

Representation Methods

Link
strprint(n = 2) strprint
print(n = 2) print
summary(full = T) summary.Distribution
plot() Coming Soon.
qqplot() Coming Soon.

Details

The Geometric distribution parameterised with probability of success, \(p\), is defined by the pmf, $$f(x) = (1 - p)^{k-1}p$$ for \(p \epsilon [0,1]\).

The distribution is supported on the Naturals (zero is included if modelling number of failures before success)..

The Geometric distribution is used to either refer to modelling the number of trials or number of failures before the first success.

References

McLaughlin, M. P. (2001). A compendium of common probability distributions (pp. 2014-01). Michael P. McLaughlin.

See Also

listDistributions for all available distributions.

Examples

Run this code
# NOT RUN {
# Different parameterisations
Geometric$new(prob = 0.2)
Geometric$new(qprob = 0.7)

# Different forms of the distribution
Geometric$new(trials = TRUE) # Number of trials before first success
Geometric$new(trials = FALSE) # Number of failures before first success

# Use description to see which form is used
Geometric$new(trials = TRUE)$description
Geometric$new(trials = FALSE)$description

# Default is prob = 0.5 and number of failures before first success
x <- Geometric$new()

# Update parameters
# When any parameter is updated, all others are too!
x$setParameterValue(qprob = 0.2)
x$parameters()

# d/p/q/r
x$pdf(5)
x$cdf(5)
x$quantile(0.42)
x$rand(4)

# Statistics
x$mean()
x$variance()

summary(x)

# }

Run the code above in your browser using DataLab