R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

#Introducción En este análisis de regresión múltiple se evaluaron todas las variables que pueden influir en el ingreso per cápita de cada municipio, con el fin de crear el mejor modelo de regresión que permita identificar cuáles factores ofrecen una mejor explicación de los cambios en dicho ingreso.

Preparación de Datos

library(readxl)
data_rlm <- read_excel("C:/Users/19392/Documents/data_rlm.xlsx")
data <- data_rlm
library(corrplot)
## corrplot 0.95 loaded
datos <- data.frame(data_rlm$ing_pc,data_rlm$bach_pct,
                    data_rlm$desem_pct,data_rlm$banda_pct,
                    data_rlm$pobreza_pct,data_rlm$tam_hogar)

names(datos) <- c("Ingreso per Cápita $","Educación Post-Secundaria %",
                  "Tasa de Desmpleo %","Hogares con Banda Ancha %",
                  "Población bajo Pobreza %","Tamaño Promedio de Hogar")

head(datos)
##   Ingreso per Cápita $ Educación Post-Secundaria % Tasa de Desmpleo %
## 1                10225                       15.56               9.89
## 2                12755                       21.03               9.25
## 3                 7709                       21.31              17.13
## 4                 9413                       19.97               9.98
## 5                17074                       28.35              13.04
## 6                13032                       27.66              10.44
##   Hogares con Banda Ancha % Población bajo Pobreza % Tamaño Promedio de Hogar
## 1                     25.70                    28.90                     3.63
## 2                     34.47                    24.14                     3.02
## 3                     28.41                    30.27                     3.03
## 4                     29.70                    31.47                     3.01
## 5                     35.77                    10.07                     2.63
## 6                     41.08                    27.05                     2.68

Correlaciones

R <- cor(datos, use = "pairwise.complete.obs")

corrplot(R,
         method = "color",        
         type = "lower",          
         addCoef.col = "black",   
         tl.col = "black",        
         tl.srt = 45,             
         diag = FALSE)          

#Interpretación En esta matriz se observa una correlación positiva entre las variables ingreso per cápita, hogares con banda ancha y educación post-secundaria. Esto quiere decir que, a mayor nivel educativo post-secundario, mayor es el ingreso per cápita. Además, logramos evidenciar que, a mayor acceso a internet, es decir, banda ancha, mayores son los ingresos y el nivel educativo post-secundario. Finalmente, determinamos que el nivel de pobreza está relacionado negativamente con las variables ingreso per cápita, educación post-secundaria y hogares con banda ancha. Esto significa que, a mayor pobreza, menores son los ingresos, el nivel educativo post-secundaria y el acceso a internet de banda ancha.

Preparación de Modelo de Regresión

