Nota: La versión actualizada de este documento se encuentra en este enlace

Antes de iniciar, nos aseguramos de haber instalado las librerías necesarias.

library(haven)
library(summarytools)

En caso de no tenerlas, instalamos las librerías copiando y pegando el siguiente codigo en la consola.

install.packages("tidyverse")
install.packages("summarytools")

Luego podemos comenzar con el análisis de datos. Para ello, crear un nuevo script y guardarlo con el nombre de analisisBivar. A continuación, copiar y ejecutar cada uno de los códigos detallados más adelante.

1 Lectura de datos.

Leemos los datos desde SPSS con la librería haven y utilizando el enlace hacia los datos:

library(haven)
enlace<-"http://portal.susalud.gob.pe/wp-content/uploads/archivo/base-de-datos/2015/CUESTIONARIO%2002%20-%20CAPITULOS.sav"
datossalud = read_sav(enlace)

2 Exploración básica.

Exploramos variables que interesan en el análisis. La función attr muestra detalles de las variables.

Observaremos la variable C2P1: profesión

head(datossalud$C2P1)
## <labelled<double>[6]>: ¿CUÁL ES SU PROFESIÓN?
## [1] 2 2 2 2 2 1
## 
## Labels:
##  value       label
##      1      Médico
##      2 Enfermero/a

Variable C2P4: sexo.

head(datossalud$C2P4)
## <labelled<double>[6]>: SEXO
## [1] 2 2 2 2 2 1
## 
## Labels:
##  value  label
##      1 Hombre
##      2  Mujer

Variable C2P2EDAD: Tipo de contrato.

head(datossalud$C2P2EDAD)
## [1] 40 42 27 31 38 67

Seleccionamos el dataset solo con las variables de interés:

Seleccionamos los datos de los médicos y además solo las variables de interés con el siguiente código:

datostemp <- datossalud[,c("C2P1","C2P4","C2P2EDAD")]
names(datostemp) = c("profesion","sexo","edad")
datos <- datostemp[datostemp$profesion==1,]

Y finalmente observamos los datos:

head(datos)
profesion sexo edad
1 1 67
1 1 54
1 2 35
1 1 43
1 1 38
1 1 46

3 Análisis univariado.

Realizamos el análisis individual de las variables de interés: Sexo y Edad.

3.1 Variable: Sexo

Para la variable sexo realizamos una tabla de frecuencias y observamos los resultados.

tabla_sexo  = table(datos$sexo)
tabla_sexo
## 
##    1    2 
## 1657  562
prop.table(tabla_sexo)
## 
##         1         2 
## 0.7467328 0.2532672
summarytools::freq(as.factor(datos$sexo))
## Frequencies  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           1   1657     74.67          74.67     74.67          74.67
##           2    562     25.33         100.00     25.33         100.00
##        <NA>      0                               0.00         100.00
##       Total   2219    100.00         100.00    100.00         100.00

Interpretación:

  • Observamos 25.3% de mujeres y 74.7% de hombres entre los médicos.

3.2 Variable: Edad

La variable cuantitativa edad la analizamos utilizando medidas de posición central, dispersión y además un gráfico (histograma o gráficos de cajas).

  • Medidas de resumen básicas:
