Nuevamente la librería survey.

Ahora bien, surge una segunda pregunta: ¿el dato se puede obtener por sexo y por entidad? Sí, si se puede, pero la siguiente pregunta en el argot de los estadísticos es “¿si da la muestra para tales resultados?”.

Si nos vamos a los documentos de la encuesta podemos ver en la nota técnica lo siguiente:

Características metodológicas de la ENUT 2019

Unidad de análisis: Hogares e integrantes del hogar de 12 años y más.

Población objetivo: Población de 12 años y más.

Instrumento de captación: Cuestionario de preguntas predefinidas sobre actividades de uso del tiempo.

Método de captación: Entrevista directa a cada uno de los integrantes de 12 años y más en el hogar mediante dispositivo móvil.

Periodo de levantamiento: Del 21 de octubre al 01 de diciembre de 2019. 

Desglose geográfico Nacional: por tamaño de localidad (10 mil y más habitantes, y menos de 10,000 habitantes) y entidad federativa. 

Tamaño de la muestra: 26 631 viviendas y 71 404 personas de 12 años y más que representan 33.2 millones de viviendas y 101.1 millones de personas. Adicional, 1 798 viviendas en localidades de predominio de población hablante de lengua indígena. 

Diseño de la muestra: Probabilístico, estratificado, por conglomerados.

Ahora revisando el Diseño Muestral en lo referente al marco nos dice lo siguiente:

El diseño muestral de la ENUT 2019 se caracteriza por ser probabilístico, por lo cual los resultados obtenidos de la encuesta se generalizan a toda la población, a su vez es bietapico, estratificado y por conglomerados, donde las unidades de observación son los hogares y las personas de 12 o más de edad.

La submuestra para la ENUT 2019 se seleccionó a partir de la muestra maestra 2012 del Instituto, esta muestra maestra se diseñó y seleccionó del Marco Maestro de Muestreo 2012 (MMM) el cual se conformó de conglomerados de viviendas llamados Unidades Primarias de Muestreo (UPM), construidos a partir de la información cartográfica y demográfica que se obtuvo del Censo de Población y Vivienda 2010. La muestra maestra permite la selección de submuestras para todas las encuestas en viviendas que realiza el Instituto; su diseño es probabilístico, estratificado, unietápico y por conglomerados, pues es en ellos donde se seleccionaron, en una segunda etapa, las viviendas que integran las submuestras de las diferentes encuestas…

Sin embargo, al entrar más a detalle al documento sin duda hay que tener conocimientos básicos de muestreo, no obstante, lo que puede ayudarnos a contestar si la muestra da para el desglose que se pide esta en la sección 12. Homologación de la Semaforización para los Umbrales de Indicadores de precisión estadística.

Para facilitar la interpretación de las precisiones estadísticas de la información pública en tabulados, el Comité de Aseguramiento de la Calidad, en la cuarta sesión celebrada el 1 de noviembre de 2018, aprobaron los siguientes umbrales y especificaciones para la publicación en los tabulados los CV (coeficientes de variación), así como su semaforización de estos”.

Umbrales aprobados para la cobertura del CV.

Interpretación

Semaforización

Viviendas/Hogares/Otras

unidades diferentes a las

económicas DGES/DGEGSPJ

 

Alta

Blanco

[0%, 15%)

Moderada

Amarillo

[15%, 30%)

Baja

Naranja oscuro

>=30%

Umbrales aprobados para el reporte de la precisión de acuerdo con el coeficiente de variación en los tabulados de resultados de los proyectos con muestreo probabilístico (acuerdo CAC-007/01/2018).

Por otro lado, si revisamos los cuadros que están en la página del Instituto vemos este coloreado y las leyendas que especifica este documento.

Dicho lo anterior tenemos que usar otra librería y no solo expandir la cifra sino calcular sus precisiones estadísticas. En artículos anteriores se explicó la librería de R llamada survey, entonces vamos a instalarla con las bondades que nos ofrece Posit RStudio.


Un aspecto que le pone un poco de complejidad a esta consulta es que el dato entidad federativa (ENT) está en otro conjunto de datos, para lograr esto podemos recordar un tema de la teoría de conjuntos.

https://programacionymas.com/blog/como-funciona-inner-left-right-full-join

Para este caso vamos a usar un left join donde en el lado izquierdo quedará el conjunto de datos del sociodemográfico, aunque en el estricto sentido con un inner join sería suficiente ya que es ilógico que existan residentes en hogares sin su correspondiente vivienda.

Verbo join de dplyr

Vamos a describir el código:

#Para instalar, en el menú Tools - Install Packages
library(survey)
library(dplyr)

# Ojo con las diagonales, deben ser inversas
setwd ("D:/Ruta")
#importo a un dataframe el conjunto de datos (Archivo csv) del sociodemográfico
dfSDEnut2019 <- read.csv("conjunto_de_datos_tsdem_enut_2019.csv")
#importo a un dataframe el conjunto de datos (Archivo csv) de la vivienda
dfVivEnut2019 <- read.csv("conjunto_de_datos_tvivienda_enut_2019.csv")

