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
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.
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)
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
d=y-x
n<-length(x);n
## [1] 12
SP<-1-6*sum(d^2)/(n*(n^2-1));SP
## [1] 0.8601399
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.
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)
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
El procedimiento es el siguiente:
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
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.
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
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
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
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.
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
ga<- GoodmanKruskalGamma(dos)
print(ga)
## [1] 0.3079365
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
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.
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
sommer<- SomersDelta(som)
sommer
## [1] 0.2608696
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
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.
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
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
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
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
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).
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)
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
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
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*}\]
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
tetra<-tetrachoric(t)
tetra
## Call: tetrachoric(x = t)
## tetrachoric correlation
## [1] 0.69
##
## with tau of
## No No
## 0.16 0.00
r= r=cos(pi/(1+sqrt((t[1,1]*t[2,2])/(t[1,2]*t[2,1]))));r
## [1] 0.690072
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*}\]
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
phi(ta)
## [1] -0.7
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
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.
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
ContCoef(con)
## [1] 0.1399463
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
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
CramerV(cram,conf.level=0.95)
## Cramer V lwr.ci upr.ci
## 0.2595402 0.1925741 0.2969255
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
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.
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
TschuprowT(ttt)
## [1] 0.4621317
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
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*}\]
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
yule_q<-Yule(t1)
yule_q
## [1] -0.9417476
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