This function calculates a k_nb x k_nb
intermediate matrix of correlations for the Negative Binomial variables by
extending the method of Yahav & Shmueli (2012, 10.1002/asmb.901). The intermediate correlation between Z1 and Z2 (the
standard normal variables used to generate the Negative Binomial variables Y1 and Y2 via the inverse CDF method) is
calculated using a logarithmic transformation of the target correlation. First, the upper and lower Frechet-Hoeffding bounds
(mincor, maxcor) on \(\rho_{Y1, Y2}\) are simulated. Then the intermediate correlation is found as follows:
$$\rho_{Z1, Z2} = \frac{1}{b} * log(\frac{\rho_{Y1, Y2} - c}{a}),$$
where \(a = -(maxcor * mincor)/(maxcor + mincor)\), \(b = log((maxcor + a)/a)\), and \(c = -a\).
The function adapts code from Amatya & Demirtas' (2016) package PoisNor-package
by:
1) allowing specifications for the number of random variates and the seed for reproducibility
2) providing the following checks: if Sigma_(Z1, Z2)
> 1, Sigma_(Z1, Z2)
is set to 1; if Sigma_(Z1, Z2)
< -1,
Sigma_(Z1, Z2)
is set to -1
3) simulating regular and zero-inflated Negative Binomial variables.
The function is used in intercorr
and corrvar
and would not ordinarily be called by the user.
intercorr_nb(rho_nb = NULL, size = NULL, mu = NULL, p_zinb = 0,
nrand = 100000, seed = 1234)
a k_nb x k_nb
matrix of target correlations ordered 1st regular and 2nd zero-inflated
a vector of size parameters for the Negative Binomial variables (see stats::dnbinom
); the order should be
1st regular NB variables, 2nd zero-inflated NB variables
a vector of mean parameters for the NB variables (*Note: either prob
or mu
should be supplied for all Negative Binomial variables,
not a mixture; default = NULL); order the same as in size
; for zero-inflated NB this refers to
the mean of the NB distribution (see VGAM::dzinegbin
)
a vector of probabilities of structural zeros (not including zeros from the NB distribution) for the zero-inflated NB variables
(see VGAM::dzinegbin
); if p_zinb
= 0, \(Y_{nb}\) has a regular NB distribution;
if p_zinb
is in (-prob^size/(1 - prob^size),
0)
, \(Y_{nb}\) has a zero-deflated NB distribution and p_zinb
is not a probability; if p_zinb = -prob^size/(1 - prob^size)
, \(Y_{nb}\) has a positive-NB distribution (see
VGAM::dposnegbin
); if length(p_zinb) < length(size)
, the missing values are set to 0 (and ordered 1st)
the number of random numbers to generate in calculating the bound (default = 10000)
the seed used in random number generation (default = 1234)
the k_nb x k_nb
intermediate correlation matrix for the Negative Binomial variables
Please see references for intercorr_pois
.