[Stable] Density, distribution function, quantile function, and random generation for a univariate Gaussian mixture.

dmixnorm(x, mean = rep(0, 2), sd = rep(1, 2), alpha = rep(1/2, 2), log = FALSE)

pmixnorm(
  q,
  mean = rep(0, 2),
  sd = rep(1, 2),
  alpha = rep(1/2, 2),
  lower.tail = TRUE,
  log.p = FALSE
)

qmixnorm(
  p,
  mean = rep(0, 2),
  sd = rep(1, 2),
  alpha = rep(1/2, 2),
  lower.tail = TRUE,
  log.p = FALSE
)

rmixnorm(n, mean = rep(0, 3), sd = rep(1, 3), alpha = rep(1/3, 3))

Arguments

x

Numeric vector of quantiles.

mean

Numeric vector of component means.

sd

Numeric vector of component standard deviations.

alpha

Numeric vector of component probabilities.

log

Logical. If TRUE, dmixnorm() returns log-densities.

q

Numeric vector of quantiles.

lower.tail

Logical. If TRUE, probabilities are \(P[X \le x]\); otherwise, \(P[X > x]\).

log.p

Logical. If TRUE, probabilities are supplied or returned on the log scale.

p

Numeric vector of probabilities.

n

Number of observations.

Value

  • dmixnorm() returns a numeric vector of density values.

  • pmixnorm() returns a numeric vector of probabilities.

  • qmixnorm() returns a numeric vector of quantiles.

  • rmixnorm() returns a tibble with simulated component values, component indicators, and the combined random draw.

Note

Version 1.0.1.

Examples

mean <- c(-1, 1)
sd <- c(0.5, 1)
alpha <- c(0.4, 0.6)
dmixnorm(c(-1, 0, 1), mean, sd, alpha)
#> [1] 0.3515484 0.1883752 0.2394724
pmixnorm(c(-1, 0, 1), mean, sd, alpha)
#> [1] 0.2136501 0.4860931 0.6999873
qmixnorm(c(0.25, 0.75), mean, sd, alpha)
#> [1] -0.8969722  1.2104368

set.seed(1)
rmixnorm(3, mean, sd, alpha)
#> # A tibble: 3 × 6
#>       t    X1    X2    B1    B2     X
#>   <int> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1     1     0  2.33     0     1  2.33
#> 2     2     0  2.27     0     1  2.27
#> 3     3     0  1.41     0     1  1.41