Tarea AA 2 U1

Análisis de Correlación y de Regresión Lineal 

Cargar librerías necesarias

library(dplyr) library(ggplot2) library(haven) install.packages(“ggcorrplot”) library(ggcorrplot) library(corrplot) library(car) # Setear setwd(“C:/Users/alexd/Desktop/MAESTRIA/18DEMAYO/24 DE MAYO”) ##Carga de Datos

library(haven)
poblacion <- read.csv("poblacion.csv")
ingresos <- read.csv("ingresos.csv")

#Union de Datos 2 Matrices

library(dplyr)

Adjuntando el paquete: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
datos <- left_join(poblacion, ingresos, by = c("folioviv", "foliohog", "numren"))
# Crear variables clave
datos <- datos %>%
   mutate(
    ingreso = as.numeric(ing_tri),                     # ingreso trimestral
    escolaridad = as.numeric(nivelaprob),              # años de escolaridad
    edad = as.numeric(edad),
    etnia = as.numeric(etnia),
    sexo = as.numeric(sexo)
  )

Filtrar para eliminar NA

datos <- datos %>% filter(!is.na(ingreso), ingreso > 0, escolaridad >= 0, edad >= 15)

#Modelo de regresión simple

modelo_simple <- lm(ingreso ~ escolaridad, data = datos)
summary(modelo_simple)

