pacman::p_load(rio, dplyr, ggplot2)Clase práctica Semana 12
Descarga la carpeta .zip para acceder al material de esta sesión. Haga click en el siguiente enlace. No olvides unzipear el archivo.
Estadística bivariada:
Chi-cuadrado
Permite evaluar si existe una asociación estadística entre dos variables categóricas. Para esto, compara las frecuencias observadas con las frecuencias esperadas.
Bajo el supuesto de independencia, si las diferencias son suficientemente grandes, se concluye que las variables están asociadas.
Haremos una evaluación. Primero, preparamos todos los insumos que necesitaremos y ya conocemos (carga de paquetes, importación y exploración de data)
Cargar paquetes
Importación de data
df <- import("data/filmaffinity_dataset_limpio.xlsx")Exploración de data
glimpse(df)Rows: 119,003
Columns: 11
$ index <dbl> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,…
$ Título <chr> "'49-'17", "10,000 Years B.C. (C)", "1812", "20.000 legua…
$ Año <dbl> 1917, 1916, 1912, 1907, 1909, 1916, 1912, 1916, 1908, 191…
$ País <chr> "Estados Unidos", "Estados Unidos", "Rusia", "Francia", "…
$ Dirección <chr> "Ruth Ann Baldwin", "Willis H. O'Brien", "Vasili Goncharo…
$ Reparto <chr> "Joseph W. Girard, Leo Pierson, William Dyer, Mattie Witt…
$ Nota <dbl> NA, 5.1, NA, 6.0, 5.3, NA, 5.4, NA, 4.6, NA, 5.8, NA, NA,…
$ `Tipo filme` <chr> "Película", "Cortometraje", "Película", "Cortometraje", "…
$ Género <chr> "Western", "Comedia", "Drama", "Fantástico", "Comedia", "…
$ Nota_cat <chr> "Sin nota", "5 a más", "Sin nota", "5 a más", "5 a más", …
$ continente <chr> "América", "América", "Asia", "Europa", "Europa", "Améric…
Chi cuadrado
Generamos una tabla de frecuencias observadas
df2 <- df %>%
filter(Nota_cat != "Sin nota")
tabla1 <- table(df2$Nota_cat, df2$continente)
print(tabla1)
África América Asia Europa Oceanía
5 a más 139 22760 6066 18442 459
Menos de 5 39 12189 1241 6707 252
Generamos una tabla de frecuencias esperadas
tabla2 <- chisq.test(tabla1)$expected
print(tabla2)
África América Asia Europa Oceanía
5 a más 124.7569 24495.11 5121.341 17626.468 498.3267
Menos de 5 53.2431 10453.89 2185.659 7522.532 212.6733
Realizamos la prueba
chisq.test(tabla1)
Pearson's Chi-squared test
data: tabla1
X-squared = 1135.4, df = 4, p-value < 2.2e-16
Comprobamos con proporciones
tabla1 %>%
prop.table(2) %>%
round(3)*100
África América Asia Europa Oceanía
5 a más 78.1 65.1 83.0 73.3 64.6
Menos de 5 21.9 34.9 17.0 26.7 35.4
Trabajo grupal: exploración de nuestra data
Carga de paquetes
pacman::p_load(rio, dplyr, tidyr, labelled, tibble, questionr)Importación de base de KoboToolbox
Debemos primero importar nuestra base de datos descargada desde Kobo.
df <- import("data/base_ejemplo.xlsx")Exploración inicial de data
names(df)glimpse(df)Cambio de encabezados
Cambiar los nombres de variables a nombres más cortos nos permitirá un mejor manejo de la base.
encabezados <- c('start',
'end',
'P1',
'P2',
'P3',
'P4',
'P4_1',
'P4_2',
'P4_3',
'P4_4',
'P4_5',
'P4_6',
'P4_7',
'P4_8',
'_id',
'_uuid',
'_submission_time',
'_validation_status',
'_notes',
'_status',
'_submitted_by',
'__version__',
'_tags',
'_index')
df2 <- df
names(df2) <- encabezadosConfiguración de etiquetas de variables
Además del nombre, podemos añadir etiquetas a las columnas.
etiquetas_columnas <- list(start = 'start',
end = 'end',
P1 = 'Título del videojuego',
P2 = 'Año de lanzamiento (tráiler)',
P3 = 'Empresa',
P4 = 'Género',
P4_1 = 'Shooter',
P4_2 = 'Acción y aventura',
P4_3 = 'Terror',
P4_4 = 'Plataformas',
P4_5 = 'Simulación',
P4_6 = 'Rol',
P4_7 = 'Peleas',
P4_8 = 'Ninguno de los anteriores',
`_id` = '_id',
`_uuid` = '_uuid',
`_submission_time` = '_submission_time',
`_validation_status` = '_validation_status',
`_notes` = '_notes',
`_status` = '_status',
`_submitted_by` = '_submitted_by',
`__version__` = '__version__',
`_tags` = '_tags',
`_index` = '_index')
df3 <- df2
var_label(df3) <- etiquetas_columnasTablas de respuesta múltiple
df3 %>%
select(starts_with('P4_')) %>%
multi.table(., digits = 1) %>%
as.data.frame(.) %>%
rownames_to_column(. , 'Género') %>%
mutate(Género = unlist(etiquetas_columnas[.$Género]))