Learn R Programming

MultiDiscreteRNG (version 0.1.0)

BinToMix: Convert multivariate binary data to mixed distribution outcomes

Description

This function maps multivariate binary data to outcomes from a mixture of generalized Poisson, negative binomial, and binomial distributions while preserving the original marginal distribution characteristics. It assigns appropriate values from each distribution based on binary thresholds and probability mass functions.

Usage

BinToMix(prop.vec.bin, Mixprop, Mlocation, bin.data)

Value

A list containing:

y

Matrix of generated mixed distribution data

Corr

Correlation matrix of the generated data

Arguments

prop.vec.bin

A vector of binary probabilities for each variable

Mixprop

A list of probability mass functions for each variable's distribution

Mlocation

A vector of threshold values (typically medians) for each variable

bin.data

A matrix of multivariate binary data (0s and 1s)

Examples

Run this code
# First simulate intermediate binary correlations
GPD.theta.vec = 2
GPD.lambda.vec = 0.3
NB.r.vec = 10
NB.prob.vec = 0.2

GPD.p = calc.bin.prob.GPD(GPD.theta.vec, GPD.lambda.vec)
NB.p = calc.bin.prob.NB(NB.r.vec, NB.prob.vec)
pvec.pair  = c(GPD.p$p, NB.p$p)
Mlocation.pair <- c(GPD.p$Mlocation, NB.p$Mlocation)
prop.pair      <- list(GPD.p$prop[[1]], NB.p$prop[[1]])

# Specify a target correlation matrix for two binary variables
del.next <- matrix(c(1.0, 0.3,
                     0.3, 1.0),
                   nrow = 2, byrow = TRUE)

# Generate correlated binary data using the intermediate matrix
inter_bin <- generate.binaryVar(100, pvec.pair, del.next)

# Convert binary data to mixed distribution outcomes
mixed_data <- BinToMix(pvec.pair, prop.pair, Mlocation.pair, inter_bin)$y

Run the code above in your browser using DataLab