library(DescTools)
library(psych)
## 
## Adjuntando el paquete: 'psych'
## The following objects are masked from 'package:DescTools':
## 
##     AUC, ICC, SD
library(vcd)
## Cargando paquete requerido: grid

1. Coeficiente de correlación de Spearman.

Es una medida que indica la fuerza y dirección de la asociación entre dos variables que han sido ordenadas o clasificadas.

Se asignan rangos a los valores de las 2 variables, de mayor a menor (1,2,3,…)

\[\begin{equation*} S=1-\dfrac{6\sum d_{i}^{2}}{n(n^{2} - 1)} \end{equation*}\]

donde \(d\) es la diferencia entre los rangos correspondientes de las dos variables.

Ejemplo.

10 profesores fueron calificados en su desempeño en forma independiente por el Decano(X) y por el jefe de departamento(y). El rango 1 se asigna al mejor profesor, el rango 2 al segundo,…

x <- c(7,8,2,1,9,3,12,11,4,10,6,5)
y <- c(6,4,1,3,11,2,12,10,5,9,7,8)

Cálculo con R.

spearman<-cor(x, y, method = "spearman")
spearman
## [1] 0.8601399
prueba<-cor.test(x, y, method = "spearman")
prueba
## 
##  Spearman's rank correlation rho
## 
## data:  x and y
## S = 40, p-value = 0.0005971
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.8601399

Cálculo manual.

d=y-x
n<-length(x);n
## [1] 12
SP<-1-6*sum(d^2)/(n*(n^2-1));SP
## [1] 0.8601399

2. Correlación por rangos de Kendall.

Se utiliza cuando se desea enfatizar el acuerdo o desacuerdo entre opiniones de jueces que evalúan a los mismos objetos.

\[\begin{equation*} \tau= \dfrac{C-D}{C+D} \end{equation*}\]

Donde \(C\) es el número de pares concordantes y \(D\) es el número de pares discordantes.

Ejemplo.

Dos jueces han calificado la importancia de 10 deportes en la salud física y mental de los niños.

x<-c(1,2,3,4,5,6,7,8,9,10)
y<-c(1,2,3,6,8,7,5,9,4,10)

Cálculo con R.

tau <- cor(x, y, method = "kendall")
tau
## [1] 0.6
prueba<- cor.test(x, y, method = "kendall")
prueba
## 
##  Kendall's rank correlation tau
## 
## data:  x and y
## T = 36, p-value = 0.01667
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau 
## 0.6

Cálculo manual.

El procedimiento es el siguiente:

  1. Ordenar una de las variables manteniendo los ordenes respectivos de la otra variable.
  2. Obtener el número de pares concordantes y el número de pares discordantes.

Para obtener el número de pares concordantes y discordantes se sigue el siguiente proceso:

Se toma el primer valor de la varible no ordenada y se compara con cada uno de los que está debajo, si estos son mayores se asigna 1 y si son menores se asigna -1. Luego se toma el segundo valor y se compara con cada uno de los que están debajo, asignando 1 o -1. Así sucesivamnente.

La cantidad de 1 son los concordantes y los -1 son los discordantes.

d<-c(NA,1,1,1,1,1,1,1,1,1)
e<-c(NA,NA,1,1,1,1,1,1,1,1)
f<-c(NA,NA,NA,1,1,1,1,1,1,1)
g<-c(NA,NA,NA,NA,1,1,-1,1,-1,1)
h<-c(NA,NA,NA,NA,NA,-1,-1,1,-1,1)
i<-c(NA,NA,NA,NA,NA,NA,-1,1,-1,1)
j<-c(NA,NA,NA,NA,NA,NA,NA,1,-1,1)
k<-c(NA,NA,NA,NA,NA,NA,NA,NA,-1,1)
l<-c(NA,NA,NA,NA,NA,NA,NA,NA,NA,1)
A=cbind(x,y,d,e,f,g,h,i,j,k,l)
A
##        x  y  d  e  f  g  h  i  j  k  l
##  [1,]  1  1 NA NA NA NA NA NA NA NA NA
##  [2,]  2  2  1 NA NA NA NA NA NA NA NA
##  [3,]  3  3  1  1 NA NA NA NA NA NA NA
##  [4,]  4  6  1  1  1 NA NA NA NA NA NA
##  [5,]  5  8  1  1  1  1 NA NA NA NA NA
##  [6,]  6  7  1  1  1  1 -1 NA NA NA NA
##  [7,]  7  5  1  1  1 -1 -1 -1 NA NA NA
##  [8,]  8  9  1  1  1  1  1  1  1 NA NA
##  [9,]  9  4  1  1  1 -1 -1 -1 -1 -1 NA
## [10,] 10 10  1  1  1  1  1  1  1  1  1
C=36;D=9
ta=(C-D)/(C+D)
ta
## [1] 0.6

