conteo_pp_dam <- readRDS("01 Modelo de area/COL/2018/Data/censo_dam2.rds") %>%
filter(edad > 1) %>%
group_by(dam , dam2) %>%
summarise(pp_dam2 = sum(n),.groups = "drop") %>%
mutate(pp_dam = sum(pp_dam2))
names_cov <- "Nacional"
estimaciones_mod <- estimaciones %>% transmute(
dam = substr(dam2,1,2),
dam2,Ocupado_mod,Desocupado_mod,Inactivo_mod) %>%
inner_join(conteo_pp_dam ) %>%
mutate(wi = pp_dam2/pp_dam,
Nacional = "1")
estimaciones_mod %<>%
fastDummies::dummy_cols(select_columns = names_cov,
remove_selected_columns = FALSE)
Xdummy <- estimaciones_mod %>% select(matches("Nacional_")) %>%
mutate_at(vars(matches("_\\d")) ,
list(Ocupado = function(x) x*estimaciones_mod$Ocupado_mod,
Desocupado = function(x) x*estimaciones_mod$Desocupado_mod,
Inactivo = function(x) x*estimaciones_mod$Inactivo_mod)) %>%
select((matches("Ocupado|Desocupado|Inactivo")))
Ocupado
names_ocupado <- grep(pattern = "^O", x = colnames(Xdummy),value = TRUE)
gk_ocupado <- calib(Xs = Xdummy[,names_ocupado] %>% as.matrix(),
d = estimaciones_mod$wi,
total = Razon_empleo[names_ocupado] %>% as.matrix(),
method="linear",max_iter = 5000,)
checkcalibration(Xs = Xdummy[,names_ocupado] %>% as.matrix(),
d =estimaciones_mod$wi,
total = Razon_empleo[names_ocupado] %>% as.matrix(),
g = gk_ocupado,)
Desocupado
names_descupados <- grep(pattern = "^D", x = colnames(Xdummy),value = TRUE)
gk_desocupado <- calib(Xs = Xdummy[,names_descupados]%>% as.matrix(),
d = estimaciones_mod$wi,
total = Razon_empleo[names_descupados]%>% as.matrix(),
method="linear",max_iter = 5000,)
checkcalibration(Xs = Xdummy[,names_descupados]%>% as.matrix(),
d =estimaciones_mod$wi,
total = Razon_empleo[names_descupados]%>% as.matrix(),
g = gk_desocupado,)
Inactivo
names_inactivo <- grep(pattern = "^I", x = colnames(Xdummy),value = TRUE)
gk_Inactivo <- calib(Xs = Xdummy[,names_inactivo]%>% as.matrix(),
d = estimaciones_mod$wi,
total = Razon_empleo[names_inactivo]%>% as.matrix(),
method="linear",max_iter = 5000,)
checkcalibration(Xs = Xdummy[,names_inactivo]%>% as.matrix(),
d =estimaciones_mod$wi,
total = Razon_empleo[names_inactivo]%>% as.matrix(),
g = gk_Inactivo,)
- Validar los resultados obtenidos.
par(mfrow = c(1,3))
hist(gk_ocupado)
hist(gk_desocupado)
hist(gk_Inactivo)

- Estimaciones ajustadas por el ponderador
estimacionesBench <- estimaciones_mod %>%
mutate(gk_ocupado, gk_desocupado, gk_Inactivo) %>%
transmute(
dam,
dam2,
wi,gk_ocupado, gk_desocupado, gk_Inactivo,
Ocupado_Bench = Ocupado_mod*gk_ocupado,
Desocupado_Bench = Desocupado_mod*gk_desocupado,
Inactivo_Bench = Inactivo_mod*gk_Inactivo
)
- Validación de resultados.
estimacionesBench %>%
summarise(Ocupado_Bench = sum(wi*Ocupado_Bench),
Desocupado_Bench = sum(wi*Desocupado_Bench),
Inactivo_Bench = sum(wi*Inactivo_Bench)) %>% tba()
Razon_empleo %>% tba()
|
Ocupado_Bench
|
Desocupado_Bench
|
Inactivo_Bench
|
|
0.5779
|
0.0619
|
0.3602
|
|
Ocupado
|
Desocupado
|
Inactivo
|
|
0.5779
|
0.0619
|
0.3602
|
- Guardar resultados
estimaciones <- inner_join(estimaciones,estimacionesBench)
saveRDS(object = estimaciones, file = "Rmd/COL/Recursos/estimaciones_Bench.rds")