repaso Clase Independencia de Categoricas
El ACS se utiliza para describir tablas de contingencia (TC), mediante la representación geométrica de las tablas de perfiles fila y columna, derivadas de ella. El objetivo del ACS es describir las asociaciones entre las variables fila y columna, a través de sus perfiles. Las gráficas permiten: 1) comparar los perfiles fila, 2) comparar los perfiles columna y 3) estudiar las correspondencias entre perfiles fila y columna.
Mucha información clínica y sanitaria es cualitativa. Las encuestas de salud suelen contener cuestiones cerradas con información nominal u ordinal. En la investigación clínica y en estudios epidemiológicos es relevante la presencia o ausencia de determinados síntomas o problemas. El tratamiento clásico de datos cualitativos se limita al análisis de asociación o independencia bivariante; por ejemplo, calcular el estadístico x: de independencia en tablas de frecuencia. El potencial del AC como método exploratorio es enorme, ya que no solamente traduce la asociación entre dos variables, sino que puede analizar simultáneamente varias variables y estudiar las relaciones entre sus múltiples categorías. Es un método generador de ideas e hipótesis que merecen ser sometidas a ulteriores investigaciones.
Todas las preguntas cerradas de una encuesta de salud, o todos los problemas y síntomas que pueden presentar los recién nacidos ingresados en un hospital, son analizados simultáneam ente en un AC. La riqueza de resultados supera obviamente a la que proporcionan los métodos tradicionales.
Entre los objetivos del AC destacamos que:
Resume la información de una tabla de frecuencias
Las variables resumen o factores que calcula el AC son cuantitativas
Aunque es un método eminentem ente descriptivo o exploratorio, en algunos casos se utiliza también como explicativo
Una aplicación interesante es el tratamiento de la falta de datos («missing valúes»). Una proporción nada despreciable de encuestados se niega a contestar algunas preguntas que considera delicadas, como es el nivel de ingresos.
Supongamos que queremos establecer la relación causa efecto entre renta familiar, tamaño de la familia y otras características personales con el tipo de médico elegido, mediante un análisis de dependencia. Si optamos por eliminar a las personas que no declaran su renta, corremos el riesgo de sesgar la muestra. Una posibilidad es hacer un primer ACS exploratorio de renta, recodifícada por tramos, y tipo de médico, excluyendo del análisis a las personas de renta desconocida. Una vez obtenidos los factores, se proyecta la categoría «no sabe/no contesta» com o suplementaria; así a los individuos de ingresos desconocidos se les puede asignar el nivel de renta que resulte más cercano en el espacio de los factores.
La fórmula que da el estadístico es la siguiente:
\[\displaystyle \chi^{2}_c=\sum_{i}^k{\frac{(n_{i}-E(n_i))^{2}}{E(n_i)}}=\sum_{i}^k{\frac{(n_{i}-np_i)^{2}}{np_i}}\]
\[\displaystyle \chi^{2}_c=\sum_{i}^k{\frac{(\mathrm{observada}_{i}-\mathrm {teorica}_{i})^{2}}{\mathrm{teorica}_{i}}}\] Cuanto mayor sea el valor de \({\displaystyle \chi ^{2}}\) , menos verosímil es que la hipótesis nula (que asume la igualdad entre ambas distribuciones) sea correcta. De la misma forma, cuanto más se aproxima a cero el valor de chi-cuadrado, más ajustadas están ambas distribuciones.
Los grados de libertad gl vienen dados por :
\({\displaystyle gl=(r-1)(k-1)}\) Donde r es el número de filas y k el de columnas.
\(H_0\): La variable sigue la distribución teórica (bondad de ajuste) \(vs\) \(H_1\): Las variables no sigue la distribución
Dado que el estadístico de prueba son diferencias al cuadrado de las proporciones observadas vs las que se encontrarían bajo independencia la prueba será de una cola, pues a mayores diferencias se hará mayor.
No se rechaza la hipótesis nula \(H_0\) cuando \({\displaystyle \chi ^{2}<\chi_{c}^{2}((r-1)(k-1))}\). En caso contrario sí se rechaza.
Donde \(\chi_{c}^{2}\) representa el valor crítico por las tablas, según el nivel de significación estadística elegido.
seis_ops_rs## Departamento n.CAUSAS EXTERNAS
## 1 Antioquia 4638
## 8 Arauca 285
## 15 Atlántico 970
## 22 Bogotá, D. C. 3048
## 29 Bolívar 768
## 36 Boyacá 587
## 43 Caldas 674
## 50 Caquetá 453
## 57 Casanare 284
## 64 Cauca 900
## 71 Cesar 662
## 78 Chocó 278
## 85 Córdoba 734
## 92 Cundinamarca 1252
## 99 Grupo Amazonia1 191
## 106 Huila 865
## 113 La Guajira 364
## 120 Magdalena 614
## 127 Meta 860
## 134 Nariño 1187
## 141 Norte de Santander 1068
## 148 Putumayo 330
## 155 Quindio 429
## 162 Risaralda 736
## 169 San Andrés, Providencia y Santa Catalina 37
## 176 Santander 1012
## 183 Sucre 396
## 190 Tolima 991
## 197 Valle del Cauca 4906
## n.CIERTAS AFECCIONES ORIGINADA EN EL PERIODO PERINATAL
## 1 329
## 8 9
## 15 351
## 22 672
## 29 200
## 36 62
## 43 66
## 50 34
## 57 5
## 64 80
## 71 151
## 78 57
## 85 293
## 92 87
## 99 20
## 106 98
## 113 114
## 120 161
## 127 116
## 134 105
## 141 99
## 148 17
## 155 35
## 162 82
## 169 8
## 176 168
## 183 61
## 190 73
## 197 298
## n.ENFERMEDADES DEL SISTEMA CIRCULATORIO n.ENFERMEDADES TRANSMISIBLES
## 1 8145 1876
## 8 241 50
## 15 3436 1014
## 22 9866 2010
## 29 2045 662
## 36 2160 240
## 43 1894 350
## 50 392 91
## 57 261 74
## 64 1230 214
## 71 998 304
## 78 195 60
## 85 1956 527
## 92 3408 468
## 99 128 83
## 106 1523 333
## 113 301 162
## 120 1489 370
## 127 1382 317
## 134 1883 356
## 141 2021 455
## 148 172 33
## 155 1056 259
## 162 1592 338
## 169 79 14
## 176 3342 872
## 183 1148 195
## 190 2936 403
## 197 7246 1810
## n.NEOPLASIAS (TUMORES) n.SINTOMAS, SIGNOS Y AFECCIONES MAL DEFINIDAS
## 1 6434 495
## 8 112 17
## 15 2028 290
## 22 8397 610
## 29 957 131
## 36 856 146
## 43 1138 48
## 50 211 49
## 57 142 34
## 64 774 148
## 71 534 47
## 78 57 46
## 85 941 192
## 92 1246 347
## 99 66 28
## 106 992 57
## 113 140 82
## 120 718 95
## 127 672 108
## 134 1152 146
## 141 1110 60
## 148 89 21
## 155 753 11
## 162 1251 24
## 169 31 1
## 176 1896 285
## 183 404 13
## 190 1200 42
## 197 4945 255
## n.TODAS LAS DEMAS CAUSAS
## 1 6566
## 8 158
## 15 3093
## 22 8519
## 29 1689
## 36 1657
## 43 1332
## 50 365
## 57 196
## 64 871
## 71 854
## 78 145
## 85 1532
## 92 2263
## 99 164
## 106 1186
## 113 347
## 120 1124
## 127 1084
## 134 1599
## 141 1720
## 148 127
## 155 915
## 162 1469
## 169 51
## 176 2792
## 183 725
## 190 1592
## 197 6027
library(RColorBrewer)
mosaicplot((mm),las=2, col=brewer.pal(10,"Paired"), main="")# mosaicplot(~ Sex + Age + Survived, data = seis_ops, color = TRUE)#install.packages("FactoClass")
library(FactoClass)## Loading required package: ade4
## Warning: package 'ade4' was built under R version 3.5.1
## Loading required package: ggrepel
## Loading required package: xtable
## Loading required package: scatterplot3d
plotct (mm,"row",col=brewer.pal(10,"Paired"))#install.packages("FactoClass")
library(FactoClass)
library(RColorBrewer)
plotct (mm,"col",col=brewer.pal(10,"Paired"))x<-mm
total <- sum(x)
f.marginal <- colSums(x)/total
c.marginal <- rowSums(x)/total
f.perfil <- rbind(prop.table(x, 1), marg = f.marginal)
c.perfil <- cbind(prop.table(x, 2), marg = c.marginal)
f.perfil## n.CAUSAS EXTERNAS
## Antioquia 0.16283397
## Arauca 0.32683486
## Atlántico 0.08674656
## Bogotá, D. C. 0.09202343
## Bolívar 0.11903286
## Boyacá 0.10283812
## Caldas 0.12250091
## Caquetá 0.28401254
## Casanare 0.28514056
## Cauca 0.21342186
## Cesar 0.18647887
## Chocó 0.33174224
## Córdoba 0.11886640
## Cundinamarca 0.13802227
## Grupo Amazonia1 0.28088235
## Huila 0.17115156
## La Guajira 0.24105960
## Magdalena 0.13432509
## Meta 0.18946905
## Nariño 0.18466086
## Norte de Santander 0.16347773
## Putumayo 0.41825095
## Quindio 0.12406015
## Risaralda 0.13401311
## San Andrés, Providencia y Santa Catalina 0.16742081
## Santander 0.09761744
## Sucre 0.13460231
## Tolima 0.13693519
## Valle del Cauca 0.19249029
## marg 0.14536295
## n.CIERTAS AFECCIONES ORIGINADA EN EL PERIODO PERINATAL
## Antioquia 0.011550750
## Arauca 0.010321101
## Atlántico 0.031389734
## Bogotá, D. C. 0.020288630
## Bolívar 0.030998140
## Boyacá 0.010861948
## Caldas 0.011995638
## Caquetá 0.021316614
## Casanare 0.005020080
## Cauca 0.018970832
## Cesar 0.042535211
## Chocó 0.068019093
## Córdoba 0.047449393
## Cundinamarca 0.009591004
## Grupo Amazonia1 0.029411765
## Huila 0.019390582
## La Guajira 0.075496689
## Magdalena 0.035222052
## Meta 0.025556290
## Nariño 0.016334785
## Norte de Santander 0.015153834
## Putumayo 0.021546261
## Quindio 0.010121457
## Risaralda 0.014930808
## San Andrés, Providencia y Santa Catalina 0.036199095
## Santander 0.016205267
## Sucre 0.020734194
## Tolima 0.010087053
## Valle del Cauca 0.011692235
## marg 0.018963811
## n.ENFERMEDADES DEL SISTEMA CIRCULATORIO
## Antioquia 0.2859600
## Arauca 0.2763761
## Atlántico 0.3072796
## Bogotá, D. C. 0.2978685
## Bolívar 0.3169560
## Boyacá 0.3784163
## Caldas 0.3442385
## Caquetá 0.2457680
## Casanare 0.2620482
## Cauca 0.2916765
## Cesar 0.2811268
## Chocó 0.2326969
## Córdoba 0.3167611
## Cundinamarca 0.3757028
## Grupo Amazonia1 0.1882353
## Huila 0.3013455
## La Guajira 0.1993377
## Magdalena 0.3257493
## Meta 0.3044724
## Nariño 0.2929371
## Norte de Santander 0.3093525
## Putumayo 0.2179975
## Quindio 0.3053788
## Risaralda 0.2898762
## San Andrés, Providencia y Santa Catalina 0.3574661
## Santander 0.3223691
## Sucre 0.3902107
## Tolima 0.4056930
## Valle del Cauca 0.2843018
## marg 0.3078972
## n.ENFERMEDADES TRANSMISIBLES
## Antioquia 0.06586385
## Arauca 0.05733945
## Atlántico 0.09068145
## Bogotá, D. C. 0.06068474
## Bolívar 0.10260384
## Boyacá 0.04204625
## Caldas 0.06361323
## Caquetá 0.05705329
## Casanare 0.07429719
## Cauca 0.05074698
## Cesar 0.08563380
## Chocó 0.07159905
## Córdoba 0.08534413
## Cundinamarca 0.05159299
## Grupo Amazonia1 0.12205882
## Huila 0.06588841
## La Guajira 0.10728477
## Magdalena 0.08094509
## Meta 0.06983917
## Nariño 0.05538270
## Norte de Santander 0.06964641
## Putumayo 0.04182510
## Quindio 0.07489879
## Risaralda 0.06154406
## San Andrés, Providencia y Santa Catalina 0.06334842
## Santander 0.08411305
## Sucre 0.06628144
## Tolima 0.05568606
## Valle del Cauca 0.07101660
## marg 0.06864594
## n.NEOPLASIAS (TUMORES)
## Antioquia 0.22588913
## Arauca 0.12844037
## Atlántico 0.18136290
## Bogotá, D. C. 0.25351730
## Bolívar 0.14832610
## Boyacá 0.14996496
## Caldas 0.20683388
## Caquetá 0.13228840
## Casanare 0.14257028
## Cauca 0.18354280
## Cesar 0.15042254
## Chocó 0.06801909
## Córdoba 0.15238866
## Cundinamarca 0.13736082
## Grupo Amazonia1 0.09705882
## Huila 0.19628017
## La Guajira 0.09271523
## Magdalena 0.15707723
## Meta 0.14805023
## Nariño 0.17921593
## Norte de Santander 0.16990663
## Putumayo 0.11280101
## Quindio 0.21775593
## Risaralda 0.22778587
## San Andrés, Providencia y Santa Catalina 0.14027149
## Santander 0.18288801
## Sucre 0.13732155
## Tolima 0.16581456
## Valle del Cauca 0.19402048
## marg 0.19326246
## n.SINTOMAS, SIGNOS Y AFECCIONES MAL DEFINIDAS
## Antioquia 0.017378787
## Arauca 0.019495413
## Atlántico 0.025934538
## Bogotá, D. C. 0.018416762
## Bolívar 0.020303782
## Boyacá 0.025578136
## Caldas 0.008724100
## Caquetá 0.030721003
## Casanare 0.034136546
## Cauca 0.035096040
## Cesar 0.013239437
## Chocó 0.054892601
## Córdoba 0.031093117
## Cundinamarca 0.038253776
## Grupo Amazonia1 0.041176471
## Huila 0.011278195
## La Guajira 0.054304636
## Magdalena 0.020783198
## Meta 0.023793787
## Nariño 0.022713130
## Norte de Santander 0.009184142
## Putumayo 0.026615970
## Quindio 0.003181029
## Risaralda 0.004369993
## San Andrés, Providencia y Santa Catalina 0.004524887
## Santander 0.027491077
## Sucre 0.004418763
## Tolima 0.005803510
## Valle del Cauca 0.010005101
## marg 0.018850550
## n.TODAS LAS DEMAS CAUSAS
## Antioquia 0.2305235
## Arauca 0.1811927
## Atlántico 0.2766053
## Bogotá, D. C. 0.2572007
## Bolívar 0.2617793
## Boyacá 0.2902943
## Caldas 0.2420938
## Caquetá 0.2288401
## Casanare 0.1967871
## Cauca 0.2065449
## Cesar 0.2405634
## Chocó 0.1730310
## Córdoba 0.2480972
## Cundinamarca 0.2494764
## Grupo Amazonia1 0.2411765
## Huila 0.2346656
## La Guajira 0.2298013
## Magdalena 0.2458981
## Meta 0.2388191
## Nariño 0.2487554
## Norte de Santander 0.2632787
## Putumayo 0.1609632
## Quindio 0.2646038
## Risaralda 0.2674800
## San Andrés, Providencia y Santa Catalina 0.2307692
## Santander 0.2693161
## Sucre 0.2464310
## Tolima 0.2199807
## Valle del Cauca 0.2364735
## marg 0.2470171
Pero, ¿cuál es la distancia entre Bogotá y el Antioquia? Necesitamos un a medida de distancia entre categorías de filas o de columnas basada en los perfiles y que tenga propiedades métricas. Se emplea la distancia Ji-Cuadrado: la distancia Ji-Cuadrado entre dos filas se define como la distancia euclídea al cuadrado entre sus perfiles, ponderando inversamente por las frecuencias marginales de las columnas. Esta ponderación evita que las columnas más frecuentes tengan más peso.
\[\displaystyle \frac{(0.162-0.092)^2}{0.145}+\frac{(0.01155-0.020)^2}{0.018}+\frac{(0.065-0.102)^2}{0.06}+\frac{(0.22-0.25)^2}{0.19}+\frac{(0.017-0.018)^2}{0.018}\]
f.perfil<-data.frame(f.perfil)
sum((f.perfil[1,]-f.perfil[3,])^2/f.marginal)## [1] 0.09376799
library("gplots")##
## Attaching package: 'gplots'
## The following object is masked from 'package:stats':
##
## lowess
library("FactoMineR")##
## Attaching package: 'FactoMineR'
## The following object is masked from 'package:ade4':
##
## reconst
library("factoextra")## Welcome! Related Books: `Practical Guide To Cluster Analysis in R` at https://goo.gl/13EFCZ
mm<- as.table(mm)
res.ca <- CA(mm, graph = FALSE)
eig.val <- get_eigenvalue(res.ca)
eig.val## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 0.0202546140 45.836758 45.83676
## Dim.2 0.0115343443 26.102544 71.93930
## Dim.3 0.0068290792 15.454397 87.39370
## Dim.4 0.0034136574 7.725202 95.11890
## Dim.5 0.0014928417 3.378343 98.49724
## Dim.6 0.0006640464 1.502756 100.00000
fviz_screeplot(res.ca, addlabels = TRUE, ylim = c(0, 50))dim(mm)## [1] 29 7
1/(nrow(mm)-1)## [1] 0.03571429
Nuestros datos contienen 29 filas y 7 columnas.
Si los datos fueran aleatorios, el valor esperado del valor propio para cada eje sería 1/(nrow(mm)-1) = r 1/28 = 8,33% en términos de filas.
mean(res.ca$eig[,1])## [1] 0.007364764
Asimismo, el eje medio debe representar 1/(ncol(mm)-1) = 1/6 = 33,33% en términos de las 4 columnas.
fviz_screeplot(res.ca) +
geom_hline(yintercept=100*(1/6), linetype=2, color="red")fviz_ca_biplot(res.ca, repel = TRUE)fviz_ca_row(res.ca, repel = TRUE)fviz_ca_row(res.ca, col.row = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)library("corrplot")## corrplot 0.84 loaded
row <- get_ca_row(res.ca)
corrplot(row$cos2, is.corr=FALSE)fviz_contrib(res.ca, choice = "row", axes = 1, top = 10)fviz_contrib(res.ca, choice = "row", axes = 2, top = 10)fviz_ca_col(res.ca, col.col = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)fviz_cos2(res.ca, choice = "col", axes = 1:2)fviz_contrib(res.ca, choice = "col", axes = 1:2)fviz_ca_biplot(res.ca, map ="colgreen", arrow = c(TRUE, FALSE),
repel = TRUE)Con los datos del ejercicio desempeño municipal de DNP realice el analisis de correspondencias simples de una de las tablas de contingencia posible de las siguientes variables:
desempeno<-read.table("Desempeno municipal.csv",header=T,sep=",")
row.names(desempeno)<-desempeno$Codigo
desempeno$desempeno_cuartil<-cut(desempeno$Desempeno.Municipal,breaks = quantile(desempeno$Desempeno.Municipal, prob=c(0,0.25,0.5,0.75,1)),labels = paste("Cuartil", 1:4),include.lowest = TRUE)
desempeno$desempeno_decil<-cut(desempeno$Desempeno.Municipal,breaks = quantile(desempeno$Desempeno.Municipal, prob=seq(0,1,0.1)),labels = paste("Cuartil", 1:10),include.lowest = TRUE)
desempeno$Ingresos.tributarios.y.no.tributarios.per.cápita_cuartil<-cut(desempeno$Ingresos.tributarios.y.no.tributarios.per.cápita,breaks = quantile(desempeno$Ingresos.tributarios.y.no.tributarios.per.cápita, prob=c(0,0.25,0.5,0.75,1)),labels = paste("Cuartil", 1:4),include.lowest = TRUE)
# mm<-table(desempeno$Categoria.de.ruralidad,desempeno$Ingresos.tributarios.y.no.tributarios.per.cápita_cuartil)
mm<-table(desempeno$Departamento,desempeno$desempeno_decil)library(RColorBrewer)
mosaicplot((mm),las=2, col=brewer.pal(10,"Paired"), main="")# mosaicplot(~ Sex + Age + Survived, data = seis_ops, color = TRUE)