rcounts {corcounts} | R Documentation |
'rcounts' is used to generate high-dimensional correlated count random variables with a prespecified Pearson correlation.
rcounts(N, margins, mu, phi, omega, psi, corstr, corpar, conv = 0.01)
N |
number of observations to be generated per margin (should be at least 500). |
margins |
Vector of margin tokens. Its length T is the dimension. See details. |
mu |
Vector of length T of means for the Poisson, GP, ZIP, ZIGP and NB margins. |
phi |
Vector of length T of dispersion parameters for the GP, and ZIGP margins. For Poisson, ZIP and NB margins, an 'NA' can be provided. |
omega |
Vector of length T of zero-inflation parameters for the ZIP and ZIGP margins. For Poisson, GP and NB margins, an 'NA' can be provided. |
psi |
Vector of length T of size parameters for the NB margins. For Poisson, GP, ZIP and ZIGP margins, an 'NA' can be provided. |
corstr |
Correlation structure. Can be 'ex' for exchangeable, 'AR1' for AR(1) and 'unstr' for unstructured. |
corpar |
Correlation parameter. Scalar correlation for 'ex' and 'AR1' and matrix of dimension TxT for 'unstr'. |
conv |
Convergence criterion |
The entries in 'margins' can be specified as 'Poi' for Poisson, 'GP' for generalized Poisson, 'ZIP' for zero-inflated Poisson, 'ZIGP' for zero-inflated generalized Poisson and 'NB' for negative-binomial.
The function will return a matrix of counts of dimension N x T.
Vinzenz Erhardt
N <- 5000 # high precision in dimension 2 margins <- c("ZIGP","GP") mu <- c(10, 15) phi <- c(1.5, 3.5) omega <- c(.25, NA) psi <- c(NA, NA) corstr <- "ex" corpar <- .5 Y <- rcounts(N=N, margins=margins, mu=mu, phi=phi, omega=omega, psi=psi, corstr=corstr, corpar=corpar, conv=0.0001) cor(Y) # five-dimensional examples margins <- c("ZIGP","GP","Poi","NB","ZIP") mu <- c(10, 25, 12, 20, 28) phi <- c(1.5, 2, NA, NA, NA) omega <- c(.25, NA, NA, NA, .2) psi <- c(NA, NA, NA, 7, NA) # Exchangeable structure with correlation of 0.5 corstr <- "ex" corpar <- .5 Y <- rcounts(N=N, margins=margins, mu=mu, phi=phi, omega=omega, psi=psi, corstr=corstr, corpar=corpar) cor(Y) # AR(1) structure with correlation of corr(Y(t1), Y(t2)) = .8 ^ |t1-t2| corstr <- "AR1" corpar <- .8 Y <- rcounts(N=N, margins=margins, mu=mu, phi=phi, omega=omega, psi=psi, corstr=corstr, corpar=corpar) cor(Y) # Unstructured correlation. Create random symmetric positive definite matrix using function 'unstructured' corstr <- "unstr" corpar <- unstructured(5) corpar Y <- rcounts(N=N, margins=margins, mu=mu, phi=phi, omega=omega, psi=psi, corstr=corstr, corpar=corpar) cor(Y)