Learn R Programming

distr6 (version 1.3.2)

Triangular: Triangular Distribution Class

Description

Mathematical and statistical functions for the Triangular distribution, which is commonly used to model population data where only the minimum, mode and maximum are known (or can be reliably estimated), also to model the sum of standard uniform distributions.

Value

Returns an R6 object inheriting from class SDistribution.

Constructor

Triangular$new(lower = 0, upper = 1, mode = 0.5, symmetric = FALSE, decorators = NULL, verbose = FALSE)

Constructor Arguments

Argument Type Details
lower numeric lower limit.
upper numeric upper limit.
mode numeric mode.
symmetric logical see details.

decorators Decorator decorators to add functionality. See details.

Constructor Details

The Triangular distribution is parameterised with lower, upper and mode as numerics. If symmetric = TRUE then the mode parameter is determined automatically and is defined by $$mode = (lower + upper) /2$$ this cannot be changed after construction. If symmetric = FALSE (default) then mode can be updated after construction.

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
mode(which = "all") mode

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

Details

The Triangular distribution parameterised with lower limit, \(a\), upper limit, \(b\), and mode, \(c\), is defined by the pdf, \(f(x) = 0, x < a\) \(f(x) = 2(x-a)/((b-a)(c-a)), a \le x < c\) \(f(x) = 2/(b-a), x = c\) \(f(x) = 2(b-x)/((b-a)(b-c)), c < x \le b\) \(f(x) = 0, x > b\) for \(a,b,c \ \in \ R\), \(a \le c \le b\).

The distribution is supported on \([a, b]\).

References

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

See Also

listDistributions for all available distributions. Uniform for the Uniform distribution.

Examples

Run this code
# NOT RUN {
Triangular$new(lower = 2, upper = 5, symmetric = TRUE)
Triangular$new(lower = 2, upper = 5, symmetric = FALSE) # Note mode defaults to a symmetric shape
Triangular$new(lower = 2, upper = 5, mode = 4)

# You can view the type of Triangular distribution with $description
Triangular$new(lower = 2, upper = 5, symmetric = TRUE)$description
Triangular$new(lower = 2, upper = 5, symmetric = FALSE)$description

x = Triangular$new(lower = -1, upper = 1)

# Update parameters
x$setParameterValue(lower = 2, upper = 7)
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