date: 02-08-2021
1 Resumen
Iniciaremos expandiendo los ingresos promedios (multiplicación del ingreso promedio mensual comunal y los habitantes de la misma comuna) obtenidos de la CASEN 2017 sobre la categoría de respuesta: “Trabajó por un pago o especie” del campo P17 del CENSO de personas del 2017, que fue la categoría de respuesta que más alto correlacionó con los ingresos expandidos, ambos a nivel comunal y ambos a nivel URBANO.
En este trabajo continuaremos con el análisis sobre el Chile urbano pero de manera parcial-regional. Automatizaremos para seleccionar el mejor modelo que maximice el coeficiente de determinación, y sobre ese modelo ejecutaremos la variable independiente para obtener nuestros ingresos estimados y los ingresos medios por zona.
Aplicamos un criterio para evitar que los ingresos promedio estimados por zona salgan de limites razonables. Aun no construimos en uno para evitar que excedan valores muy altos.
1.1 Variable CENSO
Necesitamos calcular las frecuencias a nivel censal de las respuestas correspondientes a la categoría: “Trabajó por un pago o especie” del campo P17 del Censo de personas. Recordemos que ésta fué la más alta correlación en relación a los ingresos expandidos (ver aquí).
1.1.1 Lectura y tratamiento de la tabla censal de personas
Leemos la tabla Censo 2017 de personas que ya tiene integrada la clave zonal:
<- readRDS("censo_personas_con_clave_17") tabla_con_clave
Se aplica un ciclo for a una función fn_reg para una región sobre los 8 modelos existentes para elegir el que posea el mayor coeficiente de determinación, y con una condición if, dentro, validamos que los coeficientes de la regresión sean estadisticamente significativos.
<- function(ff){
fn_reg
<- filter(tabla_con_clave, tabla_con_clave$AREA ==1)
tabla_con_clave_u <- filter(tabla_con_clave_u, tabla_con_clave_u$REGION == ff)
tabla_con_clave_u
<- tabla_con_clave_u[,-c(1,2,4:31,33:48),drop=F]
tabla_con_clave_f
<- tabla_con_clave_f$COMUNA
codigos <- seq(1:nrow(tabla_con_clave_f))
rango <- paste("0",codigos[rango], sep = "")
cadena <- substr(cadena,(nchar(cadena)[rango])-(4),6)
cadena <- as.data.frame(codigos)
codigos <- as.data.frame(cadena)
cadena <- cbind(tabla_con_clave_f,cadena)
comuna_corr <- comuna_corr[,-c(1),drop=FALSE]
comuna_corr names(comuna_corr)[3] <- "código"
<- comuna_corr
tabla_con_clave_f
<- filter(tabla_con_clave_f, tabla_con_clave_f$P17 == 1)
claves_con_1
<- xtabs(~P17+clave, data=claves_con_1)
con4 <- as.data.frame(con4)
con4
= merge( x = con4, y =claves_con_1, by = "clave", all.x = TRUE)
trabajo_001
<- unique(trabajo_001)
trabajo003 <- trabajo003[,-c(2,4)]
trabajo003
<- readRDS("Ingresos_expandidos_urbano_17.rds")
df_2017_2
= merge( x = trabajo003, y = df_2017_2, by = "código", all.x = TRUE)
comunas_censo_casen_666
<- readRDS("tabla_de_prop_pob.rds")
tabla_de_prop_pob names(tabla_de_prop_pob)[1] <- "clave"
= merge( x = comunas_censo_casen_666, y = tabla_de_prop_pob, by = "clave", all.x = TRUE)
comunas_censo_casen_6666
$multipob <- comunas_censo_casen_6666$ingresos_expandidos*comunas_censo_casen_6666$p
comunas_censo_casen_6666
<- paste0("tablas_regiones/tabla_de_trabajo_multipob_region_",ff,"_urbana.rds")
nombre_1 <- paste0("tablas_regiones/tabla_de_trabajo_multipob_region_",ff,"_urbana.xlsx")
nombre_2
# saveRDS(comunas_censo_casen_6666, nombre_1)
write_xlsx(comunas_censo_casen_6666, nombre_2)
<<- comunas_censo_casen_6666
tabla_de_trabajo
################
### 8.1 Modelo cuadrático
<- lm( multipob~(Freq.x^2) , data=tabla_de_trabajo)
linearMod <- summary(linearMod)
datos <- datos$adj.r.squared
dato <- "cuadrático"
modelo <- "linearMod <- lm( multi_pob~(Freq.x^2) , data=h_y_m_comuna_corr_01)"
sintaxis <- cbind(modelo,dato,sintaxis)
modelos1
### 8.2 Modelo cúbico
<- lm( multipob~(Freq.x^3) , data=tabla_de_trabajo)
linearMod <- summary(linearMod)
datos <- datos$adj.r.squared
dato <- "cúbico"
modelo <- "linearMod <- lm( multi_pob~(Freq.x^3) , data=h_y_m_comuna_corr_01)"
sintaxis <- cbind(modelo,dato,sintaxis)
modelos2
### 8.3 Modelo logarítmico
<- lm( multipob~log(Freq.x) , data=tabla_de_trabajo)
linearMod <- summary(linearMod)
datos <- datos$adj.r.squared
dato <- "logarítmico"
modelo <- "linearMod <- lm( multi_pob~log(Freq.x) , data=h_y_m_comuna_corr_01)"
sintaxis <- cbind(modelo,dato,sintaxis)
modelos3
### 8.5 Modelo con raíz cuadrada
<- lm( multipob~sqrt(Freq.x) , data=tabla_de_trabajo)
linearMod <- summary(linearMod)
datos <- datos$adj.r.squared
dato <- "raíz cuadrada"
modelo <- "linearMod <- lm( multi_pob~sqrt(Freq.x) , data=h_y_m_comuna_corr_01)"
sintaxis <- cbind(modelo,dato,sintaxis)
modelos5
### 8.6 Modelo raíz-raíz
<- lm( sqrt(multipob)~sqrt(Freq.x) , data=tabla_de_trabajo)
linearMod <- summary(linearMod)
datos <- datos$adj.r.squared
dato <- "raíz-raíz"
modelo <- "linearMod <- lm( sqrt(multi_pob)~sqrt(Freq.x) , data=h_y_m_comuna_corr_01)"
sintaxis <- cbind(modelo,dato,sintaxis)
modelos6
### 8.7 Modelo log-raíz
<- lm( log(multipob)~sqrt(Freq.x) , data=tabla_de_trabajo)
linearMod <- summary(linearMod)
datos <- datos$adj.r.squared
dato <- "log-raíz"
modelo <- "linearMod <- lm( log(multi_pob)~sqrt(Freq.x) , data=h_y_m_comuna_corr_01)"
sintaxis <- cbind(modelo,dato,sintaxis)
modelos7
### 8.8 Modelo raíz-log
<- lm( sqrt(multipob)~log(Freq.x) , data=tabla_de_trabajo)
linearMod <- summary(linearMod)
datos <- datos$adj.r.squared
dato <- "raíz-log"
modelo <- "linearMod <- lm( sqrt(multi_pob)~log(Freq.x) , data=h_y_m_comuna_corr_01)"
sintaxis <- cbind(modelo,dato,sintaxis)
modelos8
### 8.9 Modelo log-log
<- lm( log(multipob)~log(Freq.x) , data=tabla_de_trabajo)
linearMod <- summary(linearMod)
datos <- datos$adj.r.squared
dato <- "log-log"
modelo <- "linearMod <- lm( log(multi_pob)~log(Freq.x) , data=h_y_m_comuna_corr_01)"
sintaxis <- cbind(modelo,dato,sintaxis)
modelos9
<- rbind(modelos1, modelos2,modelos3,modelos5,modelos6,modelos7,modelos8,modelos9)
modelos_bind <- as.data.frame(modelos_bind)
modelos_bind <<- tabla_de_trabajo
h_y_m_comuna_corr_01
<- cbind(row.names(modelos_bind),modelos_bind)
modelos_bind names(modelos_bind)[1] <- "n"
$dato <- as.numeric(modelos_bind$dato)
modelos_bind<- modelos_bind[order(modelos_bind$dato, decreasing = T ),]
modelos_bind
for(i in modelos_bind$n) {
<- modelos_bind[i,1]
numero <- as.numeric(numero)
numero
<- h_y_m_comuna_corr_01
h_y_m_comuna_corr <- numero
metodo switch (metodo,
case = linearMod <- lm( multipob~(Freq.x^2) , data=h_y_m_comuna_corr),
case = linearMod <- lm( multipob~(Freq.x^3) , data=h_y_m_comuna_corr),
case = linearMod <- lm( multipob~log(Freq.x) , data=h_y_m_comuna_corr),
case = linearMod <- lm( multipob~sqrt(Freq.x) , data=h_y_m_comuna_corr),
case = linearMod <- lm( sqrt(multipob)~sqrt(Freq.x) , data=h_y_m_comuna_corr),
case = linearMod <- lm( log(multipob)~sqrt(Freq.x) , data=h_y_m_comuna_corr),
case = linearMod <- lm( sqrt(multipob)~log(Freq.x) , data=h_y_m_comuna_corr),
case = linearMod <- lm( log(multipob)~log(Freq.x) , data=h_y_m_comuna_corr)
)
<<- summary(linearMod)
rq <- rq$coefficients[8] < 0.001
valor1 <- rq$coefficients[7] < 0.001
valor2
if(valor2 == TRUE & valor1 == TRUE) {
print("------")
print(paste0("region ", ff))
print(modelos_bind[i,2])
print(rq)
break
}
}
<- rq$coefficients[1]
aa <- rq$coefficients[2]
bb
$est_ing <- exp(aa+bb*log(tabla_de_trabajo$Freq.x))
tabla_de_trabajo
$ing_medio_zona <- tabla_de_trabajo$est_ing /(tabla_de_trabajo$personas * tabla_de_trabajo$p)
tabla_de_trabajo
<- paste0("tablas_regiones/tabla_de_trabajo_region_",ff,"_u.xlsx")
nombre_3 <- paste0("tablas_regiones/tabla_de_trabajo_region_",ff,"_u.dbf")
nombre_4
write_xlsx(tabla_de_trabajo, nombre_3)
write.dbf(tabla_de_trabajo, nombre_4)
## Estadísticos
<- readRDS("Ingresos_expandidos_urbano_17.rds")
ingresos kbl(ingresos) %>%
kable_styling(bootstrap_options = c("striped", "hover")) %>%
kable_paper() %>%
scroll_box(width = "100%", height = "300px")
### Promedio
<- tabla_de_trabajo %>%
t_de_c group_by(código.y) %>%
summarize(mean = mean(ing_medio_zona, na.rm = TRUE))
names(t_de_c)[1] <- "código"
<- merge( x = ingresos, y = t_de_c, by = "código", all.x = TRUE)
estadisticos_finales
### Desviación standard
<- tabla_de_trabajo %>%
t_de_c_2 group_by(código.y) %>%
summarize(sd = sd(ing_medio_zona, na.rm = TRUE))
names(t_de_c_2)[1] <- "código"
<- merge( x = estadisticos_finales, y = t_de_c_2, by = "código", all.x = TRUE)
estadisticos_finales
### Mínimo
<- tabla_de_trabajo %>%
t_de_c_3 group_by(código.y) %>%
summarize(min = min(ing_medio_zona, na.rm = TRUE))
names(t_de_c_3)[1] <- "código"
<- merge( x = estadisticos_finales, y = t_de_c_3, by = "código", all.x = TRUE)
estadisticos_finales
### Máximo
<- tabla_de_trabajo %>%
t_de_c_4 group_by(código.y) %>%
summarize(max = max(ing_medio_zona, na.rm = TRUE))
names(t_de_c_4)[1] <- "código"
<- merge( x = estadisticos_finales, y = t_de_c_4, by = "código", all.x = TRUE)
estadisticos_finales
### Mediana
<- tabla_de_trabajo %>%
t_de_c_5 group_by(código.y) %>%
summarize(median = median(ing_medio_zona, na.rm = TRUE))
names(t_de_c_5)[1] <- "código"
<- merge( x = estadisticos_finales, y = t_de_c_5, by = "código", all.x = TRUE)
estadisticos_finales
<- paste0("tablas_regiones/estadisticos_finales_region_",ff,"_u.xlsx")
nombre_5 <- paste0("tablas_regiones/estadisticos_finales_region_",ff,"_u.dbf")
nombre_6
write_xlsx(estadisticos_finales, nombre_5)
write.dbf(estadisticos_finales, nombre_6)
}
1.1.2 Generalización a las 16 regiones
for (ff in 1:16) {
fn_reg(ff)
}
## [1] "------"
## [1] "region 1"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.80221 -0.04364 0.00641 0.05831 0.19431
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.13441 0.12089 108.6 <2e-16 ***
## log(Freq.x) 1.06604 0.01671 63.8 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1178 on 82 degrees of freedom
## (2 observations deleted due to missingness)
## Multiple R-squared: 0.9803, Adjusted R-squared: 0.98
## F-statistic: 4070 on 1 and 82 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 2"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.56590 -0.06268 -0.00230 0.09399 0.39941
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.11756 0.12251 107.07 <2e-16 ***
## log(Freq.x) 1.08183 0.01699 63.69 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1548 on 153 degrees of freedom
## Multiple R-squared: 0.9636, Adjusted R-squared: 0.9634
## F-statistic: 4056 on 1 and 153 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 3"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.92668 -0.11178 0.03194 0.09412 0.81367
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.33031 0.12599 105.80 <2e-16 ***
## log(Freq.x) 1.04410 0.01846 56.56 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1882 on 86 degrees of freedom
## Multiple R-squared: 0.9738, Adjusted R-squared: 0.9735
## F-statistic: 3199 on 1 and 86 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 4"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.38856 -0.06064 0.00479 0.05465 1.57365
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.24733 0.07055 187.8 <2e-16 ***
## log(Freq.x) 1.03072 0.01024 100.7 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1533 on 192 degrees of freedom
## Multiple R-squared: 0.9814, Adjusted R-squared: 0.9813
## F-statistic: 1.013e+04 on 1 and 192 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 5"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.56585 -0.08191 0.01045 0.09670 0.57219
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.344140 0.033018 404.1 <2e-16 ***
## log(Freq.x) 1.029538 0.005011 205.5 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1508 on 705 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.9836, Adjusted R-squared: 0.9836
## F-statistic: 4.222e+04 on 1 and 705 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 6"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.88841 -0.08568 0.01613 0.08393 0.70457
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.270613 0.037336 355.4 <2e-16 ***
## log(Freq.x) 1.031145 0.005798 177.8 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1622 on 289 degrees of freedom
## Multiple R-squared: 0.9909, Adjusted R-squared: 0.9909
## F-statistic: 3.162e+04 on 1 and 289 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 7"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.56096 -0.09407 0.00022 0.09547 0.58585
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.194444 0.036408 362.4 <2e-16 ***
## log(Freq.x) 1.033460 0.005584 185.1 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1469 on 314 degrees of freedom
## Multiple R-squared: 0.9909, Adjusted R-squared: 0.9909
## F-statistic: 3.425e+04 on 1 and 314 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 8"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.63018 -0.08073 0.00398 0.09089 0.63829
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.244337 0.038309 345.7 <2e-16 ***
## log(Freq.x) 1.039956 0.005651 184.0 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1406 on 482 degrees of freedom
## Multiple R-squared: 0.986, Adjusted R-squared: 0.9859
## F-statistic: 3.386e+04 on 1 and 482 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 9"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.52771 -0.07164 0.01152 0.08830 0.51674
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.32733 0.04397 303.1 <2e-16 ***
## log(Freq.x) 1.01354 0.00665 152.4 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1447 on 267 degrees of freedom
## Multiple R-squared: 0.9886, Adjusted R-squared: 0.9886
## F-statistic: 2.323e+04 on 1 and 267 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 10"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.84706 -0.08772 0.01168 0.09073 0.82473
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.121051 0.051700 253.8 <2e-16 ***
## log(Freq.x) 1.039975 0.007657 135.8 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1684 on 219 degrees of freedom
## (11 observations deleted due to missingness)
## Multiple R-squared: 0.9883, Adjusted R-squared: 0.9882
## F-statistic: 1.845e+04 on 1 and 219 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 11"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.29595 -0.03726 0.01726 0.06128 0.48127
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.09285 0.10484 124.88 <2e-16 ***
## log(Freq.x) 1.04935 0.01612 65.09 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1373 on 38 degrees of freedom
## (2 observations deleted due to missingness)
## Multiple R-squared: 0.9911, Adjusted R-squared: 0.9909
## F-statistic: 4237 on 1 and 38 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 12"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.23886 -0.04641 0.01746 0.05216 0.16409
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.35730 0.10573 126.33 <2e-16 ***
## log(Freq.x) 1.03457 0.01507 68.64 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08727 on 54 degrees of freedom
## (2 observations deleted due to missingness)
## Multiple R-squared: 0.9887, Adjusted R-squared: 0.9885
## F-statistic: 4712 on 1 and 54 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 13"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.79100 -0.09181 -0.01093 0.08195 0.88476
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.312262 0.032180 413.7 <2e-16 ***
## log(Freq.x) 1.028448 0.004412 233.1 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1449 on 1912 degrees of freedom
## Multiple R-squared: 0.966, Adjusted R-squared: 0.966
## F-statistic: 5.433e+04 on 1 and 1912 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 14"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.93296 -0.05082 0.01332 0.08142 0.63231
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.41438 0.07622 175.99 <2e-16 ***
## log(Freq.x) 1.00595 0.01142 88.08 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1722 on 97 degrees of freedom
## Multiple R-squared: 0.9877, Adjusted R-squared: 0.9875
## F-statistic: 7758 on 1 and 97 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 15"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.75080 -0.01724 0.03871 0.07371 0.15581
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.02772 0.21270 61.25 <2e-16 ***
## log(Freq.x) 1.07196 0.03069 34.93 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1442 on 72 degrees of freedom
## Multiple R-squared: 0.9443, Adjusted R-squared: 0.9435
## F-statistic: 1220 on 1 and 72 DF, p-value: < 2.2e-16
##
## [1] "------"
## [1] "region 16"
## [1] "log-log"
##
## Call:
## lm(formula = log(multipob) ~ log(Freq.x), data = h_y_m_comuna_corr)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.65630 -0.08931 0.01972 0.08602 0.97258
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.539744 0.058259 232.4 <2e-16 ***
## log(Freq.x) 0.984671 0.009331 105.5 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2005 on 151 degrees of freedom
## Multiple R-squared: 0.9866, Adjusted R-squared: 0.9865
## F-statistic: 1.114e+04 on 1 and 151 DF, p-value: < 2.2e-16
1.2 Tablas de trabajo (sobre la cual se calcula la ecuación de regresión)
<- dir("tablas_regiones", pattern = "*.xlsx")
archivos <- as.data.frame(archivos)
archivos <- filter(archivos, grepl("tabla_de_trabajo_multipob_region", archivos) )
archivos <- as.vector(archivos$archivos)
archivos <- data.frame()
receptaculo
for (n in archivos) {
<- paste0("tablas_regiones/",n)
direcciones <- read_xlsx(direcciones)
cargado
<- str_replace_all(direcciones, "tablas_regiones/tabla_de_trabajo_multipob_","")
region <- str_replace_all(region, "_urbana.xlsx","")
region
$region <- paste0(region,"_u")
cargado
<- rbind(receptaculo, cargado)
receptaculo
}
write_xlsx(receptaculo,"tablas_regiones/uniones/Tablas_de_trabajo_u.xlsx")
datatable(head(receptaculo,100),filter = 'bottom',class = 'cell-border stripe',
options = list(
pageLength = 5,
autoWidth = TRUE
))
1.3 Tabla de regresión lineal
<- dir("tablas_regiones", pattern = "*.xlsx")
archivos <- as.data.frame(archivos)
archivos <- filter(archivos, grepl("tabla_de_trabajo_region", archivos) )
archivos <- as.vector(archivos$archivos)
archivos
<- data.frame()
receptaculo
for (n in archivos) {
<- paste0("tablas_regiones/",n)
direcciones <- read_xlsx(direcciones)
cargado
<- str_replace_all(direcciones, "tablas_regiones/tabla_de_trabajo_","")
region <- str_replace_all(region, "_u.xlsx","")
region
$region <- paste0(region,"_u")
cargado
<- rbind(receptaculo, cargado)
receptaculo
} write_xlsx(receptaculo,"tablas_regiones/uniones/Tabla_de_regresión_lineal_u.xlsx")
datatable(head(receptaculo,100),filter = 'bottom',class = 'cell-border stripe',
options = list(
pageLength = 5,
autoWidth = TRUE
))
1.4 Tablas de estadisticas zonales
<- dir("tablas_regiones", pattern = "*.xlsx")
archivos <- as.data.frame(archivos)
archivos <- filter(archivos, grepl("estadisticos_finales_region", archivos) )
archivos <- as.vector(archivos$archivos)
archivos
<- data.frame()
receptaculo
for (n in archivos) {
<- paste0("tablas_regiones/",n)
direcciones <- read_xlsx(direcciones)
cargado <- cargado[,-c(2,3,4,5,6)]
cargado <- filter(cargado, cargado$mean != 'is.na')
cargado
<- str_replace_all(direcciones, "tablas_regiones/estadisticos_finales_","")
region <- str_replace_all(region, "_u.xlsx","")
region
$region <- paste0(region,"_u")
cargado
<- rbind(receptaculo, cargado)
receptaculo
}<- read_xlsx(direcciones)
cargado2 <- cargado2[,c(1,2,3,4,5,6)]
cargado2
<- merge(x = cargado2, y = receptaculo, by = "código", all.x = TRUE)
receptaculo2u write_xlsx(receptaculo2u,"tablas_regiones/uniones/Tablas_de_estadisticas_zonales_u.xlsx")
datatable(head(receptaculo2u,100),filter = 'bottom',class = 'cell-border stripe',
options = list(
pageLength = 5,
autoWidth = TRUE
))
Em un trabajo anterior aquí construimos nuestro campo ingreso medio zona de una sola vez a nivel nacional, en este trabajo lo hemos hecho parcialmente por region, por lo que en teoria debiesemos haber obtenido estimaciones mas cercanas a la realidad, como metodo de prueba haremos lo siguiente:
Tendremos una tabla con cuatro campos:
- clave
- promedio_i
- ing_medio_zona_nacional
- ing_medio_zona_regional
<- read.dbf("tabla_de_trabajo_2 (1).dbf")
tabla_nacional names(tabla_nacional)[14] <- "ingresos_medios_zona"
<- read_xlsx("tablas_regiones/uniones/Tabla_de_regresión_lineal_u.xlsx")
tabla_zonal names(tabla_zonal)[14] <- "ingresos_medios_zonales_parciales"
<- merge(x= tabla_nacional, y= tabla_zonal, by= "clave", all.x = TRUE)
tabla_comprobar <- tabla_comprobar[,c(1,6,14,27)]
tabla_comprobar
datatable(head(tabla_comprobar,100),filter = 'bottom',class = 'cell-border stripe',
options = list(
pageLength = 5,
autoWidth = TRUE
))
$totales <- abs(tabla_comprobar$ingresos_medios_zona - tabla_comprobar$promedio_i.x)
tabla_comprobar
$parciales <- abs(tabla_comprobar$ingresos_medios_zonales_parciales - tabla_comprobar$promedio_i.x)
tabla_comprobar
datatable(head(tabla_comprobar,100),filter = 'bottom',class = 'cell-border stripe',
options = list(
pageLength = 5,
autoWidth = TRUE
))
sum(tabla_comprobar$totales, na.rm = TRUE)
## [1] 194416972
sum(tabla_comprobar$parciales, na.rm = TRUE)
## [1] 177889562
length(tabla_comprobar$totales)
## [1] 5165
length(tabla_comprobar$parciales)
## [1] 5165