Otra fórmula:

\[\begin{equation*} \tau=\dfrac{2S}{n(n-1)} \end{equation*}\]

S es la suma total de 1 y -1.

B<-c(NA,NA,9,8,7,2,-1,0,1,0,1)
ta<-rbind(A,B)
ta
##    x  y  d  e  f  g  h  i  j  k  l
##    1  1 NA NA NA NA NA NA NA NA NA
##    2  2  1 NA NA NA NA NA NA NA NA
##    3  3  1  1 NA NA NA NA NA NA NA
##    4  6  1  1  1 NA NA NA NA NA NA
##    5  8  1  1  1  1 NA NA NA NA NA
##    6  7  1  1  1  1 -1 NA NA NA NA
##    7  5  1  1  1 -1 -1 -1 NA NA NA
##    8  9  1  1  1  1  1  1  1 NA NA
##    9  4  1  1  1 -1 -1 -1 -1 -1 NA
##   10 10  1  1  1  1  1  1  1  1  1
## B NA NA  9  8  7  2 -1  0  1  0  1
S=rowSums(matrix(B,nrow=1),na.rm = TRUE);S
## [1] 27
T=2*S/(10*(10-1))
T
## [1] 0.6

3. Coeficiente de concordancia de Kendall.

El coeficiente de concordancia de Kendall (W de Kendall), es un estadístico que mide el grado de acuerdo o concordancia entre varios evaluadores al clasificar un conjunto de ítems en una escala ordinal.

El W de Kendall se utiliza principalmente para evaluar la fiabilidad interevaluador, es decir, la consistencia con la que diferentes evaluadores asignan rangos o clasificaciones a un conjunto de elementos.

Este coeficiente varía entre 0 y 1.

\[\begin{equation*} W=\dfrac{12S}{A^{2}(n^{3}-n)} \end{equation*}\]

S: suma de los cuadrados de las deviaciones de la media de la suma de los ordenamientos.

A: número de evaluadores.

n: número de sujetos o características a evaluar.

Ejemplo.

Se le pidió a 4 empleados que clasificaran una lista de 6 preocupaciones en el lugar de trabajo desde la menos importante hasta la más importante.

A1=c(5,4,1,6,3,2)
A2=c(2,3,1,5,6,4)
A3=c(4,1,6,3,2,5)
A4=c(4,3,2,5,1,6)
notas<-data.frame(A1,A2,A3,A4)
notas
##   A1 A2 A3 A4
## 1  5  2  4  4
## 2  4  3  1  3
## 3  1  1  6  2
## 4  6  5  3  5
## 5  3  6  2  1
## 6  2  4  5  6

Cálculo con R (DescTools)

KendallW(notas, TRUE)
## [1] 0.2285714
KendallW(notas, TRUE, test=TRUE)
## 
##  Kendall's coefficient of concordance W (with ties correction)
## 
## data:  notas
## Kendall chi-squared = 4.5714, df = 5, subjects = 6, raters = 4, p-value
## = 0.4704
## alternative hypothesis: W is greater 0
## sample estimates:
##         W 
## 0.2285714

Cálculo manual.

A=4
n=6
P<-A1+A2+A3+A4;P
## [1] 15 11 10 19 12 17
M=sum(P)/n;M
## [1] 14
d2=(P-M)^2;d2
## [1]  1  9 16 25  4  9
S<-sum(d2);S
## [1] 64
W=12*S/(A^2*(n^3-n));W
## [1] 0.2285714

4. Gamma de Goodman y Kruskal.