Call:
lm(formula = ingreso ~ escolaridad, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
 -23266  -10473   -5774    4323 6835581 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   4761.6      125.6   37.92   <2e-16 ***
escolaridad   2058.8       29.0   70.99   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 35750 on 380387 degrees of freedom
Multiple R-squared:  0.01307,   Adjusted R-squared:  0.01307 
F-statistic:  5039 on 1 and 380387 DF,  p-value: < 2.2e-16

Escolaridad (2058.8): cada año adicional de estudios incrementa el ingreso mensual en promedio $2,058.80 MXN, manteniendo todo lo demás constante. # Modelo de regresión múltiple

modelo_multiple <- lm(ingreso ~ escolaridad + edad + sexo + etnia, data = datos)
summary(modelo_multiple)

Call:
lm(formula = ingreso ~ escolaridad + edad + sexo + etnia, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
 -31126  -10529   -5013    4675 6836169 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1491.341    341.564   4.366 1.26e-05 ***
escolaridad  2364.362     30.662  77.111  < 2e-16 ***
edad          134.039      3.443  38.935  < 2e-16 ***
sexo        -5213.278    115.862 -44.995  < 2e-16 ***
etnia        2271.761    128.730  17.647  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 35570 on 380384 degrees of freedom
Multiple R-squared:  0.02282,   Adjusted R-squared:  0.02281 
F-statistic:  2221 on 4 and 380384 DF,  p-value: < 2.2e-16

El modelo muestra que la educación, la edad, el sexo y la etnia influyen significativamente en los ingresos mensuales en México, aunque la capacidad explicativa del modelo sigue siendo baja # Verificar multicolinealidad

library(car)
Cargando paquete requerido: carData

Adjuntando el paquete: 'car'
The following object is masked from 'package:dplyr':

    recode
vif(modelo_multiple)
escolaridad        edad        sexo       etnia 
   1.128904    1.103842    1.001168    1.024181 

Correlación

library(ggcorrplot)
Cargando paquete requerido: ggplot2
cor_matrix <- datos %>% select(ingreso, escolaridad, edad) %>% cor(use = "complete.obs")
ggcorrplot(cor_matrix, lab = TRUE, type = "lower")

Este gráfico confirma visualmente que la escolaridad está débilmente relacionada con el ingreso y que la edad tiene un rol más complejo, ya que su efecto sobre el ingreso no es lineal ni directo, pero sí relevante cuando se controla por otras variables, como mostró el modelo múltiple.

También se observa una relación inversa entre edad y escolaridad, lo que puede explicar parte de la variabilidad del ingreso en generaciones con trayectorias educativas distintas.

Análisis de correlación

datos_cor <- datos %>% select(ingreso, escolaridad, edad, sexo, etnia)
matriz_cor <- cor(datos_cor, use = "complete.obs")
ggcorrplot(matriz_cor, lab = TRUE, type = "lower")

Esta matriz de correlaciones muestra que, aunque la escolaridad sí está relacionada con el ingreso, esa relación es bastante débil (correlación de 0.11). Esto coincide con lo que vimos en el modelo de regresión simple, donde la escolaridad explicaba solo una pequeña parte de las diferencias de ingreso.

En cuanto a la edad, su relación con el ingreso casi no se percibe en esta matriz. Sin embargo, cuando la analizamos junto a otras variables (como en el modelo múltiple), sí empieza a mostrar un impacto más claro.

Un detalle interesante es la relación negativa entre edad y escolaridad (−0.31): las personas mayores, en promedio, tienden a tener menos años de educación. Esto probablemente se deba a cambios generacionales en el acceso a la educación.

Por último, aunque la correlación entre sexo e ingreso es baja (−0.07), ya nos da una señal de alerta: los ingresos de las mujeres tienden a ser más bajos. Esta diferencia se hace mucho más evidente cuando se analiza con mayor profundidad en el modelo de regresión, donde resulta ser estadísticamente significativa. # Matriz con p-valores

cor_matriz_pval <- function(data) {
  n <- ncol(data)
  matriz_pval <- matrix(NA, n, n)
  rownames(matriz_pval) <- colnames(data)
  colnames(matriz_pval) <- colnames(data)
  for (i in 1:n) {
    for (j in 1:n) {
      matriz_pval[i, j] <- cor.test(data[[i]], data[[j]])$p.value
    }
  }
  return(matriz_pval)
}
p_values <- cor_matriz_pval(datos_cor)
print(p_values)
                  ingreso  escolaridad         edad         sexo         etnia
ingreso      0.000000e+00 0.000000e+00 8.009135e-46 0.000000e+00 2.911702e-184
escolaridad  0.000000e+00 0.000000e+00 0.000000e+00 7.495441e-30  0.000000e+00
edad         8.009135e-46 0.000000e+00 0.000000e+00 7.317823e-36  4.106907e-97
sexo         0.000000e+00 7.495441e-30 7.317823e-36 0.000000e+00  1.412092e-04
etnia       2.911702e-184 0.000000e+00 4.106907e-97 1.412092e-04  0.000000e+00

Todos los valores p presentados son extremadamente pequeños (<< 0.05), lo que indica que hay evidencia estadística suficiente para afirmar que existe una relación significativa entre el ingreso y las variables escolaridad, edad, sexo y etnia. Esto respalda la inclusión de estas variables en los modelos de regresión lineal y justifica su análisis individual y conjunto

Gráfico de dispersión con línea de regresión

ggplot(datos %>% filter(ingreso < 100000), aes(x = escolaridad, y = ingreso)) +
  geom_point(color = "blue", alpha = 0.4) +
  geom_smooth(method = "lm", color = "red", se = FALSE) +
  labs(title = "Relación entre Escolaridad e Ingreso",
       x = "Años de Escolaridad",
       y = "Ingreso Trimestral") +
  theme_minimal() 
`geom_smooth()` using formula = 'y ~ x'

Modelo de regresión lineal simple

modelo1 <- lm(ingreso ~ escolaridad, data = datos)
summary(modelo1)

Call:
lm(formula = ingreso ~ escolaridad, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
 -23266  -10473   -5774    4323 6835581 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   4761.6      125.6   37.92   <2e-16 ***
escolaridad   2058.8       29.0   70.99   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 35750 on 380387 degrees of freedom
Multiple R-squared:  0.01307,   Adjusted R-squared:  0.01307 
F-statistic:  5039 on 1 and 380387 DF,  p-value: < 2.2e-16

El modelo simple evidencia una relación positiva y significativa entre los años de escolaridad y el ingreso trimestral. Sin embargo, el bajo valor de R² (1.3%) indica que la escolaridad, aunque importante, no es el único factor que determina el ingreso.

Predicciones

Crear nueva variable: ingreso mensual

datos <- datos %>%
  mutate(ingreso_mensual = ingreso / 3)

Ajustar modelo con ingreso mensual

modelo_mensual <- lm(ingreso_mensual ~ escolaridad, data = datos)

Ver resumen del modelo

summary(modelo_mensual)

Call:
lm(formula = ingreso_mensual ~ escolaridad, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
  -7755   -3491   -1925    1441 2278527 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 1587.211     41.858   37.92   <2e-16 ***
escolaridad  686.252      9.667   70.99   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 11920 on 380387 degrees of freedom
Multiple R-squared:  0.01307,   Adjusted R-squared:  0.01307 
F-statistic:  5039 on 1 and 380387 DF,  p-value: < 2.2e-16

Predicciones con ingreso trimestral

nuevos <- data.frame(escolaridad = c(7, 10, 13, 18, 21))
predict(modelo1, nuevos)
       1        2        3        4        5 
19172.92 25349.18 31525.45 41819.22 47995.49 

Predicciones con ingreso mensual

nuevos <- data.frame(escolaridad = c(7, 10, 13, 18, 21))
predict(modelo_mensual, nuevos)
        1         2         3         4         5 
 6390.973  8449.727 10508.482 13939.741 15998.496 

Las estimaciones del modelo muestran que a mayor escolaridad, mayor ingreso mensual estimado. Por ejemplo, una persona con educación universitaria completa (aprox. 18 años de escolaridad) gana alrededor de $13.940 mensuales, mientras que una persona con educación básica (7 años) ganaría en promedio $6.391, lo que implica una diferencia de más del doble. Nota: Todos los ingresos estimados en este análisis están expresados en pesos mexicanos mensuales (MXN), con base en los datos de la Encuesta Nacional de Ingresos y Gastos de los Hogares (ENIGH), procesados en su formato trimestral original y luego ajustados para obtener valores mensuales.

Modelo de regresión múltiple

modelo2 <- lm(ingreso ~ escolaridad + edad + sexo + etnia, data = datos)
summary(modelo2)

Call:
lm(formula = ingreso ~ escolaridad + edad + sexo + etnia, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
 -31126  -10529   -5013    4675 6836169 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1491.341    341.564   4.366 1.26e-05 ***
escolaridad  2364.362     30.662  77.111  < 2e-16 ***
edad          134.039      3.443  38.935  < 2e-16 ***
sexo        -5213.278    115.862 -44.995  < 2e-16 ***
etnia        2271.761    128.730  17.647  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 35570 on 380384 degrees of freedom
Multiple R-squared:  0.02282,   Adjusted R-squared:  0.02281 
F-statistic:  2221 on 4 and 380384 DF,  p-value: < 2.2e-16

El modelo múltiple confirma que la escolaridad tiene un efecto positivo y significativo sobre el ingreso mensual en México, incluso al controlar por edad, sexo y etnia. La edad también influye positivamente, mientras que el sexo refleja una preocupante brecha de ingreso en contra de las mujeres.

Verificar multicolinealidad

vif(modelo2)
escolaridad        edad        sexo       etnia 
   1.128904    1.103842    1.001168    1.024181 

Predicciones múltiples

nuevos2 <- data.frame(
  escolaridad = c(7, 10, 13, 18, 21),
  edad = c(19, 25, 37, 44, 56),
  sexo = c(1, 2, 1, 2, 1),
  etnia = c(1, 1, 1, 1, 1)
)
predict(modelo2, nuevos2)
       1        2        3        4        5 
17647.10 20331.14 34245.98 41792.78 55707.62 

Estas predicciones muestran de forma muy clara cómo se combinan la escolaridad, la edad y el sexo para influir en los ingresos mensuales de las personas.

Cuando todos pertenecen al mismo grupo étnico, podemos ver que quienes tienen más años de estudio y mayor edad tienden a ganar más. Esto va totalmente en línea con lo que propone el modelo de Mincer: a mayor educación, mayor ingreso esperado.

Además, el modelo deja en evidencia una realidad persistente: a igualdad de condiciones, los hombres siguen teniendo ingresos estimados más altos que las mujeres. Esta diferencia, reflejada en el coeficiente negativo asociado al sexo femenino, sugiere la presencia de brechas de género en el mercado laboral que aún no se han cerrado.