MÉTODOS CUANTITATIVOS (Ejercicio 1)

TEMA: CARGA Y MANIPULACIÓN DE DATOS

(LLENAR LOS ESPACIOS EN BLANCO: ___)

PASO 1: Establecer el directorio de trabajo

PASO 2: Cargar con read.csv() el conjunto de datos LATINO23 y guardalo en el objeto “bd_latinobarometro”

bd_latinobarometro <- read.csv("LATINO23.csv") # lee y almacena los datos

PASO 3: Identificar el número de variables y observaciones

dim(bd_latinobarometro) # proporciona las dimensiones del dataframe: filas, columnas 
## [1] 19205   274
## ¿Cuántas variables y observaciones hay en el conjunto de datos? 

#RTA: 19205 observaciones y  274 variables

PASO 4: Extraer los vectores de interés: SEXO, IDENPA, P37CSN.A, P37CSN.B, P37CSN.F, P37WVSCS.H

4.1. Guardar el nuevo conjunto de datos en bd_genero

bd_genero <- bd_latinobarometro[ ,c("IDENPA", "SEXO", "P37CSN.A", "P37CSN.B", "P37CSN.F", "P37WVSCS.H")] 
str(bd_genero)
## 'data.frame':    19205 obs. of  6 variables:
##  $ IDENPA    : chr  "Argentina" "Argentina" "Argentina" "Argentina" ...
##  $ SEXO      : int  2 2 1 1 1 2 2 1 1 1 ...
##  $ P37CSN.A  : int  2 2 2 2 1 2 1 3 2 1 ...
##  $ P37CSN.B  : int  2 2 2 2 1 2 1 3 2 1 ...
##  $ P37CSN.F  : int  2 2 1 1 1 2 2 3 2 2 ...
##  $ P37WVSCS.H: int  2 2 2 NA 1 2 1 3 2 2 ...

PASO 5: Identificar los tipos de variables incluidas

(carácter vs. numérico; binario vs. no binario)

¿Qué tipo de variable es SEXO? #RTA: Aunque sabemos que sexo es una variable nominal, en el dataframe aparece como numérica. En estos casos, se recomienda transformarla en una variable tipo caracter (o sea categórica).

¿Qué tipo de variable es IDENPA? #RTA: Variable tipo carácter y no binaria.

¿Qué tipo de variable es P37CSN.A? #RTA: Variable tipo numérica y no binaria.

CÁLCULO Y TRANSFORMACIÓN DE VARIABLES

PASO 6: Crear una variable para calcular el promedio de los ítem: P37CSN.A, P37CSN.B, P37CSN.F, P37WVSCS.H

6.1. Guardar el resultado en una variable llamada diversidad

bd_genero$diversidad <- bd_genero %>% 
  select("P37CSN.A", "P37CSN.B", "P37CSN.F", "P37WVSCS.H") %>% 
  rowMeans() 

summary(bd_genero$diversidad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   2.000   2.750   2.634   3.000   4.000    2564
mean(bd_genero$diversidad, na.rm=TRUE)
## [1] 2.634172

PASO 7: Categorizar la variable diversidad y guardar el resultado en una nueva variable llamada: actitud_diversidad teniendo en cuenta las siguientes categorías e intervalos:

si “diversidad” = 0.5 - 2 entonces “A favor”

si “diversidad” = 2 - 4.5 entonces “En contra”

(PONER EL PARAMETRO RIGHT=TRUE)

limites_actitud <- c(0.5, 2, 4.5)
bd_genero <- bd_genero %>%
  mutate(actitud_diversidad = cut(diversidad, breaks = limites_actitud, labels = c("A favor", "En Contra"), right = TRUE)) #Con right=T indicamos que el intervalo incluye su límite derecho. Por ejemplo, un intervalo definido por 0.5-2 incluye 2, pero no 0.5.

PASO 8: Crear un gráfico de barras para la variable actitud_diversidad con geom_bar() (TÍTULO DEL GRÁFICO = “Actitud hacia la diversidad sexual”)

library(ggplot2) 
ggplot(bd_genero,aes(x = actitud_diversidad, fill=actitud_diversidad)) +
  geom_bar() +  # Agregar el gráfico de barras
  labs(title = "Actitud hacia la igualdad de género",  # Título del gráfico
       x = "Categoría",  # Etiqueta del eje x
       y = "Frecuencia") +
   theme(plot.title = element_text(hjust = 0.5))  # Centrar el título

PARA INVESTIGAR…

PASO 9: Busque en Internet y elabore un código para crear un diagrama de caja (boxplot) compararando la “Actitud hacia la diversidad sexual” según sexo.

PISTA: Emplear la función geom_boxplot() del paquete ggplot2

# Para hacer este gráfico es necesario que la variable X sea categórica o factor:
bd_genero$SEXO <- factor(bd_genero$SEXO,
                          levels = c(1, 2),  # Valores originales de la columna
                          labels = c("Hombre", "Mujer"))  # Etiquetas
table(bd_genero$SEXO)
## 
## Hombre  Mujer 
##   9119  10086
  # Create a boxplot compararando la puntuación promedio según sexo
  ggplot(bd_genero, aes(x=SEXO, y=diversidad, fill=SEXO))+
    geom_boxplot()+
    ylab("Actitud") +
    xlab("")+
    labs(title = "Actitud hacia la igualdad de género por sexo") +
    scale_fill_manual(values = c("Hombre" = "red", "Mujer" = "green"))  # Opcional, para definir los colores manualmente
## Warning: Removed 2564 rows containing non-finite values (`stat_boxplot()`).

Haz una breve interpretación. RTA:

En la interpretación se debe tener en cuenta que -en este caso- una menor puntuación significa una actitud más favorable hacia la diversidad sexual. Por otra parte, la línea en el medio de la caja representa la mediana de los datos, que es el valor que divide el conjunto de datos en dos partes iguales. En este caso la mediana de hombres y mujeres es similar, y se ubica muy cerca de 3, lo que significa que la actitud tiende a ser desfavorable.

## # A tibble: 2 × 2
##   SEXO   mediana_frecuencia
##   <fct>               <dbl>
## 1 Hombre               2.75
## 2 Mujer                2.75

Si deseamos recodificar los valores de la variable diversidad para que sea más fácil su interpretación, podemos emplear el siguiente código:

bd_genero$diversidad2 <- ifelse(bd_genero$diversidad >= 3.5, 1,
                                             ifelse(bd_genero$diversidad >= 2.5, 2,
                                                    ifelse(bd_genero$diversidad >= 1.5, 3,
                                                           ifelse(bd_genero$diversidad >= 0.5, 4, NA))))

### este código recodifica los valores de variable_a_recodificar en cuatro intervalos basados en los valores decimales, asignando 1, 2, 3 o 4 según el valor de la variable original, y asignando NA si el valor no coincide con ninguno de los intervalos definidos.