La gamma de Goodman-Kruskal (γ) es una medida estadística que evalúa la asociación entre dos variables ordinales. Dispuestas en tablas de contingencia en donde tanto las filas como las columnas contienen valores ordenados.

\[\begin{equation*} \gamma= \dfrac{C-D}{C+D} \end{equation*}\]

Donde \(C\) es el número concordancias y \(D\) es el número de pares discrepancias.

Ejemplo.

A una muestra de personas que estuvieron de acuerdo con una propuesta gubernamental se les preguntó su nivel socioeconómico y su nivel de estudios.

dos<-matrix(c(11,10,12,4,7,16),2)
dimnames(dos)<-list(estrato=c("Medio","Alto"),estudio=c("Primaria","Secundaria","Universitaria"))
dos
##        estudio
## estrato Primaria Secundaria Universitaria
##   Medio       11         12             7
##   Alto        10          4            16

Cálculo con R(DescTools)

ga<- GoodmanKruskalGamma(dos)
print(ga)
## [1] 0.3079365

Cálculo manual.

Se fija cada vez una celda. Para la concordancia se pondera la celda con la suma de los valores que están en las celdas a su derecha y abajo, y para la discrepancia se pondera la celda con los valores de las celdas que están a su izquierda y por abajo.

S1=11*(4+16)
S2=12*16
C=S1*S2
C=220+192;C
## [1] 412
S3=7*(10+4)
S4=12*10
D=S3+S4;D
## [1] 218
g=(C-D)/(C+D);g
## [1] 0.3079365

5. d de Sommers.

Establece la relación entre dos variables ordinales, dispuestas en una tabla de contingencia.

\[\begin{equation*} d=\dfrac{2(C-D)}{n^{2}-\sum F_{i}^{2}} \end{equation*}\]

\(F_{i}\) son las frecuencias marginales de la variable independiente.

\(n\): tamaño de muestra.

Ejemplo.

En un estudio se entrevistaron 160 personas y se pregunto sobre su escolaridad y la satisfacción que tenían en su trabajo actual.

som<-matrix(c(20,4,5,28,8,5,10,5,15),3)
dimnames(som)<-list(estrato=c("poca","buena","alta"),educación=c("Primaria","secundaria",
"técnica"))
addmargins(som)
##        educación
## estrato Primaria secundaria técnica Sum
##   poca        20         28      10  58
##   buena        4          8       5  17
##   alta         5          5      15  25
##   Sum         29         41      30 100

Cálculo con R(DescTools).

sommer<- SomersDelta(som)
sommer
## [1] 0.2608696

Cálculo manual.

s1=20*(8+5+5+15)
s2=28*(5+15)
s3=4*(5+15)
s4=8*15
C=s1+s2+s3+s4;C
## [1] 1420
s5=28*(4+5)
s6=10*(4+8+5+5)
s7=8*5
s8=5*(5+5)
D=s5+s6+s7+s8;D
## [1] 562
n=sum(som);n
## [1] 100
z=colSums(som);z
##   Primaria secundaria    técnica 
##         29         41         30
f=z[1]^2+z[2]^2+z[3]^2;f
## Primaria 
##     3422
d=2*(C-D)/(n^2-f);d
##  Primaria 
## 0.2608696

6. Kappa de Cohen.

Se utiliza para medir el acuerdo o desacuerdo entre dos jueces que valoran a los mismos sujetos.

Los datos deben estar en tablas de contingencias cuadradas.

\[\begin{equation*} K=\dfrac{f_{o}-f_{e}}{n-f_{e}} \end{equation*}\]

\(f_{o}\) es la suma de las frecuencias observadas en la diagonal principal.

\(f_{e}\) es la suma de las frecuencias esperadas en la diagonal principal.

\(n\) es el tamaño de muestra.

Ejemplo.

Dos supervisores calificaron a 100 operarios respecto a su habilidad para realizar una determinada operación.

capa<-matrix(c(12,4,7,3,9,8,5,3,4,6,10,1,6,3,5,14),4)
dimnames(capa)<-list(satis=c("bajo","medio","alto","muy"),nivel=c("uno","dos",
"tres","mucho"))
addmargins(capa)
##        nivel
## satis   uno dos tres mucho Sum
##   bajo   12   9    4     6  31
##   medio   4   8    6     3  21
##   alto    7   5   10     5  27
##   muy     3   3    1    14  21
##   Sum    26  25   21    28 100