saturado <- datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria`+
            datos$`Tasa de Desmpleo`+datos$`Hogares con Banda Ancha`+
            datos$`Población bajo Pobreza`+datos$`Tamaño Promedio de Hogar`

reg  <- lm(saturado, data=datos) 
summary(reg)
## 
## Call:
## lm(formula = saturado, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4585.2 -1168.6  -125.4  1208.2  5224.9 
## 
## Coefficients:
##                                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                        3757.23    3338.95   1.125 0.264211    
## datos$`Educación Post-Secundaria`   264.14      68.73   3.843 0.000259 ***
## datos$`Tasa de Desmpleo`             20.05      74.85   0.268 0.789533    
## datos$`Hogares con Banda Ancha`     125.32      45.30   2.766 0.007198 ** 
## datos$`Población bajo Pobreza`     -210.64      47.68  -4.417 3.45e-05 ***
## datos$`Tamaño Promedio de Hogar`    816.67     622.90   1.311 0.193997    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1982 on 72 degrees of freedom
## Multiple R-squared:  0.8457, Adjusted R-squared:  0.835 
## F-statistic: 78.93 on 5 and 72 DF,  p-value: < 2.2e-16

#Interpretación Los hallazgos de este modelo evidencian que los cambios en el ingreso per cápita pueden ser mayormente explicados por las variables educación post-secundaria y hogares con banda ancha. Dado que ambas presentan los coeficientes más altos y significativos, se puede afirmar que un incremento en ellas implica un aumento en el ingreso. Por otra parte, la población bajo pobreza presenta un coeficiente negativo pero significativo. Esto significa que, mientras más aumenta la pobreza, más disminuye el ingreso per cápita.

Modelo por Subconjuntos —–

library(leaps)

ajuste <- regsubsets(
  saturado, data = datos,
  nvmax = 6,                 
  method = "exhaustive")    

s <- summary(ajuste)

best_bic  <- which.min(s$bic)
best_r2   <- which.max(s$adjr2)

Visualización de Resultados de Criterios BIC y R2 Ajustado

par(mfrow = c(1,2))

plot(s$bic, type="b", col="red", pch=19,
     xlab="Número de predictores", ylab="BIC",
     main="Criterio BIC")
points(best_bic, s$bic[best_bic], pch=19, cex=1.5, col="blue")

plot(s$adjr2, type="b", col="darkgreen", pch=19,
     xlab="Número de predictores", ylab="R^2-ajustado",
     main="Criterio R^2-ajustado")
points(best_r2, s$adjr2[best_r2], pch=19, cex=1.5, col="blue")

Modelo según Criterio R2 Ajustado

# Variables del mejor modelo
coef_best <- coef(ajuste, best_r2)
vars_best <- names(coef_best)[-1] 

# Modelo final ajustado
f_final <- as.formula(paste("datos$`Ingreso per Cápita` ~", paste(vars_best, collapse = " + ")))

modelo_final <- lm(f_final, data = datos)
modelo_final
## 
## Call:
## lm(formula = f_final, data = datos)
## 
## Coefficients:
##                       (Intercept)  datos$`Educación Post-Secundaria`  
##                            4047.3                              267.2  
##   datos$`Hogares con Banda Ancha`     datos$`Población bajo Pobreza`  
##                             123.0                             -209.4  
##  datos$`Tamaño Promedio de Hogar`  
##                             790.9

Modelo según Criterio BIC

# extraemos las variables del mejor modelo
coef_best_bic <- coef(ajuste, best_bic)
vars_best_bic <- names(coef_best_bic)[-1]

# modelo final ajustado
f_final_bic <- as.formula(paste("datos$`Ingreso per Cápita` ~", paste(vars_best_bic, collapse = " + ")))

modelo_final_bic <- lm(f_final_bic, data = datos)
summary(modelo_final_bic) 
## 
## Call:
## lm(formula = f_final_bic, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4644.3  -995.6   -35.5  1360.0  5031.6 
## 
## Coefficients:
##                                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                        6481.30    2522.94   2.569 0.012215 *  
## datos$`Educación Post-Secundaria`   270.45      67.62   3.999 0.000149 ***
## datos$`Hogares con Banda Ancha`     119.54      44.32   2.697 0.008657 ** 
## datos$`Población bajo Pobreza`     -209.43      47.36  -4.422  3.3e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1979 on 74 degrees of freedom
## Multiple R-squared:  0.842,  Adjusted R-squared:  0.8356 
## F-statistic: 131.5 on 3 and 74 DF,  p-value: < 2.2e-16

#Interpretación Evaluando ambos modelos, podemos concluir que el modelo BIC es el más recomendable, ya que incluye únicamente las variables realmente significativas. El modelo R² incorporaba casi las mismas variables, pero también consideraba el tamaño del hogar, el cual, al evaluar su coeficiente, no resulta significativo en los cambios de la variable dependiente.

#Modelo paso a paso

m0_ing <- lm(datos$`Ingreso per Cápita` ~ 1, data = datos)   
mF_ing <- lm(saturado, data = datos)        

Hacia adelante

m1_step_ing <- step(m0_ing,
                    scope     = list(lower = ~1, upper = formula(mF_ing)),
                    direction = "forward",
                    k         = log(nrow(datos)),
                    trace     = TRUE)
## Start:  AIC=1328.25
## datos$`Ingreso per Cápita` ~ 1
## 
##                                     Df  Sum of Sq        RSS    AIC
## + datos$`Educación Post-Secundaria`  1 1438089133  395800604 1213.0
## + datos$`Población bajo Pobreza`     1 1331610382  502279355 1231.6
## + datos$`Hogares con Banda Ancha`    1 1121735582  712154155 1258.8
## <none>                                            1833889736 1328.2
## + datos$`Tasa de Desmpleo`           1    8354792 1825534944 1332.2
## + datos$`Tamaño Promedio de Hogar`   1    5821235 1828068502 1332.4
## 
## Step:  AIC=1213.01
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria`
## 
##                                    Df Sum of Sq       RSS    AIC
## + datos$`Población bajo Pobreza`    1  77610119 318190485 1200.3
## + datos$`Hogares con Banda Ancha`   1  29535087 366265517 1211.3
## <none>                                          395800604 1213.0
## + datos$`Tamaño Promedio de Hogar`  1   4923053 390877551 1216.4
## + datos$`Tasa de Desmpleo`          1   2817657 392982947 1216.8
## 
## Step:  AIC=1200.34
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria` + 
##     datos$`Población bajo Pobreza`
## 
##                                    Df Sum of Sq       RSS    AIC
## + datos$`Hogares con Banda Ancha`   1  28478762 289711723 1197.4
## <none>                                          318190485 1200.3
## + datos$`Tamaño Promedio de Hogar`  1   4915101 313275383 1203.5
## + datos$`Tasa de Desmpleo`          1    672748 317517737 1204.5
## 
## Step:  AIC=1197.39
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria` + 
##     datos$`Población bajo Pobreza` + datos$`Hogares con Banda Ancha`
## 
##                                    Df Sum of Sq       RSS    AIC
## <none>                                          289711723 1197.4
## + datos$`Tamaño Promedio de Hogar`  1   6489907 283221816 1200.0
## + datos$`Tasa de Desmpleo`          1     17073 289694650 1201.7

