4.3 Estimacion directa

En estas líneas de código se realiza una selección y transformación de datos a partir del dataset indicador_dam que se leyó previamente. Primero, se filtra el dataset para mantener solo las filas en las que el valor de n_upm (conteo de unidad primaria de muestreo) es mayor o igual a 2 y donde no haya valores faltantes en la columna Desocupado_deff. Esto se logra utilizando la función filter() de dplyr.

Luego, se define el número de categorías (P) como 3, el número de dominios (D) como el número de filas en el dataset filtrado indicador_dam1, y el número de dominios de predicción (D1) como el número de filas en el dataset dam_pred que se leyó previamente.

Finalmente, se crea un nuevo dataframe theta_dir a partir del data.frame filtrado indicador_dam1. Este nuevo dataframe contiene la información de n_desocupado, n_ocupado y n_inactivo de cada dominios y la categoría ocupacional de interés (Ocupado, Desocupado e Inactivo).

indicador_dam1 <- indicador_dam  %>% 
  filter(n_upm >= 2 & !is.na(Desocupado_deff)) 
P <- 3 
D <- nrow(indicador_dam1)
D1 <- nrow(dam_pred)
theta_dir <- indicador_dam1 %>%  
  transmute(dam2,
    n = n_desocupado + n_ocupado + n_inactivo,
            Ocupado, Desocupado, Inactivo)

Ahora, se obtienen las estimaciones del parámetro \(\theta\) a partir del modelo.

theta_obs <- summary(fit,pars = "theta")$summary
theta_pred <-  summary(fit,pars = "theta_pred")$summary

Seguido de esto se organiza la matriz de \(\theta\)

El código crea dos matrices, theta_obs_ordenado y theta_pred_ordenado, que contienen las estimaciones medias de los parámetros del modelo de respuesta multinomial con covariables para los datos de observación y predicción, respectivamente. La función matrix() se utiliza para dar formato a los datos con una matriz nrow x ncol, y se asignan nombres de columna apropiados a la matriz resultante utilizando colnames(). Luego se convierten las matrices en marcos de datos (as.data.frame()) y se unen mediante full_join() para crear una única tabla que contenga todas las estimaciones de los parámetros para los datos de observación y predicción, junto con la información del indicador de área (theta_dir). El resultado final es un marco de datos llamado estimaciones_obs.

theta_obs_ordenado <- matrix(theta_obs[, "mean"],
                             nrow = D,
                             ncol = P,
                             byrow = TRUE)

colnames(theta_obs_ordenado) <-
  c("Ocupado_mod", "Desocupado_mod", "Inactivo_mod")
theta_obs_ordenado %<>% as.data.frame()
theta_obs_ordenado <- cbind(dam2 = indicador_dam1$dam2,
                            theta_obs_ordenado)

theta_pred_ordenado <- matrix(theta_pred[, "mean"],
                              nrow = D1,
                              ncol = P,
                              byrow = TRUE)

colnames(theta_pred_ordenado) <-
  c("Ocupado_mod", "Desocupado_mod", "Inactivo_mod")
theta_pred_ordenado %<>% as.data.frame()
theta_pred_ordenado <-
  cbind(dam2 = dam_pred$dam2, theta_pred_ordenado)


estimaciones_obs <- full_join(theta_dir,
                              bind_rows(theta_obs_ordenado, theta_pred_ordenado))