Cálculo con R (psych)

cohen.kappa(capa)
## Call: cohen.kappa1(x = x, w = w, n.obs = n.obs, alpha = alpha, levels = levels, 
##     w.exp = w.exp)
## 
## Cohen Kappa and Weighted Kappa correlation coefficients and confidence boundaries 
##                  lower estimate upper
## unweighted kappa  0.13     0.25  0.38
## weighted kappa    0.12     0.32  0.51
## 
##  Number of subjects = 100

Cálculo con R(vcd)

k1 <- Kappa(capa)
k1
##             value     ASE     z  Pr(>|z|)
## Unweighted 0.2547 0.06561 3.882 0.0001034
## Weighted   0.2895 0.07676 3.771 0.0001623

Cálculo manual.

sumaobs<-sum(diag(capa));sumaobs
## [1] 44
fe<- chisq.test(capa)$expected;fe
## Warning in chisq.test(capa): Chi-squared approximation may be incorrect
##        nivel
## satis    uno  dos tres mucho
##   bajo  8.06 7.75 6.51  8.68
##   medio 5.46 5.25 4.41  5.88
##   alto  7.02 6.75 5.67  7.56
##   muy   5.46 5.25 4.41  5.88
sumaespera<-sum(diag(fe));sumaespera
## [1] 24.86
n<-sum(capa);n
## [1] 100
K<-(sumaobs-sumaespera)/(n-sumaespera);K
## [1] 0.2547245

7. Correlación biserial puntual.

Es un casoi especial de la correlación de Pearson. Se utiliza para establecer la relación entre una variable cuantitativa y una variable dicotómica.

Se utiliza para evaluar la relación entre las respuestas a un ítem de un test (0 o 1, incorrecto o correcto) y la puntuación total del test (continua).

\[\begin{equation*} r_{bp}=\dfrac{\bar{x_{1}}-\bar{x_{2}}}{S_{x}}\sqrt{\dfrac{n_{1}n_{2}}{n^{2}}} \end{equation*}\]

\(n_{1}\): número de correctos.

\(n_{2}\): número de incorrectos..

\(\bar{x_{1}}\):puntaje medio de los correctos.

\(\bar{x_{2}}\): puntaje medio de los incorrectos.

\(S_{n}\): desviación estándar de los puntajes (no corregida).

Ejemplo.

A diez estudiantes se les midió el tiempo(horas) que estudiaron para una pueba y el resultado en el examen( 1: aprobó, 0: no aprobó)

y<- c(5.1, 6.3, 7.8, 4.5, 6.9, 5.7, 7.2, 4.8,8.0,4.0)
x <- c(1, 0, 1, 0, 1, 0, 1, 0,1,0)

Cálculo en R.

cor.test(x,y)
## 
##  Pearson's product-moment correlation
## 
## data:  x and y
## t = 2.9327, df = 8, p-value = 0.01892
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1648798 0.9285816
## sample estimates:
##       cor 
## 0.7197834

Cálculo manual.

n1=5
n2=5
n=10
m1=7
m2=5.06
Sn= 1.347628
rbp=((m1-m2)/Sn)*sqrt(n1*n2/n^2);rbp
## [1] 0.7197832

8. Coeficiente tetracórico.

Es una medida que estima la asociación entre dos variables continuas que se han dicotomizado y organizadas en una tabla de contingencia de dos por dos.

La tabla de contingencia tiene la forma:

ta<-matrix(c("A","B","C","D"),byrow=TRUE,2)
ta
##      [,1] [,2]
## [1,] "A"  "B" 
## [2,] "C"  "D"

Una aproximación para su cálculo viene dada por:

\[\begin{equation*} r_{t}=cos\left( \dfrac{180^{o}}{1+\sqrt{\frac{AD}{BC}}}\right) \end{equation*}\]

Ejemplo.

A una muestra de sujetos se les hicieron dos preguntas sobre su intención de compra de un producto.

t<- matrix(c(64,16,26,54),2)
dimnames(t)<-list(Uno=c("No","Si"),Dos=c("No","Si"))
addmargins(t)
##      Dos
## Uno   No Si Sum
##   No  64 26  90
##   Si  16 54  70
##   Sum 80 80 160