dfCuadroEntxSexo <- left_join(dfSDEnut2019,dfVivEnut2019,c("UPM","VIV_SEL")) %>%
  select(EDAD, SEXO, P3_9, P3_10, ENT, EST_DIS.x, UPM_DIS.x , FAC_HOG, FAC_VIV)

Aquí es donde por medio de las llaves (columnas UPM y VIV_SEL) que unen a los dos conjuntos de datos se puede traer la columna de entidad (ENT), el primer conjunto de datos (residentes de los hogares) es dfSDEnut2019 que son los datos de la izquierda (left) y el segundo (viviendas) es dfVivEnut2019 que en este caso es el lado derecho (right), para evitar traernos todas las columnas de ambos conjuntos de datos agregamos la instrucción select que para el caso de las columnas EST_DIS y UPM_DIS al estar en ambos conjuntos de datos el dataframe resultante discrimina cada columna repetida agregando un .x refiriéndose a la tabla de la izquierda y un .y para el conjunto de datos de la izquierda.

Resumiendo, la instrucción left_join trae todas las filas del conjunto de datos de la izquierda y las filas coincidentes del conjunto de datos de la derecha.


Con esto ya tenemos un conjunto de datos más manejable y con la información necesaria.

Como se describe en pasados artículos del blog vamos a usar la librería survey y para ello necesitamos crear variables dicotómicas, estas variables tienen valores de 1 y 0 donde 1 es cuando se cumple determinada condición y 0 el caso contrario.

dfCuadroEntxSexo$MAgsNAUnioEmb <- ifelse(dfCuadroEntxSexo$SEXO==2 &
                                           dfCuadroEntxSexo$ENT==1 &
                                           (dfCuadroEntxSexo$EDAD>=15 &
                                           dfCuadroEntxSexo$EDAD<=24) &
                                           dfCuadroEntxSexo$P3_9==2 &
                                           (dfCuadroEntxSexo$P3_10==4 |
                                           dfCuadroEntxSexo$P3_10==5),1,0)

Para este fin utilizamos la instrucción ifelse() donde como primer argumento ponemos la condición (la cual es un poco extenso debido a lo complejo de la consulta) una buena práctica es relacionar las condiciones para darle significado a lo que estamos buscando, además que pudiera fallar la misma debido a la prioridad de los operadores lógicos y relacionales y por ello además de buena práctica resulta necesario el uso de paréntesis. Si se cumple la condición la variable toma el valor de 1 caso contrario sería un 0, la variable nueva se define después del signo de pesos ($) y para este caso se le ha nombrado MAgsNAUnioEmb.

Creación de la variable dicotómica y el cálculo de sus precisiones.

Para ejemplificar vamos a calcular el número de mujeres de Aguascalientes de 15 a 24 años que no asisten a la escuela porque se unieron (casaron) o se embarazaron como se acaba de ejemplificar ahora vamos a hacer cálculos sobre ella.

DisenioE <- svydesign(id=~UPM_DIS.x, strata=~EST_DIS.x, data=dfCuadroEntxSexo,
weights=~FAC_HOG)

#Número de Mujeres en Aguascalientes de 15 a 24 años que no asisten a la escuela
#por que se unieron o se embarazaron y su coeficiente de variación

numMujAgsNaEEmboUni <- svytotal(~MAgsNAUnioEmb, DisenioE)

cv_numMujAgsNaEEmboUni <- cv(svytotal(~MAgsNAUnioEmb, DisenioE)) * 100

ee_numMujAgsNaEEmboUni <- SE(svytotal(~MAgsNAUnioEmb, DisenioE))

li_numMujAgsNaEEmboUni <- confint(svytotal(~MAgsNAUnioEmb, DisenioE),0.90)[1]

ls_numMujAgsNaEEmboUni <- confint(svytotal(~MAgsNAUnioEmb, DisenioE),0.90)[2]

Una vez creada la variable, por medio del comando svydesign() se crea el diseño usando las variables de diseño (UPM_DIS.x y EST_DIS.x), se indica el dataframe así como el ponderador (factor de expansión). Después por medio del comando svytotal() usando la variable dicotómica y el diseño muestral. Para el caso del coeficiente de variación es la función cv() y como parámetro el comando que calculo la cifra expandida dicho resultado lo multiplicamos por 100 para ver ese dato o celda futura de una hoja en MS Excel tendrá un umbral de calidad como se mencionó anteriormente. Por último, se calcula el error estándar (SE()) y los límites inferiores y superiores (confint()).

A continuación parte del código y ejecución de este script.


Se puede deducir que podemos hacer los mismo 63 veces más variando el sexo y la entidad, pero la verdad sería riesgoso y poco óptimo por lo que vamos a utilizar un comando nuevo para resolver esto de manera más fácil.

Hasta el siguiente post.

Miguel Araujo.



Comentarios

Entradas populares de este blog

Más de dplyr y una librería nueva: sqldf

Spark (Parte 1)

La librería openxlsx