Este documento reúne un ejemplo de uso de algunas funciones y aplicaciones del lenguaje de programación R. El objetivo principal de este documento es mostrar el análisis estadístico de un conjunto de datos almacenados en un archivo de Excel. Se aplicarán de forma descriptiva algunas de las herramientas didácticas proporcionadas en el curso de R, impartido por el profesor Ricardo Ramos Aguilar.
En la primera parte, se usa el comando read.csv para obtener los datos. La función principal de este comando es la interpretación o lectura de un conjunto grande de datos en un formato en el cual los valores numéricos de las variables están separados por comas, comúnmente conocido por su extensión .CSV. El documento en formato .csv del cual se está tomando la información es de libre descarga y contiene datos del INEGI, disponible en la dirección electrónica:
https://www.inegi.org.mx/rnm/index.php/catalog/287/related-materials.
La información describe los datos descriptivos de la natalidad en México, usando claves para la clasificación de estos y se concentran en rubros como los siguientes:
Una vez descargado el archivo “conjunto_de_datos_natalidad_2018.csv”, se usa la ubicación exacta del mismo para la lectura de los datos, es decir para cargar los datos en el intérprete de R usando la siguiente instrucción:
df=read.csv('C:/Users/fores/Dropbox/Curso_R/conjunto_de_datos_natalidad_2018.csv')
#df=read.csv('C:/Users/lcisn/Dropbox/Curso_R/conjunto_de_datos_natalidad_2018.csv'
#)
Una vez cargados los datos, es posible procesarlos usando las herramientas y rutinas de R. por ejemplo, usando la función dim() se obtiene el tamaño del arreglo de datos obtenido, como se muestra a continuación:
dim(df)#dimensión del data frame o arreglo de datos.
## [1] 2162535 44
La salida que entrega la función dim() es el número de renglones, seguido del número de columnas del arreglo de datos. Las columnas de datos se clasifican por medio de un nombre, los nombres de las columnas se obtienen usando las siguientes instrucciones:
names(df)#nombres de las columnas de datos.
## [1] "ent_regis" "mun_regis" "loc_regis" "tloc_regis" "ent_resid"
## [6] "mun_resid" "loc_resid" "tloc_resid" "ent_ocurr" "mun_ocurr"
## [11] "loc_ocurr" "tloc_ocurr" "sexo" "edad_reg" "edad_madn"
## [16] "edad_padn" "dia_nac" "mes_nac" "ano_nac" "dia_reg"
## [21] "mes_reg" "ano_reg" "edad_madr" "edad_padr" "tipo_nac"
## [26] "orden_part" "lugar_part" "q_atendio" "hijos_vivo" "hijos_sobr"
## [31] "edociv_mad" "escol_mad" "escol_pad" "act_mad" "act_pad"
## [36] "pos_mad" "pos_pad" "sitlab_mad" "sitlab_pad" "fue_prese"
## [41] "hora_nac" "minuto_nac" "comparecio" "dis_re_oax"
Otros atributos del arreglo de datos se pueden obtener usando las siguientes funciones:
typeof(df)#tipo de datos
## [1] "list"
summary(df$edad_madn)#resumen
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.00 21.00 25.00 27.41 31.00 99.00
En esta sección se muestran resultados del análisis de algunos de los atributos del conjunto de datos, almacenados en la variable df creada con anterioridad. Como primer punto se analiza la edad promedio de la madre y del padre:
mean(df$edad_madn)#calculo de la edad promedio de la madre
## [1] 27.40992
La edad promedio del padre se calcula como sigue:
mean(df$edad_padn)#calculo de la edad promedio de la madre
## [1] 37.2568
los mismos cálculos se realizan considerando la edad de resgistro de los padres:
mean(df$edad_madr)#calculo de la edad promedio de la madre
## [1] 27.96622
La edad promedio del padre al momento del registro:
mean(df$edad_padr)#calculo de la edad promedio de la madre
## [1] 37.69241
Si se analizan los datos por medio del resumen de parámetros estadísticos, usando la función sumary():
summary(df$edad_madn)#resumen
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.00 21.00 25.00 27.41 31.00 99.00
summary(df$edad_madr)#resumen
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 11.00 21.00 26.00 27.97 31.00 99.00
summary(df$edad_padn)#resumen
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 12.00 24.00 29.00 37.26 37.00 99.00
summary(df$edad_padr)#resumen
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 13.00 24.00 30.00 37.69 38.00 99.00
Para retirar datos atípicos se seleccionan los datos más verosímiles, eligiendo un rango de edades entre 5 y 80 años para discriminar las singularidades de 99 años y se calcula el promedio de nuevo:
mean(df$edad_padn[(df$edad_padn>5)&(df$edad_padn<80)])#calculo de la edad promedio del padre sin datos atípicos
## [1] 29.26233
mean(df$edad_madn[(df$edad_madn>5)&(df$edad_madn<80)])#calculo de la edad promedio de la madre sin datos atípicos
## [1] 25.85916
mean(df$edad_padr[(df$edad_padr>5)&(df$edad_padr<80)])#calculo de la edad promedio del padre sin datos atípicos
## [1] 29.71232
mean(df$edad_madr[(df$edad_madr>5)&(df$edad_madr<80)])#calculo de la edad promedio de la madre sin datos atípicos
## [1] 26.38023
Las variables numéricas que se obtuvieron en el punto anterior son uy descriptivas en el sentido que muestran la tendencia de edad en la cual los mexicanos tienen hijos. A continuación, se explora en forma de histogramas datos acerca de la edad, escolaridad y nivel de educación de las personas que deciden ser padres en México.
A continuación, se presentan histogramas de la escolaridad de las personas que son madres y padres en México:
hist(df$escol_mad,main = "Escolaridad", xlab = " ", ylab="Frecuencia", col=rgb(1,0,0,0.85),xaxt='n')
hist(df$escol_pad,main = " ", xlab = " ", ylab="Frecuencia",xaxt='n',add=T,col=rgb(0,0.5,0.72,0.2))
axis(side=1,at=c(1.25,1.75,2.75,3.75,4.75,5.75,6.75,7.75,8.75),labels=c("Ninguna","Prim. 1-3","Prim. 4-5","Prim. Comp.","Sec.","Prepa","Prof.","Otra","No esp."),las=3)
legend("topright", legend=c("Madre","Padre"), col=c(rgb(1,0,0,0.85),rgb(0,0.5,0.72,0.2)), pt.cex=2, pch=15 )
Se observa una diferencia pequeña en la escolaridad de hombres respecto de la escolaridad de las mujeres. A continuación, se analiza la edad de la madre y del padre al momento del registro de los hijos:
hist(df$edad_padr[(df$edad_padr>5)&(df$edad_padr<80)],main = "Edad al momento del registro", xlab = "Edad en años", ylab="Frecuencia", col=rgb(1,0,0,0.85))
hist(df$edad_madr,main = " ", xlab = "Edad en años", ylab="Frecuencia",col=rgb(0,0.5,0.72,0.2),add=T)
legend("topright", legend=c("Padre","Madre"), col=c(rgb(1,0,0,0.85),rgb(0,0.5,0.72,0.2)), pt.cex=2, pch=15 )
Con base en la gráfica anterior, la tendencia de las parejas de padres en México es que el padre es mayor que la madre. El análisis grafico de las edades de los padres al momento del nacimiento de sus hijos se observa en el siguiente histograma:
Una comparativa de la cantidad total de nacimientos de mujeres y hombres se presenta en la siguiente figura:
Finalmente, se analiza de forma gráfica la ocupación de ambos padres, en este caso se realiza el análisis gráfico de forma separada para la ocupación de los padres, primero se analiza la ocupación de la madre:
Para terminar, se muestran los datos de ocupación de los padres:
Con base en las gráficas de situación laboral, se percibe que la cultura en México sigue siendo principalmente patriarcal, en donde el padre es el principal proveedor material de la familia y la madre se dedica en su mayoría al cuidado de los hijos
La realización de este breve ejercicio permite obtener una primera experiencia en la elaboración de reportes de análisis de datos, si bien el ejercicio es básico, constituye una valiosa referencia para la elaboración de reportes. Con base en los resultados gráficos y numéricos del análisis de los datos, concluye que, en México, la edad preferida por las mujeres para ser madres es menor a los 30 años, obedeciendo al reloj biológico de las mujeres que deciden ser madres. Un dato interesante es que el nivel de escolaridad es menos dispar de lo que se esperaría en una sociedad tradicionalmente patriarcal como la mexicana. Algunos datos atípicos fueron encontrados en la información de la edad de padre y madre al momento del registro y del nacimiento de los hijos, en este reporte fueron retirados del análisis con el fin de proporcionar datos más verosímiles, en el análisis gráfico por medio de histogramas es más sencillo discriminar las singularidades, sin embargo, se usó el mismo criterio para facilitar el análisis visual.