NormalMix.Rd
Density, distribution function, quantile function, and random generation
for a mixture of two normal distribution with parameters
mean1
, sd1
, mean2
, sd2
, and p.mix
.
dnormMix(x, mean1 = 0, sd1 = 1, mean2 = 0, sd2 = 1, p.mix = 0.5)
pnormMix(q, mean1 = 0, sd1 = 1, mean2 = 0, sd2 = 1, p.mix = 0.5)
qnormMix(p, mean1 = 0, sd1 = 1, mean2 = 0, sd2 = 1, p.mix = 0.5)
rnormMix(n, mean1 = 0, sd1 = 1, mean2 = 0, sd2 = 1, p.mix = 0.5)
vector of quantiles.
vector of quantiles.
vector of probabilities between 0 and 1.
sample size. If length(n)
is larger than 1, then length(n)
random values are returned.
vector of means of the first normal random variable.
The default is mean1=0
.
vector of standard deviations of the first normal random variable.
The default is sd1=1
.
vector of means of the second normal random variable.
The default is mean2=0
.
vector of standard deviations of the second normal random variable.
The default is sd2=1
.
vector of probabilities between 0 and 1 indicating the mixing proportion.
For rnormMix
this must be a single, non-missing number.
Let \(f(x; \mu, \sigma)\) denote the density of a
normal random variable with parameters
mean=
\(\mu\) and sd=
\(\sigma\). The density, \(g\), of a
normal mixture random variable with parameters mean1=
\(\mu_1\),
sd1=
\(\sigma_1\), mean2=
\(\mu_2\),
sd2=
\(\sigma_2\), and p.mix=
\(p\) is given by:
$$g(x; \mu_1, \sigma_1, \mu_2, \sigma_2, p) =
(1 - p) f(x; \mu_1, \sigma_1) + p f(x; \mu_2, \sigma_2)$$
dnormMix
gives the density, pnormMix
gives the distribution function,
qnormMix
gives the quantile function, and rnormMix
generates random
deviates.
Johnson, N. L., S. Kotz, and A.W. Kemp. (1992). Univariate Discrete Distributions. Second Edition. John Wiley and Sons, New York, pp.53-54, and Chapter 8.
Johnson, N. L., S. Kotz, and N. Balakrishnan. (1994). Continuous Univariate Distributions, Volume 1. Second Edition. John Wiley and Sons, New York.
A normal mixture distribution is sometimes used to model data
that appear to be “contaminated”; that is, most of the values appear to
come from a single normal distribution, but a few “outliers” are
apparent. In this case, the value of mean2
would be larger than the
value of mean1
, and the mixing proportion p.mix
would be fairly
close to 0 (e.g., p.mix=0.1
). The value of the second standard deviation
(sd2
) may or may not be the same as the value for the first
(sd1
).
Another application of the normal mixture distribution is to bi-modal data; that is, data exhibiting two modes.
# Density of a normal mixture with parameters mean1=0, sd1=1,
# mean2=4, sd2=2, p.mix=0.5, evaluated at 1.5:
dnormMix(1.5, mean2=4, sd2=2)
#> [1] 0.1104211
#[1] 0.1104211
#----------
# The cdf of a normal mixture with parameters mean1=10, sd1=2,
# mean2=20, sd2=2, p.mix=0.1, evaluated at 15:
pnormMix(15, 10, 2, 20, 2, 0.1)
#> [1] 0.8950323
#[1] 0.8950323
#----------
# The median of a normal mixture with parameters mean1=10, sd1=2,
# mean2=20, sd2=2, p.mix=0.1:
qnormMix(0.5, 10, 2, 20, 2, 0.1)
#> [1] 10.27942
#[1] 10.27942
#----------
# Random sample of 3 observations from a normal mixture with
# parameters mean1=0, sd1=1, mean2=4, sd2=2, p.mix=0.5.
# (Note: the call to set.seed simply allows you to reproduce this example.)
set.seed(20)
rnormMix(3, mean2=4, sd2=2)
#> [1] 0.07316778 2.06112801 1.05953620
#[1] 0.07316778 2.06112801 1.05953620