Cálculo con R(psych)

tetra<-tetrachoric(t)
tetra
## Call: tetrachoric(x = t)
## tetrachoric correlation 
## [1] 0.69
## 
##  with tau of 
##   No   No 
## 0.16 0.00

Cálculos manuales.

r= r=cos(pi/(1+sqrt((t[1,1]*t[2,2])/(t[1,2]*t[2,1]))));r
## [1] 0.690072

9. Coeficiente Phi.

Es una medida de asociación entre dos variables expresadas en forma dicotómica puestas en una tabla de contingencia 2x2.

La tabla de contingencia tiene la forma:

ta<-matrix(c("A","B","C","D"),byrow=TRUE,2)
ta
##      [,1] [,2]
## [1,] "A"  "B" 
## [2,] "C"  "D"

\[\begin{equation*} \Phi=\dfrac{AD-BC}{\sqrt{(A+B)(C+D)(B+D)(A+C)}} \end{equation*}\]

Ejemplo.

A una muestra de electores se les preguntó si estaban o no de acuerdo con dos propuestas de un candidato.

ta<-matrix(c(15,80,125,20),2)
dimnames(ta)<-list(Uno=c("No","Si"),Dos=c("No","Si"))
addmargins(ta)
##      Dos
## Uno   No  Si Sum
##   No  15 125 140
##   Si  80  20 100
##   Sum 95 145 240

Cálculo con R(DescTools).

phi(ta)
## [1] -0.7

Cálculo manual.

fi<-(ta[1,1] * ta[2,2] - ta[1,2] * ta[2,1]) / 
sqrt(sum(ta[1,]) * sum(ta[2,]) * sum(ta[,1]) * sum(ta[,2]))
fi
## [1] -0.6984928

10. Coeficiente de contingencia.

Mide la relación entre dos variables categóricas dispuestas en más de dos categorías. Se basa en la prueba \(\chi^{2}\) de independencia.

\[\begin{equation*} C=\sqrt{\dfrac{\chi^{2}}{\chi^{2}+n}} \end{equation*}\]

\(n\) tamaño de muestra.

Ejemplo.

La tabla presenta las respuestas de una muestra de personas sobre la marca y el tamaño preferido de un producto.

con<-matrix(c(20,10,5,15,12,8,5,3,2),3)
dimnames(con)<-list(tamaño=c("pequeño","mediano","grande"),marca=c("A","B",
"C"))
addmargins(con)
##          marca
## tamaño    A  B  C Sum
##   pequeño 20 15  5  40
##   mediano 10 12  3  25
##   grande   5  8  2  15
##   Sum     35 35 10  80

Cálculo con R(DescTools).

ContCoef(con)
## [1] 0.1399463

Cálculo manual.

fre<- chisq.test(con)$expected
## Warning in chisq.test(con): Chi-squared approximation may be incorrect
fre
##          marca
## tamaño         A       B     C
##   pequeño 17.5000 17.5000 5.000
##   mediano 10.9375 10.9375 3.125
##   grande   6.5625  6.5625 1.875
dife<-((con-fre)^2/fre)
dife
##          marca
## tamaño            A         B           C
##   pequeño 0.35714286 0.3571429 0.000000000
##   mediano 0.08035714 0.1032143 0.005000000
##   grande  0.37202381 0.3148810 0.008333333
ji<-sum(dife);ji
## [1] 1.598095
n<-sum(con);n
## [1] 80
C=sqrt(ji/(n+ji))
C
## [1] 0.1399463

11. Coeficiente V de Cramer.

Es una alternativa al coeficiente de contingencia cuando las variables se encuentran en escala nominal y se encuentran en tablas rectangulares.

\[\begin{equation*} V=\sqrt{\dfrac{\chi^{2}}{n(k-1)}} \end{equation*}\]

#n# es el tamaño de muestra.

#k# es el menor entre el número de filas y columnas. ### Ejemplo.

