En las últimas décadas, la econometría ha evolucionado significativamente más allá de las estimaciones clásicas de mínimos cuadrados ordinarios (MCO) de corte transversal. Los enfoques modernos de la econometría, influenciados por autores como Jeffrey Wooldridge y James Stock, enfatizan:
Nota Metodológica: Este documento sirve como plantilla interactiva y reproducible que compila tanto a documentos web (HTML) como impresos (PDF), manteniendo un formato estético premium y riguroso.
Como caso de estudio para esta plantilla, utilizaremos la célebre Ecuación de Salarios de Mincer (1974), la cual modela los determinantes de los ingresos laborales de un individuo basándose en su capital humano (educación y experiencia acumulada).
El modelo clásico de Mincer postula que el logaritmo natural del salario de un individuo está determinado linealmente por sus años de educación formal, y de forma cuadrática (no lineal) por sus años de experiencia en el mercado laboral:
\[\ln(\text{Salario}_i) = \beta_0 + \beta_1 \text{Educ}_i + \beta_2 \text{Exper}_i + \beta_3 \text{Exper}_i^2 + \beta_4 \text{Género}_i + u_i\]
Donde: * \(\ln(\text{Salario}_i)\): Logaritmo natural del salario mensual del individuo \(i\). * \(\text{Educ}_i\): Años de educación completados. * \(\text{Exper}_i\): Años de experiencia laboral. * \(\text{Exper}_i^2\): Término cuadrático para capturar los rendimientos decrecientes de la experiencia. * \(\text{Género}_i\): Variable dicotómica (dummy) donde \(1\) representa mujer y \(0\) hombre (control de brecha salarial). * \(u_i\): Término de error estocástico idéntica e independientemente distribuido \(u_i \sim N(0, \sigma^2)\).
Para que los estimadores MCO sean los Mejores Estimadores Lineales Insesgados (MELI / BLUE), deben cumplirse los siguientes supuestos:
A continuación, generaremos un conjunto de datos sintético representativo de \(N = 500\) trabajadores para ilustrar la estimación empírica en R.
# Fijar semilla para reproducibilidad
set.seed(2026)
n <- 500
# Simulación de variables explicativas
educ <- round(runif(n, min = 8, max = 20)) # Entre primaria y postgrado
exper <- round(runif(n, min = 0, max = 40)) # Años de experiencia
genero <- rbinom(n, 1, 0.5) # 50% de probabilidad de ser mujer
# Generación del término de error con leve heterocedasticidad simulada
error <- rnorm(n, mean = 0, sd = 0.2 + 0.01 * exper)
# Ecuación de Mincer teórica:
# ln(salario) = 5.8 + 0.08 * educ + 0.04 * exper - 0.0005 * exper^2 - 0.15 * genero + error
ln_salario <- 5.8 + 0.08 * educ + 0.04 * exper - 0.0005 * (exper^2) - 0.15 * genero + error
salario <- exp(ln_salario)
# Crear Data Frame
datos_laborales <- data.frame(
salario = salario,
ln_salario = ln_salario,
educ = educ,
exper = exper,
genero = factor(genero, labels = c("Hombre", "Mujer"))
)
A continuación, visualizamos una muestra de las primeras observaciones utilizando una tabla elegante:
knitr::kable(
head(datos_laborales, 10),
caption = "Tabla 1: Muestra de las Primeras 10 Observaciones Simuladas",
digits = 2
)
| salario | ln_salario | educ | exper | genero |
|---|---|---|---|---|
| 1949.28 | 7.58 | 16 | 15 | Mujer |
| 2049.16 | 7.63 | 15 | 28 | Mujer |
| 1582.92 | 7.37 | 10 | 30 | Mujer |
| 1003.35 | 6.91 | 11 | 7 | Hombre |
| 1639.84 | 7.40 | 15 | 14 | Hombre |
| 421.67 | 6.04 | 8 | 3 | Mujer |
| 2412.47 | 7.79 | 14 | 18 | Mujer |
| 5500.82 | 8.61 | 18 | 26 | Hombre |
| 2888.79 | 7.97 | 11 | 37 | Hombre |
| 2783.72 | 7.93 | 15 | 24 | Hombre |
Construimos un gráfico descriptivo moderno para analizar la distribución del ingreso:
if (require("ggplot2")) {
ggplot(datos_laborales, aes(x = salario, fill = genero)) +
geom_density(alpha = 0.6) +
scale_fill_manual(values = c("#2B6CB0", "#E53E3E")) +
labs(
title = "Distribución del Salario Mensual por Género",
subtitle = "Evidencia descriptiva de brecha de ingresos",
x = "Salario Mensual (USD)",
y = "Densidad",
fill = "Género"
) +
theme_minimal() +
theme(
text = element_text(family = "Outfit"),
plot.title = element_text(face = "bold", size = 14, color = "#1A365D")
)
} else {
# Fallback a gráfico base en caso de no tener ggplot2 instalado
plot(density(datos_laborales$salario), main = "Densidad de Salario")
}
Gráfico 1: Densidad de Salarios por Género
Procedemos a estimar los coeficientes mediante Mínimos Cuadrados
Ordinarios (MCO) utilizando la función lm() de R.
modelo_mincer <- lm(ln_salario ~ educ + exper + I(exper^2) + genero, data = datos_laborales)
resumen <- summary(modelo_mincer)
Presentamos la tabla de regresión estructurada con los coeficientes, errores estándar y significancia estadística:
coeficientes <- coef(resumen)
knitr::kable(
coeficientes,
caption = "Tabla 2: Coeficientes Estimados por Mínimos Cuadrados Ordinarios (MCO)",
col.names = c("Estimación", "Error Estándar", "Estadístico t", "Valor p (Pr(>|t|))"),
digits = 5
)
| Estimación | Error Estándar | Estadístico t | Valor p (Pr(>|t|)) | |
|---|---|---|---|---|
| (Intercept) | 5.78928 | 0.09493 | 60.98672 | 0.00000 |
| educ | 0.08102 | 0.00541 | 14.97398 | 0.00000 |
| exper | 0.03669 | 0.00634 | 5.78415 | 0.00000 |
| I(exper^2) | -0.00036 | 0.00015 | -2.35203 | 0.01906 |
| generoMujer | -0.14377 | 0.03734 | -3.85078 | 0.00013 |
educ (0.081) sugiere que por cada año adicional de
educación formal, el salario promedio del trabajador se incrementa en
aproximadamente un 8.1%, manteniendo constantes los
demás factores.exper es positivo (0.0367) y el de su cuadrado es negativo
(-3.6^{-4}), confirmando la hipótesis de rendimientos marginales
decrecientes de la experiencia.Un enfoque moderno exige evaluar los supuestos del modelo para asegurar la validez de la inferencia.
Para evaluar si la varianza del error es constante, realizamos el test de Breusch-Pagan.
# Comprobación de heterocedasticidad
if (require("lmtest") && require("sandwich")) {
bp_test <- bptest(modelo_mincer)
print(bp_test)
} else {
# Cálculo manual simplificado o mensaje
cat("Para pruebas formales de heterocedasticidad, se recomienda instalar los paquetes 'lmtest' y 'sandwich'.\n")
}
##
## studentized Breusch-Pagan test
##
## data: modelo_mincer
## BP = 47.313, df = 4, p-value = 1.312e-09
Si existe heterocedasticidad (varianza no constante), los errores estándar convencionales están sesgados. En tal caso, debemos corregirlos utilizando estimadores robustos de White o de Huber-White (HC1).
if (require("sandwich") && require("lmtest")) {
# Coeficientes robustos a la heterocedasticidad (HC1)
coeftest(modelo_mincer, vcov = vcovHC(modelo_mincer, type = "HC1"))
}
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.78927962 0.09222035 62.7766 < 2.2e-16 ***
## educ 0.08102424 0.00563506 14.3786 < 2.2e-16 ***
## exper 0.03669393 0.00579377 6.3333 5.391e-10 ***
## I(exper^2) -0.00036451 0.00016081 -2.2667 0.0238405 *
## generoMujer -0.14377452 0.03702811 -3.8828 0.0001172 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Visualizamos el comportamiento de los residuos frente a los valores ajustados para evaluar la linealidad y la varianza de los errores:
datos_laborales$residuos <- residuals(modelo_mincer)
datos_laborales$ajustados <- fitted(modelo_mincer)
if (require("ggplot2")) {
ggplot(datos_laborales, aes(x = ajustados, y = residuos)) +
geom_point(alpha = 0.5, color = "#2B6CB0") +
geom_hline(yintercept = 0, linetype = "dashed", color = "red", size = 1) +
geom_smooth(method = "loess", color = "#4A5568", se = FALSE) +
labs(
title = "Residuos vs. Valores Ajustados",
subtitle = "Evaluación gráfica de homocedasticidad y linealidad",
x = "Valores Ajustados (ln_salario)",
y = "Residuos estocásticos"
) +
theme_minimal() +
theme(
text = element_text(family = "Outfit"),
plot.title = element_text(face = "bold", size = 14, color = "#1A365D")
)
} else {
plot(modelo_mincer, which = 1)
}
Gráfico 2: Análisis de Residuos vs Valores Ajustados
Este reporte demuestra la viabilidad y potencia del uso de RMarkdown combinado con RStudio para estructurar análisis econométricos de alta calidad académica y estética visual.
Knit (o Ctrl+Shift+K) en RStudio. La
plantilla importará automáticamente el archivo styles.css
para aplicar la paleta institucional de colores y las fuentes
tipográficas.\newpage y
mantendrá el formato matemático intacto.