Introducción
La intoxicación alimentaria o la enfermedad transmitida por los alimentos pueden afectar a cualquier persona que ingiera alimentos que están contaminados con bacterias, virus, parásitos, toxinas u otras sustancias, pero algunas personas son más propensas a enfermarse o a padecer una enfermedad grave.
Los niños tienen un riesgo mayor de sufrir enfermedades transmitidas por los alimentos y otras complicaciones de salud relacionadas, ya que sus sistemas inmunitarios aún se están desarrollando. Los niños pequeños con sistemas inmunitarios en desarrollo no pueden combatir las infecciones como lo hacen los adultos. Además, los niños producen menos ácido estomacal, que mata las bacterias dañinas, por lo que suelen presentar síntomas como vómitos, diarrea, fiebre o dolor abdominal. En la mayoría de los casos, la intoxicación alimentaria es leve y desaparece sin tratamiento. Pero algunos casos los niños necesitan ir al hospital.
Para este caso se utilizaron datos que fueron extraidos de una encuesta realizada a una muestra de 55 niños de educación primaria que sufrieron intoxicación alimentaria. Se les preguntó sobre sus síntomas y sobre lo que comían.
Objetivo
- Encontrar y describir las relaciones existentes entre las categorías de las variables categóricas.
11 Variables de estudio:
| Variable | Tipo de variable |
|---|---|
| Nausea | Categorica |
| Vómitos | Categorica |
| Abdominales | Categorica |
| Fiebre | Categorica |
| Diarrea | Categorica |
| Papa | Categorica |
| Pez | Categorica |
| Mayonesa | Categorica |
| Calabacín | Categorica |
| Queso | Categorica |
| Helado | Categorica |
Lectura de Paquetes
library(pacman)
p_load("fastDummies","funModeling","FactoMineR","factoextra","dplyr","ggplot2","tidyverse","DT","ggthemes")
Lectura de Datos
datos <- read.csv("datos_encuesta_niños.csv")
# Elimina la primera columna
datos$X <- NULL
head(datos)
## Nausea Vómitos Abdominales Fiebre Diarrea Papa Pez Mayonesa Calabacín Queso
## 1 si no si si si si si si si si
## 2 no no no no no si si si si no
## 3 no si si si si si si si si si
## 4 no no no no no si si no si si
## 5 no si si si si si si si si si
## 6 no no si si si si no si si si
## Helado
## 1 si
## 2 si
## 3 si
## 4 si
## 5 si
## 6 si
# convirtiendo las variables a factor
datos$Nausea <- factor(datos$Nausea)
datos$Vómitos <- factor(datos$Vómitos)
datos$Abdominales <- factor(datos$Abdominales)
datos$Fiebre <- factor(datos$Fiebre)
datos$Diarrea <- factor(datos$Diarrea)
datos$Papa <- factor(datos$Papa)
datos$Pez <- factor(datos$Pez)
datos$Mayonesa <- factor(datos$Mayonesa)
datos$Calabacín <- factor(datos$Calabacín)
datos$Queso <- factor(datos$Queso)
datos$Helado <- factor(datos$Helado)
str(datos)
## 'data.frame': 55 obs. of 11 variables:
## $ Nausea : Factor w/ 2 levels "no","si": 2 1 1 1 1 1 1 2 2 1 ...
## $ Vómitos : Factor w/ 2 levels "no","si": 1 1 2 1 2 1 2 2 1 2 ...
## $ Abdominales: Factor w/ 2 levels "no","si": 2 1 2 1 2 2 2 2 2 1 ...
## $ Fiebre : Factor w/ 2 levels "no","si": 2 1 2 1 2 2 2 2 2 2 ...
## $ Diarrea : Factor w/ 2 levels "no","si": 2 1 2 1 2 2 2 2 2 2 ...
## $ Papa : Factor w/ 2 levels "no","si": 2 2 2 2 2 2 2 2 2 2 ...
## $ Pez : Factor w/ 2 levels "no","si": 2 2 2 2 2 1 2 2 2 2 ...
## $ Mayonesa : Factor w/ 2 levels "no","si": 2 2 2 1 2 2 2 2 2 2 ...
## $ Calabacín : Factor w/ 2 levels "no","si": 2 2 2 2 2 2 2 2 2 2 ...
## $ Queso : Factor w/ 2 levels "no","si": 2 1 2 2 2 2 2 2 2 2 ...
## $ Helado : Factor w/ 2 levels "no","si": 2 2 2 2 2 2 2 2 2 2 ...
Prueba de independencia Chi-cuadrado
\(H_o:\) Las variables son independientes
\(H_1:\) Las variables son dependientes
attach(datos)
chisq.test(Abdominales,Diarrea)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: Abdominales and Diarrea
## X-squared = 35.364, df = 1, p-value = 2.735e-09
chisq.test(Fiebre,Vómitos)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: Fiebre and Vómitos
## X-squared = 9.9033, df = 1, p-value = 0.00165
chisq.test(Abdominales,Mayonesa)
## Warning in chisq.test(Abdominales, Mayonesa): Chi-squared approximation may be
## incorrect
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: Abdominales and Mayonesa
## X-squared = 9.9202, df = 1, p-value = 0.001635
Interpretación:
Como la probabilidad es muy pequeña entonces es poco probable de que los datos vengan de una población donde son independientes.
Tabla disyuntiva (variables dicotomicas O Dummies)
dummy_cols(datos, c("Nausea","Vómitos","Abdominales","Fiebre","Diarrea","Papa","Pez",
"Mayonesa","Calabacín","Queso","Helado"))->tabla_disyuntiva
# se elimina las 12 primeras columnas dado que estas contienen las variables originales que no forman parte
# del formato de las variables que presenta nuestra matriz disyuntiva.
tabla_disyuntiva[,-c(0:11)]->tabla_disyuntiva ; tabla_disyuntiva
## Nausea_no Nausea_si Vómitos_no Vómitos_si Abdominales_no Abdominales_si
## 1 0 1 1 0 0 1
## 2 1 0 1 0 1 0
## 3 1 0 0 1 0 1
## 4 1 0 1 0 1 0
## 5 1 0 0 1 0 1
## 6 1 0 1 0 0 1
## 7 1 0 0 1 0 1
## 8 0 1 0 1 0 1
## 9 0 1 1 0 0 1
## 10 1 0 0 1 1 0
## 11 0 1 0 1 0 1
## 12 1 0 0 1 0 1
## 13 1 0 1 0 0 1
## 14 1 0 1 0 1 0
## 15 1 0 1 0 1 0
## 16 1 0 0 1 0 1
## 17 1 0 0 1 0 1
## 18 0 1 0 1 0 1
## 19 1 0 0 1 0 1
## 20 1 0 1 0 1 0
## 21 1 0 1 0 0 1
## 22 1 0 1 0 0 1
## 23 1 0 0 1 0 1
## 24 1 0 0 1 0 1
## 25 1 0 1 0 0 1
## 26 1 0 1 0 1 0
## 27 1 0 0 1 0 1
## 28 1 0 0 1 0 1
## 29 1 0 1 0 1 0
## 30 0 1 0 1 0 1
## 31 1 0 1 0 0 1
## 32 1 0 1 0 1 0
## 33 1 0 1 0 1 0
## 34 1 0 1 0 1 0
## 35 0 1 1 0 0 1
## 36 0 1 0 1 0 1
## 37 0 1 1 0 0 1
## 38 1 0 1 0 1 0
## 39 1 0 1 0 0 1
## 40 0 1 0 1 0 1
## 41 0 1 1 0 0 1
## 42 1 0 1 0 1 0
## 43 1 0 1 0 0 1
## 44 0 1 0 1 0 1
## 45 1 0 0 1 0 1
## 46 1 0 1 0 0 1
## 47 1 0 1 0 1 0
## 48 1 0 1 0 1 0
## 49 1 0 1 0 1 0
## 50 1 0 1 0 0 1
## 51 1 0 1 0 1 0
## 52 1 0 1 0 0 1
## 53 1 0 1 0 1 0
## 54 1 0 0 1 0 1
## 55 1 0 0 1 0 1
## Fiebre_no Fiebre_si Diarrea_no Diarrea_si Papa_no Papa_si Pez_no Pez_si
## 1 0 1 0 1 0 1 0 1
## 2 1 0 1 0 0 1 0 1
## 3 0 1 0 1 0 1 0 1
## 4 1 0 1 0 0 1 0 1
## 5 0 1 0 1 0 1 0 1
## 6 0 1 0 1 0 1 1 0
## 7 0 1 0 1 0 1 0 1
## 8 0 1 0 1 0 1 0 1
## 9 0 1 0 1 0 1 0 1
## 10 0 1 0 1 0 1 0 1
## 11 0 1 0 1 0 1 0 1
## 12 1 0 1 0 0 1 0 1
## 13 0 1 0 1 0 1 0 1
## 14 1 0 1 0 0 1 0 1
## 15 1 0 1 0 0 1 0 1
## 16 0 1 0 1 0 1 0 1
## 17 0 1 0 1 0 1 0 1
## 18 0 1 0 1 0 1 0 1
## 19 0 1 0 1 0 1 0 1
## 20 1 0 1 0 0 1 0 1
## 21 0 1 0 1 0 1 0 1
## 22 0 1 0 1 0 1 0 1
## 23 0 1 0 1 0 1 0 1
## 24 1 0 0 1 0 1 0 1
## 25 0 1 0 1 0 1 0 1
## 26 1 0 1 0 0 1 0 1
## 27 0 1 1 0 0 1 0 1
## 28 0 1 0 1 0 1 0 1
## 29 1 0 1 0 0 1 0 1
## 30 0 1 0 1 0 1 0 1
## 31 0 1 0 1 0 1 0 1
## 32 1 0 1 0 0 1 0 1
## 33 1 0 1 0 0 1 0 1
## 34 1 0 1 0 0 1 0 1
## 35 0 1 0 1 1 0 0 1
## 36 0 1 0 1 0 1 0 1
## 37 1 0 0 1 1 0 0 1
## 38 1 0 1 0 0 1 0 1
## 39 0 1 0 1 1 0 0 1
## 40 0 1 0 1 0 1 0 1
## 41 0 1 0 1 0 1 0 1
## 42 1 0 1 0 0 1 0 1
## 43 0 1 0 1 0 1 0 1
## 44 0 1 0 1 0 1 0 1
## 45 0 1 0 1 0 1 0 1
## 46 0 1 0 1 0 1 0 1
## 47 1 0 1 0 0 1 0 1
## 48 1 0 1 0 0 1 0 1
## 49 1 0 1 0 0 1 0 1
## 50 0 1 0 1 0 1 0 1
## 51 1 0 1 0 0 1 0 1
## 52 0 1 0 1 0 1 0 1
## 53 1 0 1 0 0 1 0 1
## 54 0 1 1 0 0 1 0 1
## 55 0 1 0 1 0 1 0 1
## Mayonesa_no Mayonesa_si Calabacín_no Calabacín_si Queso_no Queso_si
## 1 0 1 0 1 0 1
## 2 0 1 0 1 1 0
## 3 0 1 0 1 0 1
## 4 1 0 0 1 0 1
## 5 0 1 0 1 0 1
## 6 0 1 0 1 0 1
## 7 0 1 0 1 0 1
## 8 0 1 0 1 0 1
## 9 0 1 0 1 0 1
## 10 0 1 0 1 0 1
## 11 0 1 0 1 0 1
## 12 0 1 0 1 0 1
## 13 0 1 0 1 0 1
## 14 1 0 0 1 0 1
## 15 1 0 0 1 1 0
## 16 0 1 0 1 0 1
## 17 0 1 0 1 1 0
## 18 0 1 0 1 0 1
## 19 0 1 0 1 0 1
## 20 1 0 0 1 0 1
## 21 0 1 0 1 0 1
## 22 0 1 0 1 0 1
## 23 0 1 1 0 0 1
## 24 0 1 0 1 0 1
## 25 0 1 0 1 1 0
## 26 0 1 0 1 0 1
## 27 0 1 0 1 0 1
## 28 1 0 1 0 0 1
## 29 0 1 0 1 0 1
## 30 0 1 0 1 0 1
## 31 1 0 0 1 0 1
## 32 1 0 0 1 1 0
## 33 0 1 0 1 0 1
## 34 0 1 0 1 0 1
## 35 0 1 0 1 0 1
## 36 0 1 0 1 0 1
## 37 0 1 0 1 0 1
## 38 0 1 1 0 1 0
## 39 0 1 0 1 0 1
## 40 0 1 0 1 0 1
## 41 0 1 0 1 0 1
## 42 0 1 0 1 0 1
## 43 0 1 0 1 0 1
## 44 0 1 1 0 0 1
## 45 0 1 1 0 0 1
## 46 0 1 0 1 0 1
## 47 1 0 0 1 0 1
## 48 0 1 0 1 0 1
## 49 0 1 0 1 0 1
## 50 0 1 0 1 0 1
## 51 1 0 0 1 0 1
## 52 0 1 0 1 0 1
## 53 1 0 0 1 1 0
## 54 0 1 0 1 0 1
## 55 0 1 0 1 0 1
## Helado_no Helado_si
## 1 0 1
## 2 0 1
## 3 0 1
## 4 0 1
## 5 0 1
## 6 0 1
## 7 0 1
## 8 0 1
## 9 0 1
## 10 0 1
## 11 0 1
## 12 0 1
## 13 0 1
## 14 0 1
## 15 0 1
## 16 0 1
## 17 0 1
## 18 0 1
## 19 0 1
## 20 0 1
## 21 0 1
## 22 1 0
## 23 0 1
## 24 0 1
## 25 0 1
## 26 0 1
## 27 0 1
## 28 0 1
## 29 0 1
## 30 0 1
## 31 0 1
## 32 0 1
## 33 0 1
## 34 0 1
## 35 0 1
## 36 0 1
## 37 0 1
## 38 0 1
## 39 0 1
## 40 0 1
## 41 0 1
## 42 0 1
## 43 0 1
## 44 1 0
## 45 0 1
## 46 0 1
## 47 1 0
## 48 0 1
## 49 0 1
## 50 0 1
## 51 0 1
## 52 0 1
## 53 1 0
## 54 0 1
## 55 0 1
Interpretación de la tabla
Este caso i(1,2,3,…,55) es el individuo u observación y j(1,2,3,…,22) son las categorias.
- Es 0 cuando el individuo i no está en la categoria j.
- Es 1 cuando el individuo i si está en la categoria j.
El individuo 1 presenta lo siguiente:
- Síntomas: Si tiene nauseas, no tiene vómitos, si presenta dolor
abdominal, si presenta fiebre y también diarrea.
- Comida ingerida: Si ha comido papa, pescado, mayonesa, calabacín,
queso y helado.
El individuo 2 presenta lo siguiente:
- Síntomas: No tiene nauseas, no tiene vómitos, no presenta dolor
abdominal, no presenta fiebre y tampoco presenta diarrea.
- Comida ingerida: Si ha comido papa, pescado, mayonesa, calabacín y
helado pero no ha comido queso.
Descripción de los datos
df_status(tabla_disyuntiva)
## variable q_zeros p_zeros q_na p_na q_inf p_inf type unique
## 1 Nausea_no 12 21.82 0 0 0 0 integer 2
## 2 Nausea_si 43 78.18 0 0 0 0 integer 2
## 3 Vómitos_no 22 40.00 0 0 0 0 integer 2
## 4 Vómitos_si 33 60.00 0 0 0 0 integer 2
## 5 Abdominales_no 37 67.27 0 0 0 0 integer 2
## 6 Abdominales_si 18 32.73 0 0 0 0 integer 2
## 7 Fiebre_no 35 63.64 0 0 0 0 integer 2
## 8 Fiebre_si 20 36.36 0 0 0 0 integer 2
## 9 Diarrea_no 35 63.64 0 0 0 0 integer 2
## 10 Diarrea_si 20 36.36 0 0 0 0 integer 2
## 11 Papa_no 52 94.55 0 0 0 0 integer 2
## 12 Papa_si 3 5.45 0 0 0 0 integer 2
## 13 Pez_no 54 98.18 0 0 0 0 integer 2
## 14 Pez_si 1 1.82 0 0 0 0 integer 2
## 15 Mayonesa_no 45 81.82 0 0 0 0 integer 2
## 16 Mayonesa_si 10 18.18 0 0 0 0 integer 2
## 17 Calabacín_no 50 90.91 0 0 0 0 integer 2
## 18 Calabacín_si 5 9.09 0 0 0 0 integer 2
## 19 Queso_no 48 87.27 0 0 0 0 integer 2
## 20 Queso_si 7 12.73 0 0 0 0 integer 2
## 21 Helado_no 51 92.73 0 0 0 0 integer 2
## 22 Helado_si 4 7.27 0 0 0 0 integer 2
Interpretación
Para la categoría de los que no presentan nauseas:
En total 43(55-12) niños respondieron que no presentaron nauseas.
El 78.18(100-21.82)% de los niños respondieron que no presentan nauseas.
Esta categoría no presenta na y tampoco valores infinitos.
Para la categoría de los que si presentan nauseas:
En total 12(55-43) niños respondieron que si presentan nauseas.
El 21.82(100-78.18)% de los niños respondieron que si presentan nauseas.
Esta categoría no presenta na y tampoco valores infinitos.
# covertir a matriz disyuntiva
matriz_disyuntiva <- as.matrix(tabla_disyuntiva)
Matriz de Burt
- La matriz de burt resulta del producto de la transpuesta de la matriz disyuntiva con la matriz disyuntica B = A´x A
t(matriz_disyuntiva) %*% (matriz_disyuntiva) -> matriz_burt ; matriz_burt
## Nausea_no Nausea_si Vómitos_no Vómitos_si Abdominales_no
## Nausea_no 43 0 28 15 18
## Nausea_si 0 12 5 7 0
## Vómitos_no 28 5 33 0 17
## Vómitos_si 15 7 0 22 1
## Abdominales_no 18 0 17 1 18
## Abdominales_si 25 12 16 21 0
## Fiebre_no 19 1 18 2 17
## Fiebre_si 24 11 15 20 1
## Diarrea_no 20 0 17 3 17
## Diarrea_si 23 12 16 19 1
## Papa_no 1 2 3 0 0
## Papa_si 42 10 30 22 18
## Pez_no 1 0 1 0 0
## Pez_si 42 12 32 22 18
## Mayonesa_no 10 0 9 1 8
## Mayonesa_si 33 12 24 21 10
## Calabacín_no 4 1 1 4 1
## Calabacín_si 39 11 32 18 17
## Queso_no 7 0 6 1 5
## Queso_si 36 12 27 21 13
## Helado_no 3 1 3 1 2
## Helado_si 40 11 30 21 16
## Abdominales_si Fiebre_no Fiebre_si Diarrea_no Diarrea_si Papa_no
## Nausea_no 25 19 24 20 23 1
## Nausea_si 12 1 11 0 12 2
## Vómitos_no 16 18 15 17 16 3
## Vómitos_si 21 2 20 3 19 0
## Abdominales_no 0 17 1 17 1 0
## Abdominales_si 37 3 34 3 34 3
## Fiebre_no 3 20 0 18 2 1
## Fiebre_si 34 0 35 2 33 2
## Diarrea_no 3 18 2 20 0 0
## Diarrea_si 34 2 33 0 35 3
## Papa_no 3 1 2 0 3 3
## Papa_si 34 19 33 20 32 0
## Pez_no 1 0 1 0 1 0
## Pez_si 36 20 34 20 34 3
## Mayonesa_no 2 8 2 8 2 0
## Mayonesa_si 35 12 33 12 33 3
## Calabacín_no 4 1 4 1 4 0
## Calabacín_si 33 19 31 19 31 3
## Queso_no 2 5 2 5 2 0
## Queso_si 35 15 33 15 33 3
## Helado_no 2 2 2 2 2 0
## Helado_si 35 18 33 18 33 3
## Papa_si Pez_no Pez_si Mayonesa_no Mayonesa_si Calabacín_no
## Nausea_no 42 1 42 10 33 4
## Nausea_si 10 0 12 0 12 1
## Vómitos_no 30 1 32 9 24 1
## Vómitos_si 22 0 22 1 21 4
## Abdominales_no 18 0 18 8 10 1
## Abdominales_si 34 1 36 2 35 4
## Fiebre_no 19 0 20 8 12 1
## Fiebre_si 33 1 34 2 33 4
## Diarrea_no 20 0 20 8 12 1
## Diarrea_si 32 1 34 2 33 4
## Papa_no 0 0 3 0 3 0
## Papa_si 52 1 51 10 42 5
## Pez_no 1 1 0 0 1 0
## Pez_si 51 0 54 10 44 5
## Mayonesa_no 10 0 10 10 0 1
## Mayonesa_si 42 1 44 0 45 4
## Calabacín_no 5 0 5 1 4 5
## Calabacín_si 47 1 49 9 41 0
## Queso_no 7 0 7 3 4 1
## Queso_si 45 1 47 7 41 4
## Helado_no 4 0 4 2 2 1
## Helado_si 48 1 50 8 43 4
## Calabacín_si Queso_no Queso_si Helado_no Helado_si
## Nausea_no 39 7 36 3 40
## Nausea_si 11 0 12 1 11
## Vómitos_no 32 6 27 3 30
## Vómitos_si 18 1 21 1 21
## Abdominales_no 17 5 13 2 16
## Abdominales_si 33 2 35 2 35
## Fiebre_no 19 5 15 2 18
## Fiebre_si 31 2 33 2 33
## Diarrea_no 19 5 15 2 18
## Diarrea_si 31 2 33 2 33
## Papa_no 3 0 3 0 3
## Papa_si 47 7 45 4 48
## Pez_no 1 0 1 0 1
## Pez_si 49 7 47 4 50
## Mayonesa_no 9 3 7 2 8
## Mayonesa_si 41 4 41 2 43
## Calabacín_no 0 1 4 1 4
## Calabacín_si 50 6 44 3 47
## Queso_no 6 7 0 1 6
## Queso_si 44 0 48 3 45
## Helado_no 3 1 3 4 0
## Helado_si 47 6 45 0 51
Correspondencias Múltiple con el paquete FactoMineR
acm <- CA(matriz_burt,graph=F);acm
## **Results of the Correspondence Analysis (CA)**
## The row variable has 22 categories; the column variable has 22 categories
## The chi square of independence between the two variables is equal to 1129.964 (p-value = 5.353199e-62 ).
## *The results are available in the following objects:
##
## name description
## 1 "$eig" "eigenvalues"
## 2 "$col" "results for the columns"
## 3 "$col$coord" "coord. for the columns"
## 4 "$col$cos2" "cos2 for the columns"
## 5 "$col$contrib" "contributions of the columns"
## 6 "$row" "results for the rows"
## 7 "$row$coord" "coord. for the rows"
## 8 "$row$cos2" "cos2 for the rows"
## 9 "$row$contrib" "contributions of the rows"
## 10 "$call" "summary called parameters"
## 11 "$call$marge.col" "weights of the columns"
## 12 "$call$marge.row" "weights of the rows"
# autovalores
acm$eig
## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 1.123801e-01 6.618701e+01 66.18701
## dim 2 1.667709e-02 9.822082e+00 76.00909
## dim 3 1.152370e-02 6.786959e+00 82.79605
## dim 4 9.192879e-03 5.414208e+00 88.21026
## dim 5 6.214605e-03 3.660133e+00 91.87039
## dim 6 5.053761e-03 2.976446e+00 94.84684
## dim 7 3.619924e-03 2.131979e+00 96.97882
## dim 8 3.110628e-03 1.832025e+00 98.81084
## dim 9 1.697916e-03 9.999990e-01 99.81084
## dim 10 1.700829e-04 1.001714e-01 99.91101
## dim 11 1.510953e-04 8.898857e-02 100.00000
## dim 12 5.114318e-33 3.012112e-30 100.00000
## dim 13 1.897567e-33 1.117585e-30 100.00000
## dim 14 1.216386e-33 7.163988e-31 100.00000
## dim 15 5.026050e-34 2.960126e-31 100.00000
## dim 16 3.096799e-34 1.823881e-31 100.00000
## dim 17 1.956564e-34 1.152331e-31 100.00000
## dim 18 1.241575e-34 7.312338e-32 100.00000
## dim 19 8.519966e-35 5.017891e-32 100.00000
## dim 20 4.759511e-35 2.803146e-32 100.00000
## dim 21 2.116069e-35 1.246273e-32 100.00000
Varianza Explicada
DT::datatable(data =round(acm$eig[,1:2],4),
extensions = 'Scroller',
options = list(dom='tp',
class = 'stripe compact hover cell-border'))
# Scree Plot de los Autovalores
factoextra::fviz_eig(acm, addlabels = TRUE, ylim = c(0, 70), barcolor="red4", barfill="red4", linecolor="black")+
ggthemes::theme_fivethirtyeight(base_size =20, base_family = "serif") +
ggplot2::theme(panel.grid.major = ggplot2::element_blank(),
panel.grid.minor = ggplot2::element_blank(),
plot.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
panel.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
axis.title.y = ggplot2::element_text(),
axis.title.x = ggplot2::element_text()) +
ggplot2::labs(title = "Varianza Explicada",
subtitle = "Por cada Dimensión")+
ggplot2::ylab('% Variación Explicada') +
ggplot2::xlab("Dimensiones") +
ggplot2::geom_hline(yintercept = (100/11), size=1)
Interpretación * En la gráfica podemos ver la varianza explicada de cada dimensión de las 10 dimensiones que mas aportan del total de 22 dimensiones.
- En la linea horizontal de color negro se muestra el valor de la varianza explicada que tomaría cada dimensión si las 11 aportaran lo mismo.
Varianza Acumulada Explicada
acumulado <- acm$eig[1:11,3]
dimensión <- c(1:11)
datos1 <- data.frame(cbind(dimensión, acumulado))
DT::datatable(data =round(datos1[,1:2],4),
extensions = 'Scroller',
options = list(dom='tp',
class = 'stripe compact hover cell-border'))
Varianza Acumulada Explicada
ggplot2::ggplot(data = datos1, ggplot2::aes(x=dimensión, y=acumulado))+
ggplot2::geom_bar(stat = "identity", fill="red4", color="red4") +
ggplot2::geom_line(color="black")+
ggplot2::geom_point(color="black") +
ggplot2::geom_hline(yintercept = 80, size=1) +
ggplot2::geom_text(label= paste(round(acumulado,1),"%"), color="black", size=3, vjust = 1.4) +
ggthemes::theme_fivethirtyeight(base_size =17, base_family = "serif") +
ggplot2::theme(panel.grid.major = ggplot2::element_blank(),
panel.grid.minor = ggplot2::element_blank(),
plot.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
panel.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
axis.title.y = ggplot2::element_text(),
axis.title.x = ggplot2::element_text()) +
ggplot2::labs(title = "Varianza Acumulada Explicada",
subtitle = "Por cada Dimensión")+
ggplot2::ylab('% Variación Explicada') +
ggplot2::xlab("Dimensiones") +
ggplot2::scale_x_continuous(breaks = c(1:9))
Interpretación
- En esta gráfica de barras podemos observar la varianza explicada pero acumulada de las 12 dimensiones que aportan algo.
- En la linea horizontal nos muestra hasta que dimensiones obtenemos cerca del 80% de la varianza explicada de los datos.
- Además apartir de de la 3ra dimensión el crecimiento es menor a las demas dimensiones.
- Con estos criterios podemos decir que con 2 dimensiones es sufiente para el análisis de los datos.
Interpretación de los Indicadores del ACM
summary(acm,nb.dec = 3, ncp = 2)
##
## Call:
## CA(X = matriz_burt, graph = F)
##
## The chi square of independence between the two variables is equal to 1129.964 (p-value = 5.353199e-62 ).
##
## Eigenvalues
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7
## Variance 0.112 0.017 0.012 0.009 0.006 0.005 0.004
## % of var. 66.187 9.822 6.787 5.414 3.660 2.976 2.132
## Cumulative % of var. 66.187 76.009 82.796 88.210 91.870 94.847 96.979
## Dim.8 Dim.9 Dim.10 Dim.11 Dim.12 Dim.13 Dim.14
## Variance 0.003 0.002 0.000 0.000 0.000 0.000 0.000
## % of var. 1.832 1.000 0.100 0.089 0.000 0.000 0.000
## Cumulative % of var. 98.811 99.811 99.911 100.000 100.000 100.000 100.000
## Dim.15 Dim.16 Dim.17 Dim.18 Dim.19 Dim.20 Dim.21
## Variance 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## % of var. 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## Cumulative % of var. 100.000 100.000 100.000 100.000 100.000 100.000 100.000
##
## Rows (the 10 first)
## Iner*1000 Dim.1 ctr cos2 Dim.2 ctr cos2
## Nausea_no | 2.895 | 0.155 1.516 0.588 | 0.044 0.811 0.047 |
## Nausea_si | 10.375 | -0.555 5.432 0.588 | -0.156 2.906 0.047 |
## Vómitos_no | 6.251 | 0.277 3.734 0.671 | -0.147 7.072 0.189 |
## Vómitos_si | 9.377 | -0.416 5.601 0.671 | 0.221 10.608 0.189 |
## Abdominales_no | 17.649 | 0.763 15.418 0.982 | -0.013 0.029 0.000 |
## Abdominales_si | 8.586 | -0.371 7.500 0.982 | 0.006 0.014 0.000 |
## Fiebre_no | 15.871 | 0.678 13.541 0.959 | -0.063 0.783 0.008 |
## Fiebre_si | 9.069 | -0.388 7.738 0.959 | 0.036 0.447 0.008 |
## Diarrea_no | 16.039 | 0.685 13.797 0.967 | -0.001 0.000 0.000 |
## Diarrea_si | 9.165 | -0.391 7.884 0.967 | 0.001 0.000 0.000 |
##
## Columns (the 10 first)
## Iner*1000 Dim.1 ctr cos2 Dim.2 ctr cos2
## Nausea_no | 2.895 | 0.155 1.516 0.588 | 0.044 0.811 0.047 |
## Nausea_si | 10.375 | -0.555 5.432 0.588 | -0.156 2.906 0.047 |
## Vómitos_no | 6.251 | 0.277 3.734 0.671 | -0.147 7.072 0.189 |
## Vómitos_si | 9.377 | -0.416 5.601 0.671 | 0.221 10.608 0.189 |
## Abdominales_no | 17.649 | 0.763 15.418 0.982 | -0.013 0.029 0.000 |
## Abdominales_si | 8.586 | -0.371 7.500 0.982 | 0.006 0.014 0.000 |
## Fiebre_no | 15.871 | 0.678 13.541 0.959 | -0.063 0.783 0.008 |
## Fiebre_si | 9.069 | -0.388 7.738 0.959 | 0.036 0.447 0.008 |
## Diarrea_no | 16.039 | 0.685 13.797 0.967 | -0.001 0.000 0.000 |
## Diarrea_si | 9.165 | -0.391 7.884 0.967 | 0.001 0.000 0.000 |
Contribuciones Absolutas
factoextra::fviz_contrib(acm,axes = 1, fill = "red4", color = "red4") +
ggthemes::theme_fivethirtyeight(base_size =16, base_family = "serif") +
ggplot2::theme(panel.grid.major = ggplot2::element_blank(),
panel.grid.minor = ggplot2::element_blank(),
axis.text.x = ggplot2::element_text(angle=40, hjust=1),
plot.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
panel.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
axis.title.y = ggplot2::element_text(),
axis.title.x = ggplot2::element_text())+
ggplot2::labs(title = "Contribución de Categorias", subtitle = "A la Dimensión 1")+
ggplot2::ylab('% Contribución') +
ggplot2::xlab("Categorias")
Interpretación * Las gráfica muestra la contribución de las 22 diferentes categorías a la respectiva dimensión, la linea roja representa el valor de la contribución de las categorías si todas aportaran lo mismo.
- El 15.5% de la inercia (variabilidad) de la dimension 1 es explicada por los que no presentan dolor Abdominal seguido de los que no presentan Diarrea y Fiebre con 13.5%.
- Las variables Pez, Calabacín y Papa no contribuyen a la dimension 1.
factoextra::fviz_contrib(acm, axes = 2, fill = "red4", color = "red4") +
ggthemes::theme_fivethirtyeight(base_size =16, base_family = "serif") +
ggplot2::theme(panel.grid.major = ggplot2::element_blank(),
panel.grid.minor = ggplot2::element_blank(),
axis.text.x = ggplot2::element_text(angle=40, hjust=1),
plot.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
panel.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
axis.title.y = ggplot2::element_text(),
axis.title.x = ggplot2::element_text()) +
ggplot2::labs(title = "Contribución de Categorias", subtitle = "A la Dimensión 2")+
ggplot2::ylab('% Contribución') +
ggplot2::xlab("Categorias")
Interpretación * Las gráfica muestra la contribución de las 22 diferentes categorias a la respectiva dimensión, la linea roja representa el valor de la contribución de las categorías si todas aportaran lo mismo.
El 29% de la inercia (variabilidad) de la dimensión 2 es explicada por la categoría de los que no comen calabacín seguido de los que no comen papa con un 26%.
Las categorías de las variables Diarrea, Abdominal y Pez no contribuyen a la dimension 2.
Contribuciones relativas
row <- get_ca_row(acm)
col <- get_ca_col(acm)
row$cos2
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Nausea_no 0.58839687 4.671545e-02 1.858788e-01 0.002682852 1.051316e-02
## Nausea_si 0.58839687 4.671545e-02 1.858788e-01 0.002682852 1.051316e-02
## Vómitos_no 0.67120804 1.886734e-01 6.686919e-03 0.062630370 1.892474e-03
## Vómitos_si 0.67120804 1.886734e-01 6.686919e-03 0.062630370 1.892474e-03
## Abdominales_no 0.98170863 2.781528e-04 4.696213e-06 0.003813770 6.487527e-04
## Abdominales_si 0.98170863 2.781528e-04 4.696213e-06 0.003813770 6.487527e-04
## Fiebre_no 0.95886575 8.228081e-03 2.115846e-03 0.007184734 5.606949e-05
## Fiebre_si 0.95886575 8.228081e-03 2.115846e-03 0.007184734 5.606949e-05
## Diarrea_no 0.96669435 2.022966e-06 1.523514e-03 0.011499899 1.788351e-03
## Diarrea_si 0.96669435 2.022966e-06 1.523514e-03 0.011499899 1.788351e-03
## Papa_no 0.08866774 4.683505e-01 2.595814e-01 0.007113821 7.661623e-02
## Papa_si 0.08866774 4.683505e-01 2.595814e-01 0.007113821 7.661623e-02
## Pez_no 0.02485357 3.657755e-02 2.813444e-01 0.572208322 3.637178e-04
## Pez_si 0.02485357 3.657755e-02 2.813444e-01 0.572208322 3.637178e-04
## Mayonesa_no 0.75648300 2.637172e-02 2.449869e-02 0.017495759 1.035692e-02
## Mayonesa_si 0.75648300 2.637172e-02 2.449869e-02 0.017495759 1.035692e-02
## Calabacín_no 0.04964651 5.592211e-01 5.523308e-02 0.009744231 9.695350e-02
## Calabacín_si 0.04964651 5.592211e-01 5.523308e-02 0.009744231 9.695350e-02
## Queso_no 0.50442868 5.345034e-02 9.712989e-03 0.014049315 2.515370e-01
## Queso_si 0.50442868 5.345034e-02 9.712989e-03 0.014049315 2.515370e-01
## Helado_no 0.09577659 1.779062e-01 3.026967e-01 0.215652290 1.286114e-01
## Helado_si 0.09577659 1.779062e-01 3.026967e-01 0.215652290 1.286114e-01
col$cos2
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Nausea_no 0.58839687 4.671545e-02 1.858788e-01 0.002682852 1.051316e-02
## Nausea_si 0.58839687 4.671545e-02 1.858788e-01 0.002682852 1.051316e-02
## Vómitos_no 0.67120804 1.886734e-01 6.686919e-03 0.062630370 1.892474e-03
## Vómitos_si 0.67120804 1.886734e-01 6.686919e-03 0.062630370 1.892474e-03
## Abdominales_no 0.98170863 2.781528e-04 4.696213e-06 0.003813770 6.487527e-04
## Abdominales_si 0.98170863 2.781528e-04 4.696213e-06 0.003813770 6.487527e-04
## Fiebre_no 0.95886575 8.228081e-03 2.115846e-03 0.007184734 5.606949e-05
## Fiebre_si 0.95886575 8.228081e-03 2.115846e-03 0.007184734 5.606949e-05
## Diarrea_no 0.96669435 2.022966e-06 1.523514e-03 0.011499899 1.788351e-03
## Diarrea_si 0.96669435 2.022966e-06 1.523514e-03 0.011499899 1.788351e-03
## Papa_no 0.08866774 4.683505e-01 2.595814e-01 0.007113821 7.661623e-02
## Papa_si 0.08866774 4.683505e-01 2.595814e-01 0.007113821 7.661623e-02
## Pez_no 0.02485357 3.657755e-02 2.813444e-01 0.572208322 3.637178e-04
## Pez_si 0.02485357 3.657755e-02 2.813444e-01 0.572208322 3.637178e-04
## Mayonesa_no 0.75648300 2.637172e-02 2.449869e-02 0.017495759 1.035692e-02
## Mayonesa_si 0.75648300 2.637172e-02 2.449869e-02 0.017495759 1.035692e-02
## Calabacín_no 0.04964651 5.592211e-01 5.523308e-02 0.009744231 9.695350e-02
## Calabacín_si 0.04964651 5.592211e-01 5.523308e-02 0.009744231 9.695350e-02
## Queso_no 0.50442868 5.345034e-02 9.712989e-03 0.014049315 2.515370e-01
## Queso_si 0.50442868 5.345034e-02 9.712989e-03 0.014049315 2.515370e-01
## Helado_no 0.09577659 1.779062e-01 3.026967e-01 0.215652290 1.286114e-01
## Helado_si 0.09577659 1.779062e-01 3.026967e-01 0.215652290 1.286114e-01
factoextra::fviz_cos2(acm,axes = 1, choice = "row", fill = "#5F9EA0", color = "#5F9EA0") +
ggthemes::theme_fivethirtyeight(base_size =16, base_family = "serif") +
ggplot2::theme(panel.grid.major = ggplot2::element_blank(),
panel.grid.minor = ggplot2::element_blank(),
axis.text.x = ggplot2::element_text(angle=40, hjust=1),
plot.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
panel.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
axis.title.y = ggplot2::element_text(),
axis.title.x = ggplot2::element_text())+
ggplot2::labs(title = "Contribución de la Dimensión 1", subtitle = "A las categorias")+
ggplot2::ylab('Contribución') +
ggplot2::xlab("Categorias")
Interpretación
La dimensión 1 contribuye en un 98.17 % a la inercia de los que no presentan dolor Abdominal.
La dimensión 1 contribuye en un 96.67 % a la inercia de los que si presentan Diarrea.
La dimensión 1 contribuye en un 95.88 % a la inercia de los que no presentan fiebre.
factoextra::fviz_cos2(acm,axes = 2, choice = "row", fill = "#5F9EA0", color = "#5F9EA0") +
ggthemes::theme_fivethirtyeight(base_size =16, base_family = "serif") +
ggplot2::theme(panel.grid.major = ggplot2::element_blank(),
panel.grid.minor = ggplot2::element_blank(),
axis.text.x = ggplot2::element_text(angle=40, hjust=1),
plot.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
panel.background = ggplot2::element_rect(fill = 'white', colour = 'white'),
axis.title.y = ggplot2::element_text(),
axis.title.x = ggplot2::element_text())+
ggplot2::labs(title = "Contribución de la Dimensión 2 ", subtitle = "A las categorias")+
ggplot2::ylab('Contribución') +
ggplot2::xlab("Categorias")
Interpretación
La dimensión 2 contribuye en un 55.9 % a la inercia de los que si comen Calabacín.
La dimensión 2 contribuye en un 46.68 % a la inercia de los que no comen papa.
Mapa Perceptual
res.mca <- MCA(datos,method = 'Burt')
Interpretación para las categorías:
Los niños que comieron queso y mayonesa están asociados a los niños que presentaron diarrea, dolor abdominal, vómitos y fiebre.
Los niños que no comieron papa y pescado están asociados con los niños que no vomitaron.
Los niños que presentaron dolor abdominal y fiebre están asociados con los niños que presentaron nauseas y vómitos.
Interpretación para las variables:
Las variables fiebre,Abdominal, diarrea, Mayonesa y Nausea está siendo mejor explicada por la dimensión 1.
Las variables Calabacín, papa y Helado está siendo mejor explicadas por la dimensión 2.
Categorías con su respectivo componente
contri_abs <- data.frame(acm$row$contrib[,1:2])
contri_abs %>% rename('contri_abs1'= Dim.1,'contri_abs2'= Dim.2 )->contri_abs
contri_rel<- data.frame(acm$row$cos2[,1:2])
contri_rel %>% rename('contri_rel1'= Dim.1,'contri_rel2'= Dim.2 )->contri_rel
dimen <- data.frame(acm$row$coord[,1:2])
resumen <- cbind(dimen,contri_abs,contri_rel); resumen
## Dim.1 Dim.2 contri_abs1 contri_abs2 contri_rel1
## Nausea_no 0.154817098 0.0436228456 1.515868554 8.110001e-01 0.58839687
## Nausea_si -0.554761267 -0.1563151966 5.431862319 2.906084e+00 0.58839687
## Vómitos_no 0.277353205 -0.1470482930 3.733666829 7.072263e+00 0.67120804
## Vómitos_si -0.416029807 0.2205724395 5.600500244 1.060839e+01 0.67120804
## Abdominales_no 0.763123851 -0.0128453342 15.417636578 2.943661e-02 0.98170863
## Abdominales_si -0.371249441 0.0062490815 7.500471849 1.432051e-02 0.98170863
## Fiebre_no 0.678480422 -0.0628503510 13.541285078 7.830146e-01 0.95886575
## Fiebre_si -0.387703098 0.0359144863 7.737877188 4.474369e-01 0.95886575
## Diarrea_no 0.684844393 -0.0009906988 13.796503952 1.945529e-04 0.96669435
## Diarrea_si -0.391339653 0.0005661136 7.883716544 1.111731e-04 0.96669435
## Papa_no -0.409525764 -0.9412043063 0.740012332 2.633986e+01 0.08866774
## Papa_si 0.023626486 0.0543002484 0.042693019 1.519608e+00 0.08866774
## Pez_no -0.359432446 -0.4360439009 0.190015838 1.884451e+00 0.02485357
## Pez_si 0.006656156 0.0080748871 0.003518812 3.489724e-02 0.02485357
## Mayonesa_no 0.760087781 0.1419166736 8.497335124 1.996141e+00 0.75648300
## Mayonesa_si -0.168908396 -0.0315370386 1.888296694 4.435870e-01 0.75648300
## Calabacín_no -0.226230821 0.7592751317 0.376381955 2.856885e+01 0.04964651
## Calabacín_si 0.022623082 -0.0759275132 0.037638196 2.856885e+00 0.04964651
## Queso_no 0.668516675 0.2176143851 4.601270591 3.285471e+00 0.50442868
## Queso_si -0.097492015 -0.0317354312 0.671018628 4.791313e-01 0.50442868
## Helado_no 0.353408093 0.4816619086 0.734798428 9.197484e+00 0.09577659
## Helado_si -0.027718282 -0.0377774046 0.057631249 7.213713e-01 0.09577659
## contri_rel2
## Nausea_no 4.671545e-02
## Nausea_si 4.671545e-02
## Vómitos_no 1.886734e-01
## Vómitos_si 1.886734e-01
## Abdominales_no 2.781528e-04
## Abdominales_si 2.781528e-04
## Fiebre_no 8.228081e-03
## Fiebre_si 8.228081e-03
## Diarrea_no 2.022966e-06
## Diarrea_si 2.022966e-06
## Papa_no 4.683505e-01
## Papa_si 4.683505e-01
## Pez_no 3.657755e-02
## Pez_si 3.657755e-02
## Mayonesa_no 2.637172e-02
## Mayonesa_si 2.637172e-02
## Calabacín_no 5.592211e-01
## Calabacín_si 5.592211e-01
## Queso_no 5.345034e-02
## Queso_si 5.345034e-02
## Helado_no 1.779062e-01
## Helado_si 1.779062e-01
| Categorias | Componente 1 | Componente 2 |
|---|---|---|
| Nausea_no | CR(+) | |
| Nausea_si | CA(-) | |
| vómitos_no | CA(-) | |
| vómitos_si | CR(-) | |
| abdominales_no | CA(+) | |
| abdominales_si | CA(-) | |
| fiebre_no | CA(+) | |
| fiebre_si | CA(-) | |
| diarrea_no | CA(+) | |
| diarrea_si | CA(-) | |
| papa_no | CA(-) | |
| papa_si | CR(+) | |
| pez_no | CR(-) | |
| pez_si | CR(+) | |
| mayonesa_no | CA(+) | |
| mayonesa_si | CR(-) | |
| calabacín_no | CA(+) | |
| calabacín_si | CR(-) | |
| queso_no | CA(+) | |
| queso_si | CR(-) | |
| helado_no | CR(+) | |
| helado_si | CR(-) |
Interpretación para la tabla:
La interpretación del componente 1 y 2 se da de la siguiente manera:
Los que son positivos presentan una asociación o relación.
Los que son negativos presentan una asociación o relación.
Si los signos son + y - entonces no presentan una asociación las categorias.
Conclusiones finales
Como ya sabemos el objetivo del análisis de correspondencia simple y múltiple es el estudio de la asociación entre las categorías de las variables usando el mapa perceptual para su interpretación, en el caso de estudio representamos las 22 categorías en 2 dimensiones usando el mapa perceptual.
Para el caso de estudio la cantidad de dimensiones ideales serían 11 (N° total de categorías – N° variables), ya que estas representan el 100% de la inercia total; sin embargo, representar en 11 dimensiones su interpretación no es muy clara en el mapa perceptual debido a esto usamos 2 dimensiones, ya que estas representan el 76% de la inercia total y su interpretación en el mapa perceptual es más clara.
Cuando hacemos mención a la Matriz de Burt siendo esta una matriz cuadrada simétrica, esta se forma por tablas de contingencia del cruce de los pares de variables y su diagonal contiene el cruce de las variables por ellas mismas.
Bibliografía
Santiago de la Fuente Fernandez. (2011). Análisis correspondencias simples y múltiples. Fac. Ciencias Económicas y Empresariales: Universidad Autónoma de Madrid.
MICHAEL GREENACRE. (2008). Análisis de correspondencias múltiples. En La práctica del análisis de correspondencias (11). Universidad Pompeu Fabra: Fundación BBVA.
_Peter Olejua. (2017). Análisis de correspondencia (CA). 22 de julio 2022, de Pontificia Universidad Javeriana, Bogotá Sitio web: https://rstudio-pubs-static.s3.amazonaws.com/302601_c611260b6f2f4754982ea2b3b495f9ce.html_