cram<-matrix(c(20,12,4,13,10,15,18,11,40,50,55,19,70,33,12,4,65,28,4,17),4)
dimnames(cram)<-list(Marca=c("A","B","C","D"),empaque=c("Sin","Papel",
"Carton","plástico","Botella"))
addmargins(cram)
##      empaque
## Marca Sin Papel Carton plástico Botella Sum
##   A    20    10     40       70      65 205
##   B    12    15     50       33      28 138
##   C     4    18     55       12       4  93
##   D    13    11     19        4      17  64
##   Sum  49    54    164      119     114 500

Cálculo con R(DescTools).

CramerV(cram,conf.level=0.95)
##  Cramer V    lwr.ci    upr.ci 
## 0.2595402 0.1925741 0.2969255

Cálculo manual.

chi<-chisq.test(cram);chi
## 
##  Pearson's Chi-squared test
## 
## data:  cram
## X-squared = 101.04, df = 12, p-value = 3.48e-16
chi
## 
##  Pearson's Chi-squared test
## 
## data:  cram
## X-squared = 101.04, df = 12, p-value = 3.48e-16
xi<-chi$statistic
xi
## X-squared 
##  101.0416
Vc<-sqrt(xi/(sum(cram)*(4-1)))
Vc
## X-squared 
## 0.2595402

12. Coeficiente de Tschuprow.

Mide la relación existente entre dos variables categóricas, pero se utiliza de preferencia al de Cramer en tablas de contingencias cuadradas.

\[\begin{equation*} T=\sqrt{\dfrac{\chi^{2}}{n(f-1)(c-1)}} \end{equation*}\]

#n# tamaño de muestra.

#f# número de filas.

#c# número de columnas.

Ejemplo.

Se clasificaron empleados de una empresa según el nivel jeararquico en la organización y su satisfacción que tenía en el trabajo.

ttt<-matrix(c(34,15,10,14,36,9,8,16,58),3)
dimnames(ttt)<-list(satis=c("bajo","medio","alto"),nivel=c("uno","dos",
"tres"))
addmargins(ttt)
##        nivel
## satis   uno dos tres Sum
##   bajo   34  14    8  56
##   medio  15  36   16  67
##   alto   10   9   58  77
##   Sum    59  59   82 200

Cálculo con R (DescTools).

TschuprowT(ttt)
## [1] 0.4621317

Cálculo manual.

n1=nrow(ttt);n1
## [1] 3
n2=ncol(ttt);n2
## [1] 3
chi2<-chisq.test(ttt);chi2
## 
##  Pearson's Chi-squared test
## 
## data:  ttt
## X-squared = 85.426, df = 4, p-value < 2.2e-16
chi2
## 
##  Pearson's Chi-squared test
## 
## data:  ttt
## X-squared = 85.426, df = 4, p-value < 2.2e-16
xi2<-chi2$statistic
xi2
## X-squared 
##  85.42628
n<-sum(ttt);n
## [1] 200
Ts<-sqrt(xi2/(n*sqrt((n1-1)*(n2-1))));Ts
## X-squared 
## 0.4621317

13. Coeficiente Q de Yule.

El coeficiente Q de Yule es una medida de asociación nominal y ordinal entre dos variables dicotómicas o binarias, calculado a partir de la tabla de contingencia 2x2 que forman los datos referidos a las dos variables.

La tabla de contingencia de la forma:

ta<-matrix(c("A","B","C","D"),byrow=TRUE,2)
ta
##      [,1] [,2]
## [1,] "A"  "B" 
## [2,] "C"  "D"

\[\begin{equation*} Q=\dfrac{AD-BC}{AD+BC} \end{equation*}\]

Ejemplo.

A una muestra de electores se les preguntó si estaban o no de acuerdo con dos propuestas de una candidadto.

t1<-matrix(c(15,80,125,20),2)
dimnames(t1)<-list(Uno=c("No","Si"),Dos=c("No","Si"))
addmargins(t1)
##      Dos
## Uno   No  Si Sum
##   No  15 125 140
##   Si  80  20 100
##   Sum 95 145 240

Cálculo con R(psych)

yule_q<-Yule(t1)
yule_q
## [1] -0.9417476

Cálculo manual.

Q=(t1[1,1]*t1[2,2]-t1[1,2]*t1[2,1])/(t1[1,1]*t1[2,2]+t1[1,2]*t1[2,1]);Q
## [1] -0.9417476