summary(datos$edad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   24.00   37.00   46.00   46.45   56.00   88.00
sd(datos$edad)
## [1] 11.38578
  • Coeficiente de variación:
# Coeficiente de variación.
cv = sd(datos$edad)/mean(datos$edad)
  • Asimetría de fisher para la edad:
Fisher.asi = function(x) mean((x - mean(x,na.rm=T))^3,na.rm=T)/sd(x,na.rm=T)^3
Fisher.asi(datos$edad)
## [1] 0.143489

Esta vez, utilizaremos un histograma para observar la distribución de la edad de los médicos.

library(summarytools)
histo<- hist(datos$edad, 
            main="Histograma de las edades", 
            color='yellow')

cortes <- histo$breaks # Cortes para la variable a partir del histograma
var_cat <- cut(datos$edad,cortes) # categorizada
freq(var_cat) # Tabla de frecuencias
## Frequencies  
## var_cat  
## Type: Factor  
## 
##                 Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ------------- ------ --------- -------------- --------- --------------
##       (20,25]      2     0.090          0.090     0.090          0.090
##       (25,30]    173     7.796          7.886     7.796          7.886
##       (30,35]    309    13.925         21.812    13.925         21.812
##       (35,40]    300    13.520         35.331    13.520         35.331
##       (40,45]    291    13.114         48.445    13.114         48.445
##       (45,50]    291    13.114         61.559    13.114         61.559
##       (50,55]    260    11.717         73.276    11.717         73.276
##       (55,60]    301    13.565         86.841    13.565         86.841
##       (60,65]    213     9.599         96.440     9.599         96.440
##       (65,70]     66     2.974         99.414     2.974         99.414
##       (70,75]      7     0.315         99.730     0.315         99.730
##       (75,80]      2     0.090         99.820     0.090         99.820
##       (80,85]      3     0.135         99.955     0.135         99.955
##       (85,90]      1     0.045        100.000     0.045        100.000
##          <NA>      0                              0.000        100.000
##         Total   2219   100.000        100.000   100.000        100.000

4 Análisis bivariado.

4.1 Exploración

Comenzamos observando las diferencias entre los dos grupos: hombres y mujeres. Los gráficos más utilizados son gráficos de cajas (boxplots) o histogramas para observar estas diferencias.

  • Comenzamos comparando las ditribuciones con histogramas:
config_grafico <- par(mfrow=c(1,2))
hist(datos$edad[datos$sexo==1],
     prob=T,xlab="Edad (años)",ylab="Densidad",
     main="Hombres",xlim=c(20,90),ylim=c(0,0.04))
hist(datos$edad[datos$sexo==2],
     prob=T,xlab="Edad (años)",ylab="Densidad",
     main="Mujeres",xlim=c(20,90))

  • Una mejor visualización de estas diferencias puede realizarse con un gráfico de cajas o boxplot:
boxplot(edad~sexo,
        datos,
        xlab="Sexo",
        ylab="Edad (anos)", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("Hombre","Mujer"))

¿Qué observo en estos resultados? ¿Es sencillo comparar la tendencia central, dispersión y asimetría a partir de este gráfico? ¿Podemos responder las siguientes preguntas?

  • ¿Quién tiene mayor edad en general?
  • ¿Quién tiene mayor dispersión en sus datos?

Para una comparación cuantitativa adicional a los gráficos, veremos los resultados de las medidas de resumen por cada grupo:

by(datos$edad,datos$sexo,summary)
## datos$sexo: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   24.00   38.00   48.00   47.77   57.00   88.00 
## ------------------------------------------------------------ 
## datos$sexo: 2
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   25.00   34.00   40.00   42.56   51.00   68.00
by(datos$edad,datos$sexo,IQR)
## datos$sexo: 1
## [1] 19
## ------------------------------------------------------------ 
## datos$sexo: 2
## [1] 17
by(datos$edad,datos$sexo,Fisher.asi) 
## datos$sexo: 1
## [1] 0.05708801
## ------------------------------------------------------------ 
## datos$sexo: 2
## [1] 0.4042966

Interpretación:

  • Las médicas son, en general, más jóvenes que los médicos La mediana de las edades para las mujeres (\(Me_{M}=\) 40) es menor a la de los médicos (\(Me_{H}=\) 48).

  • Se observa una ligera diferencia en la dispersión de las edades de los hombres(\(RIC_{M}=\) 19) y médicas (\(RIC_{M}=\) 17).

  • Hay mayor asimetría con cola a la derecha para las edades de las médicas ((\(CA_{F_M}=\) 0.06) que para los médicos(\(CA_{F_H}=\) 0.4).

  • Conclusión: se evidencia asociación entre el sexo y la edad de los médicos.

Otros gráficos que se pueden observar para realizar esta comparación son los siguientes:

  • Comparación con gráficos de densidad.
plot(density(datos$edad[datos$sexo==1]),
     xlab="Edad",ylab="Densidad",main="",ylim=c(0,0.05))
lines(density(datos$edad[datos$sexo==2]),col=2)
legend(60,0.05,legend=c("Hombres","Mujeres"),
       col=1:2,lty=1,bty="n")

  • Comparación de las funciones de distribución de los grupos.
plot(ecdf(datos$edad[datos$sexo==1]),
     main="")
lines(ecdf(datos$edad[datos$sexo==2]),
      col=2)

4.2 Prueba de hipótesis.

Evaluamos, ahora, con una prueba estadística, si existe o no asociación entre el sexo y la edad mediante una prueba de hipótesis.

La prueba que utilizaremos se llama prueba t o t.test.

Las hipótesis que estamos utilizando para esta prueba son las siguientes:

  • \(H_0:\) La edad promedio es la misma entre hombre y mujeres.
  • \(H_1:\) La edad promedio es diferente entre hombre y mujeres.
t.test(edad~sexo,datos)
## 
##  Welch Two Sample t-test
## 
## data:  edad by sexo
## t = 9.7861, df = 1012.4, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  4.158236 6.244127
## sample estimates:
## mean in group 1 mean in group 2 
##        47.76524        42.56406

Observamos el p-valor y concluimos:

  • Al 5% de significancia, existe evidencia de una diferencia estadisticamente significativa entre las edades de hombre y muejres médicos.

5 Ejercicio

  1. Crear un nuevo script y modificar los códigos para realizar un análisis de la asociación entre el sexo y las edades de los enfermeros(as). Escoger un gráfico para la comparación de los grupos e interpretar las médidas de resumen comparando por sexo.

  2. Crear un reporte con sus resultados y conclusiones. Sus conclusiones deben responder a las siguientes preguntas:
  • ¿Son diferentes las edades entre los enfermeros y enferemeras? (Observar y comparar boxplots, histogramas o densidades)
  • ¿Qué grupo tiene mayor edad? (Comparar medidas de posición central)
  • ¿Qué grupo tiene mayor dispersión de edades? (Comparar medidas de dispersión)
  • ¿Quién tiene mayor asimetría y hacia que lado? (Comparar coeficiente de asimetría de Fisher)
  • ¿Existe evidencia entre una relación entre el sexo y la edad en el grupo de enfermeros? (Realizar prueba de hipótesis y concluir) - Opcional