📊 Introducción a R

Tu primer modelo econométrico en R: lm(), summary() y flujo de trabajo

lm() data.frame summary()
Módulo 11 de 12
💡 Piénsalo así: R es tu laboratorio estadístico: con lm() "mezclas" variables y con summary() "lees los resultados del experimento".
  • Al final de este módulo podrás: Cargar y explorar un data.frame en R.
  • Estimar un modelo de regresión lineal con la función lm().
  • Interpretar la salida de summary(): coeficientes, p-valores, R², F-test.
  • Crear gráficos básicos de diagnóstico (residuos vs ajustados, Q-Q).
  • Conceptos Fundamentales

    📦 data.frame y tibble

    Un data.frame es una tabla donde cada columna es una variable y cada fila una observación. La función head() muestra las primeras filas, str() muestra la estructura, y names() los nombres. Con $ accedes a columnas: datos$ingreso. R distingue mayúsculas y minúsculas.

    # Cargar datos datos <- read.csv("encuesta.csv") head(datos) str(datos) summary(datos)

    📐 lm() (Linear Model)

    lm(y ~ x1 + x2, data = df) es la función principal para estimar MCO. La fórmula y ~ x1 + x2 especifica el modelo. R automáticamente incluye el intercepto (constante). Para omitirlo: y ~ x1 - 1. Guarda el resultado en un objeto (modelo <- lm(...)).

    # Modelo MCO simple modelo <- lm(ingreso ~ educacion + experiencia, data = encuesta) modelo # solo coeficientes

    📊 summary()

    summary(modelo) muestra: coeficientes estimados, errores estándar, t-estadísticos, p-valores, R², R² ajustado, F-test global, y sigma (raíz del ECM). Los códigos de significancia: *** p<0.001, ** p<0.01, * p<0.05, . p<0.1.

    # Resultados completos summary(modelo) # Extraer componentes coef(modelo) confint(modelo) vcov(modelo)

    🎨 Gráficos básicos

    R tiene gráficos integrados potentes: plot(y ~ x) para dispersión, hist() para histogramas, boxplot() para diagramas de caja. Para diagnóstico: plot(modelo) genera 4 gráficos: residuos vs ajustados, Q-Q, Scale-Location, y Residuals vs Leverage.

    # Gráfico de diagnóstico plot(modelo) # Dispersión con recta plot(ingreso ~ educacion, data = encuesta) abline(modelo, col = "blue")

    🔧 lm() object internals

    Un objeto lm guarda: $coefficients, $residuals, $fitted.values, $model (datos usados), $call, $terms. Con names(modelo) ves todo. La función residuals() extrae residuos, fitted() extrae ajustados. predict(modelo, newdata) predice en nuevos datos.

    # Explorar el objeto lm names(modelo) resid <- residuals(modelo) ajust <- fitted(modelo) pred <- predict(modelo, nuevo)

    📈 tidyverse y más allá

    El paquete tidyverse (dplyr, ggplot2, tidyr) ofrece una gramática para manipulación de datos y gráficos modernos. Ejemplo: datos %>% filter(ingreso > 1000) %>% ggplot(aes(x=educacion, y=ingreso)) + geom_point() + geom_smooth(method="lm"). broom::tidy(modelo) extrae coeficientes como data.frame.

    library(tidyverse) library(broom) tidy(modelo) # tabla de coeficientes glance(modelo) # estadísticos globales
    Ejemplo paso a paso: Primer modelo en R

    Usamos datos simulados de ingreso (en miles USD) y educación (años). n=100.

    Paso 1: Cargar y explorar

    encuesta <- data.frame(educ=sample(8:20,100,replace=T), ingreso=rnorm(100,25+2.5*educ,5)) → head(encuesta) muestra educ=12,ingreso=52.3...

    Paso 2: Estimar modelo

    m <- lm(ingreso ~ educ, data=encuesta). R estima por MCO los coeficientes. Podemos verlos simplemente escribiendo "m".

    Paso 3: Interpretar summary

    summary(m): Coeficientes: (Intercept) 24.82***, educ 2.51***. R²=0.78. F-statistic=348.5 on 1 and 98 DF. Interpretación: cada año adicional de educación incrementa el ingreso en $2,510 USD en promedio.

    Paso 4: Diagnóstico rápido

    plot(m) → mira los 4 gráficos. El gráfico Residuos vs Ajustados no debe mostrar patrón (banda horizontal). El Q-Q plot debe seguir la diagonal. Si hay puntos fuera de las bandas, investiga.

    Simulación: lm() en acción

    Simulamos datos y mostramos el resultado como si fuera la consola de R.

    Intercepto
    Pendiente (β₁)
    F-estadístico
    # R Console Output > summary(modelo)
    Mini Quiz: Introducción a R

    Resumen del módulo

  • lm(y ~ x, data=df) estima MCO. summary(modelo) muestra resultados completos.
  • Los objetos lm almacenan coeficientes, residuos, ajustados, y más.
  • plot(modelo) genera 4 gráficos de diagnóstico esenciales.
  • Manipulación de datos: tidyverse (dplyr, ggplot2) para análisis moderno.
  • 💡 Responde las preguntas sobre R.