mixt function

Normal and t-mixture distributions

Normal and t-mixture distributions

Random generation and density values from normal and t-mixture distributions.

dnorm.mixt(x, mus=0, sigmas=1, props=1) rnorm.mixt(n=100, mus=0, sigmas=1, props=1, mixt.label=FALSE) dmvnorm.mixt(x, mus, Sigmas, props=1, verbose=FALSE) rmvnorm.mixt(n=100, mus=c(0,0), Sigmas=diag(2), props=1, mixt.label=FALSE) rmvt.mixt(n=100, mus=c(0,0), Sigmas=diag(2), dfs=7, props=1) dmvt.mixt(x, mus, Sigmas, dfs, props) mvnorm.mixt.mode(mus, Sigmas, props=1, verbose=FALSE)

Arguments

  • n: number of random variates
  • x: matrix of quantiles
  • mus: (stacked) matrix of mean vectors (>1-d) or vector of means (1-d)
  • Sigmas: (stacked) matrix of variance matrices (>1-d)
  • sigmas: vector of standard deviations (1-d)
  • props: vector of mixing proportions
  • mixt.label: flag to output numeric label indicating mixture component. Default is FALSE.
  • verbose: flag to print out progress information. Default is FALSE.
  • dfs: vector of degrees of freedom

Returns

Normal and t-mixture random vectors and density values.

Details

rmvnorm.mixt and dmvnorm.mixt are based on the rmvnorm and dmvnorm functions from the mvtnorm

package. Likewise for rmvt.mixt and dmvt.mixt.

For the normal mixture densities, mvnorm.mixt.mode computes the local modes: these are usually very close but not exactly equal to the component means.

Examples

## univariate normal mixture x <- rnorm.mixt(1000, mus=c(-1,1), sigmas=c(0.5, 0.5), props=c(1/2, 1/2)) ## bivariate mixtures mus <- rbind(c(-1,0), c(1, 2/sqrt(3)), c(1,-2/sqrt(3))) Sigmas <- 1/25*rbind(invvech(c(9, 63/10, 49/4)), invvech(c(9,0,49/4)), invvech(c(9,0,49/4))) props <- c(3,3,1)/7 dfs <- c(7,3,2) x <- rmvnorm.mixt(1000, mus=mus, Sigmas=Sigmas, props=props) y <- rmvt.mixt(1000, mus=mus, Sigmas=Sigmas, dfs=dfs, props=props) mvnorm.mixt.mode(mus=mus, Sigmas=Sigmas, props=props)