Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

NormalMix

Mixture of normal distributions


Description

Density, distribution function and random generation for the mixture of normal distributions.

Usage

dmixnorm(x, mean, sd, alpha, log = FALSE)

pmixnorm(q, mean, sd, alpha, lower.tail = TRUE, log.p = FALSE)

rmixnorm(n, mean, sd, alpha)

Arguments

x, q

vector of quantiles.

mean

matrix (or vector) of means.

sd

matrix (or vector) of standard deviations.

alpha

matrix (or vector) of mixing proportions; mixing proportions need to sum up to 1.

log, log.p

logical; if TRUE, probabilities p are given as log(p).

lower.tail

logical; if TRUE (default), probabilities are P[X ≤ x] otherwise, P[X > x].

n

number of observations. If length(n) > 1, the length is taken to be the number required.

p

vector of probabilities.

Details

Probability density function

f(x) = α[1] * f1(x; μ[1], σ[1]) + … + α[k] * fk(x; μ[k], σ[k])

Cumulative distribution function

F(x) = α[1] * F1(x; μ[1], σ[1]) + … + α[k] * Fk(x; μ[k], σ[k])

where sum(α[i]) == 1.

Examples

x <- rmixnorm(1e5, c(0.5, 3, 6), c(3, 1, 1), c(1/3, 1/3, 1/3))
hist(x, 100, freq = FALSE)
curve(dmixnorm(x, c(0.5, 3, 6), c(3, 1, 1), c(1/3, 1/3, 1/3)),
      -20, 20, n = 500, col = "red", add = TRUE)
hist(pmixnorm(x, c(0.5, 3, 6), c(3, 1, 1), c(1/3, 1/3, 1/3)))
plot(ecdf(x))
curve(pmixnorm(x, c(0.5, 3, 6), c(3, 1, 1), c(1/3, 1/3, 1/3)),
      -20, 20, n = 500, col = "red", lwd = 2, add = TRUE)

extraDistr

Additional Univariate and Multivariate Distributions

v1.9.1
GPL-2
Authors
Tymoteusz Wolodzko
Initial release
2020-08-20

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.