Learn R Programming

mipfp (version 3.2.3)

Odds2Corr: Converting odds ratio to correlation

Description

For \(K\) binary (Bernoulli) random variables \(X_1\), ..., \(X_K\), this function transforms the odds ratios measure of association \(O_{ij}\) between every pair \((X_i, X_j)\) to the correlation \(C_{ij}\) where $$C_{ij} = \frac{cov(X_i, X_j)}{\sqrt{var(X_i) * var(X_j)}}$$ and $$ O_{ij} = \frac{P(X_i = 1, X_j = 1) * P(X_i = 0, X_j = 0)} {P(X_i = 1, X_j = 0) * P(X_i = 0, X_j = 1)}. $$

Usage

Odds2Corr(odds, marg.probs)

Value

The function return a list with the correlations and the pairwise probabilities.

corr

A matrix of the same dimension as odds containing the correlations

pair.proba

A matrix of the same dimension as odds containing the pairwise probabilities.

Arguments

odds

A \(K \times K\) matrix where the \(i\)-th row and the \(j\)-th column represents the odds ratio \(O_{ij}\) between variables \(i\) and \(j\).

marg.probs

A vector with \(K\) elements of marginal probabilities where the \(i\)-th entry refers to \(P(X_i = 1)\).

Author

Thomas Suesse.

Maintainer: Johan Barthelemy johan@uow.edu.au.

References

Lee, A.J. (1993). Generating Random Binary Deviates Having Fixed Marginal Distributions and Specified Degrees of Association The American Statistician 47 (3): 209-215.

Qaqish, B. F., Zink, R. C., and Preisser, J. S. (2012). Orthogonalized residuals for estimation of marginally specified association parameters in multivariate binary data. Scandinavian Journal of Statistics 39, 515-527.

See Also

Corr2Odds for converting correlation to odds ratio.

Examples

Run this code
# from Qaqish et al. (2012)
or <- matrix(c(Inf, 0.281, 2.214, 2.214,
               0.281, Inf, 2.214, 2.214,
               2.214, 2.214, Inf, 2.185,
               2.214, 2.214, 2.185, Inf), nrow = 4, ncol = 4, byrow = TRUE)
rownames(or) <- colnames(or) <- c("Parent1", "Parent2", "Sibling1", "Sibling2")

# hypothetical marginal probabilities
p <- c(0.2, 0.4, 0.6, 0.8)

# converting odds ratio to correlation
corr <- Odds2Corr(odds = or, marg.probs = p)
print(corr)

Run the code above in your browser using DataLab