Interpretación

Logramos observar en este modelo, una vez más, la evidencia de que las variables significativas sobre el ingreso son el nivel de pobreza, el acceso a banda ancha y la educación post-secundaria.

Hacia atrás

m2_step_ing <- step(mF_ing,
                    direction = "backward",
                    k         = log(nrow(datos)),
                    trace     = TRUE)
## Start:  AIC=1204.26
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria` + 
##     datos$`Tasa de Desmpleo` + datos$`Hogares con Banda Ancha` + 
##     datos$`Población bajo Pobreza` + datos$`Tamaño Promedio de Hogar`
## 
##                                     Df Sum of Sq       RSS    AIC
## - datos$`Tasa de Desmpleo`           1    282063 283221816 1200.0
## - datos$`Tamaño Promedio de Hogar`   1   6754897 289694650 1201.7
## <none>                                           282939753 1204.3
## - datos$`Hogares con Banda Ancha`    1  30072895 313012647 1207.8
## - datos$`Educación Post-Secundaria`  1  58048450 340988202 1214.5
## - datos$`Población bajo Pobreza`     1  76685336 359625088 1218.6
## 
## Step:  AIC=1199.98
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria` + 
##     datos$`Hogares con Banda Ancha` + datos$`Población bajo Pobreza` + 
##     datos$`Tamaño Promedio de Hogar`
## 
##                                     Df Sum of Sq       RSS    AIC
## - datos$`Tamaño Promedio de Hogar`   1   6489907 289711723 1197.4
## <none>                                           283221816 1200.0
## - datos$`Hogares con Banda Ancha`    1  30053567 313275383 1203.5
## - datos$`Educación Post-Secundaria`  1  61021640 344243456 1210.8
## - datos$`Población bajo Pobreza`     1  76514196 359736013 1214.3
## 
## Step:  AIC=1197.39
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria` + 
##     datos$`Hogares con Banda Ancha` + datos$`Población bajo Pobreza`
## 
##                                     Df Sum of Sq       RSS    AIC
## <none>                                           289711723 1197.4
## - datos$`Hogares con Banda Ancha`    1  28478762 318190485 1200.3
## - datos$`Educación Post-Secundaria`  1  62624091 352335814 1208.3
## - datos$`Población bajo Pobreza`     1  76553794 366265517 1211.3

#Interpretación Este modelo también evidencia la significancia de las mismas tres variables sobre el ingreso per cápita.

Híbrido

m3_step_ing <- step(m0_ing,
                    scope     = list(lower = ~1, upper = formula(mF_ing)),
                    direction = "both",
                    k         = log(nrow(datos)),
                    trace     = TRUE)
## Start:  AIC=1328.25
## datos$`Ingreso per Cápita` ~ 1
## 
##                                     Df  Sum of Sq        RSS    AIC
## + datos$`Educación Post-Secundaria`  1 1438089133  395800604 1213.0
## + datos$`Población bajo Pobreza`     1 1331610382  502279355 1231.6
## + datos$`Hogares con Banda Ancha`    1 1121735582  712154155 1258.8
## <none>                                            1833889736 1328.2
## + datos$`Tasa de Desmpleo`           1    8354792 1825534944 1332.2
## + datos$`Tamaño Promedio de Hogar`   1    5821235 1828068502 1332.4
## 
## Step:  AIC=1213.01
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria`
## 
##                                     Df  Sum of Sq        RSS    AIC
## + datos$`Población bajo Pobreza`     1   77610119  318190485 1200.3
## + datos$`Hogares con Banda Ancha`    1   29535087  366265517 1211.3
## <none>                                             395800604 1213.0
## + datos$`Tamaño Promedio de Hogar`   1    4923053  390877551 1216.4
## + datos$`Tasa de Desmpleo`           1    2817657  392982947 1216.8
## - datos$`Educación Post-Secundaria`  1 1438089133 1833889736 1328.2
## 
## Step:  AIC=1200.34
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria` + 
##     datos$`Población bajo Pobreza`
## 
##                                     Df Sum of Sq       RSS    AIC
## + datos$`Hogares con Banda Ancha`    1  28478762 289711723 1197.4
## <none>                                           318190485 1200.3
## + datos$`Tamaño Promedio de Hogar`   1   4915101 313275383 1203.5
## + datos$`Tasa de Desmpleo`           1    672748 317517737 1204.5
## - datos$`Población bajo Pobreza`     1  77610119 395800604 1213.0
## - datos$`Educación Post-Secundaria`  1 184088870 502279355 1231.6
## 
## Step:  AIC=1197.39
## datos$`Ingreso per Cápita` ~ datos$`Educación Post-Secundaria` + 
##     datos$`Población bajo Pobreza` + datos$`Hogares con Banda Ancha`
## 
##                                     Df Sum of Sq       RSS    AIC
## <none>                                           289711723 1197.4
## + datos$`Tamaño Promedio de Hogar`   1   6489907 283221816 1200.0
## - datos$`Hogares con Banda Ancha`    1  28478762 318190485 1200.3
## + datos$`Tasa de Desmpleo`           1     17073 289694650 1201.7
## - datos$`Educación Post-Secundaria`  1  62624091 352335814 1208.3
## - datos$`Población bajo Pobreza`     1  76553794 366265517 1211.3

#Interpretación Este modelo también evidencia la significancia de las mismas tres variables sobre el ingreso per cápita.

#Conclusión Los resultados de este análisis múltiple indican que los ingresos per cápita en los municipios de Puerto Rico pueden verse afectados por el acceso a internet y el nivel de educación. Los modelos muestran que un mayor nivel de educación post-secundaria y un aumento en la accesibilidad al internet se asocian con un incremento en el ingreso. Por otra parte, un aumento en el nivel de pobreza representa una disminución en el ingreso. Estos hallazgos son importantes, ya que pueden servir como base para una planificación política futura más centrada en promover medidas que permitan a los municipios alcanzar mayores ingresos y, en consecuencia, mejorar tanto la educación como la calidad de vida.