Yule | R Documentation |
One of the many measures of association is the Yule coefficient. Given a two x two table of counts
a | b | R1 | |
c | d | R2 | |
C1 | C2 | n | |
Yule Q is (ad - bc)/(ad+bc).
Conceptually, this is the number of pairs in agreement (ad) - the number in disagreement (bc) over the total number of paired observations. Warren (2008) has shown that Yule's Q is one of the “coefficients that have zero value under statistical independence, maximum value unity, and minimum value minus unity independent of the marginal distributions" (p 787).
ad/bc is the odds ratio and Q = (OR-1)/(OR+1)
Yule's coefficient of colligation is Y = (sqrt(OR) - 1)/(sqrt(OR)+1)
Yule.inv finds the cell entries for a particular Q and the marginals (a+b,c+d,a+c, b+d). This is useful for converting old tables of correlations into more conventional phi
or tetrachoric correlations tetrachoric
Yule2phi and Yule2tetra convert the Yule Q with set marginals to the correponding phi or tetrachoric correlation.
Bonett and Price show that the Q and Y coefficients are both part of a general family of coefficients raising the OR to a power (c). If c=1, then this is Yule's Q. If .5, then Yule's Y, if c = .75, then this is Digby's H. They propose that c = .5 - (.5 * min(cell probabilty)^2 is a more general coefficient. YuleBonett implements this for the 2 x 2 case, YuleCor for the data matrix case.
YuleBonett(x,c=1,bonett=FALSE,alpha=.05) #find the generalized Yule cofficients
YuleCor(x,c=1,bonett=FALSE,alpha=.05) #do this for a matrix
Yule(x,Y=FALSE) #find Yule given a two by two table of frequencies
#find the frequencies that produce a Yule Q given the Q and marginals
Yule.inv(Q,m,n=NULL)
#find the phi coefficient that matches the Yule Q given the marginals
Yule2phi(Q,m,n=NULL)
Yule2tetra(Q,m,n=NULL,correct=TRUE)
#Find the tetrachoric correlation given the Yule Q and the marginals
#(deprecated) Find the tetrachoric correlation given the Yule Q and the marginals
Yule2poly(Q,m,n=NULL,correct=TRUE)
x |
A vector of four elements or a two by two matrix, or, in the case of YuleBonett or YuleCor, this can also be a data matrix |
c |
1 returns Yule Q, .5, Yule's Y, .75 Digby's H |
bonett |
If FALSE, then find Q, Y, or H, if TRUE, then find the generalized Bonett cofficient |
alpha |
The two tailed probability for confidence intervals |
Y |
Y=TRUE return Yule's Y coefficient of colligation |
Q |
Either a single Yule coefficient or a matrix of Yule coefficients |
m |
The vector c(R1,C2) or a two x two matrix of marginals or a four element vector of marginals. The preferred form is c(R1,C1) |
n |
The number of subjects (if the marginals are given as frequencies |
correct |
When finding a tetrachoric correlation, should small cell sizes be corrected for continuity. See |
Yule developed two measures of association for two by two tables. Both are functions of the odds ratio
Q |
The Yule Q coefficient |
R |
A two by two matrix of counts |
result |
If given matrix input, then a matrix of phis or tetrachorics |
rho |
From YuleBonett and YuleCor |
ci |
The upper and lower confidence intervals in matrix form (From YuleBonett and YuleCor). |
Yule.inv is currently done by using the optimize function, but presumably could be redone by solving a quadratic equation.
William Revelle
Yule, G. Uday (1912) On the methods of measuring association between two attributes. Journal of the Royal Statistical Society, LXXV, 579-652
Bonett, D.G. and Price, R.M, (2007) Statistical Inference for Generalized Yule Coefficients in 2 x 2 Contingency Tables. Sociological Methods and Research, 35, 429-446.
Warrens, Matthijs (2008), On Association Coefficients for 2x2 Tables and Properties That Do Not Depend on the Marginal Distributions. Psychometrika, 73, 777-789.
See Also as phi
, tetrachoric
, Yule2poly.matrix
, Yule2phi.matrix
Nach <- matrix(c(40,10,20,50),ncol=2,byrow=TRUE)
Yule(Nach)
Yule.inv(.81818,c(50,60),n=120)
Yule2phi(.81818,c(50,60),n=120)
Yule2tetra(.81818,c(50,60),n=120)
phi(Nach) #much less
#or express as percents and do not specify n
Nach <- matrix(c(40,10,20,50),ncol=2,byrow=TRUE)
Nach/120
Yule(Nach)
Yule.inv(.81818,c(.41667,.5))
Yule2phi(.81818,c(.41667,.5))
Yule2tetra(.81818,c(.41667,.5))
phi(Nach) #much less
if(require(psychTools)) {
YuleCor(psychTools::ability[,1:4],,TRUE)
}
YuleBonett(Nach,1) #Yule Q
YuleBonett(Nach,.5) #Yule Y
YuleBonett(Nach,.75) #Digby H
YuleBonett(Nach,,TRUE) #Yule* is a generalized Yule
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.