MODELO DE REGRESION LINEAL SIMPLE

Introducción

Análisis de regresión lineal simple usando datos sobre horas de estudio y nota obtenida. Se incluyen las fórmulas utilizadas en el modelo y su implementación en R.

El modelo es:

\[ Y_i = \beta_0 + \beta_1 X_i + \varepsilon_i \]

Donde:  
* \(Y_i\): Ingreso Neto i
* \(X_i\): Gasto Familiar (sinarriendo) i
* \(\beta_0\): intercepto (valor esperado si X = 0)
* \(\beta_1\): pendiente (cuánto varía Y por cada valor que varía X)
* \(\varepsilon_i\): error aleatorio


Librerias

# Cargar las librerías necesaria
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.2
## Cargando paquete requerido: zoo
## Warning: package 'zoo' was built under R version 4.4.2
## 
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(knitr)
## Warning: package 'knitr' was built under R version 4.4.2

Base de datos

# Importar la base de datos
Base <- read_excel(
  "C:/Users/BT_/OneDrive/Escritorio/TRABAJOS DE ESTADISTICA/Base de datos Alcaldia.xlsx")

Primeros datos

# Verificar los primeros datos
head(Base)
## # A tibble: 6 × 8
##     `>` Estrato `Ingreso Neto` `No de Personas a Cargo` Gastos Familar (sinarr…¹
##   <dbl>   <dbl>          <dbl> <chr>                                       <dbl>
## 1     1       1         895212 Ninguna                                    367037
## 2     2       1         822988 Ninguna                                    288046
## 3     3       1         812288 Ninguna                                    324915
## 4     4       1         627853 Ninguna                                    282534
## 5     5       1         673359 Ninguna                                    282811
## 6     6       1         696733 Ninguna                                    320497
## # ℹ abbreviated name: ¹​`Gastos Familar (sinarriendo)`
## # ℹ 3 more variables: `Gastos de Arriendo` <dbl>, `Gastos / Ingresos` <dbl>,
## #   `Arriendos/ Ingreso` <dbl>
#Si desea, se renombra las variables
## En lugar de trabajar con nombres largos como "Ingreso Neto" y "Gastos Familiar", los renombramos simplemente como x e y, respectivamente.
names(Base)[names(Base) == "Ingreso Neto"] <- "x"
names(Base)[names(Base) == "Gastos Familar (sinarriendo)"] <- "y"
names(Base)[names(Base) == "Gastos de Arriendo"] <- "z" 
names(Base)[names(Base) == "Estrato"] <- "u"
x <- Base$x
y <- Base$y
z <- Base$z
u <- Base$u 

Cálculo del modelo paso a paso

Cálculo de la pendiente \(\hat{\beta}_1\)

Fórmula:

\[ \hat{\beta}_1 = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2} \]

¿Qué significa?

  • \(x_i\): Ingresos Neto
  • \(y_i\): Gastos Familar (sinarriendo)
  • \(\bar{x}\): promedio de X (pesos)
  • \(\bar{y}\): promedio de Y (pesos)
  • Numerador: covarianza entre X y Y
  • Denominador: varianza de X

¿Por qué se usa así? Porque queremos encontrar la pendiente de la recta que mejor ajusta todos los puntos, minimizando los errores.

x <- Base$x
y <- Base$y
media_x <- mean(x)
media_y <- mean(y)

numerador <- sum((x - media_x) * (y - media_y))
denominador <- sum((x - media_x)^2)
beta_1 <- numerador / denominador
beta_1
## [1] 0.3263488

Interpretación:Por cada peso adicional en gasto familiar sin arriendo, se espera que el ingreso neto aumente 0.326 pesos, en promedio.


Cálculo del intercepto \(\hat{\beta}_0\)

Fórmula:

\[ \hat{\beta}_0 = \bar{y} - \hat{\beta}_1 \bar{x} \]

¿Qué significa?

Es el gasto (X = 0).

beta_0 <- media_y - beta_1 * media_x
beta_0
## [1] 133027.9

Interpretación: 1.3302792^{5} este valor representa el Ingreso Neto esperado cuando el Gasto Familiar (sin arriendo) es cero.


Modelo Ajustado

# Ajustar el modelo de regresión
## Ajustar un modelo de regresión lineal simple, donde tratamos de explicar el gasto familiar (y) en función del ingreso neto (x).
modelo <- lm(y ~ x, data = Base)

## Usar summary(modelo) para obtener un resumen con los coeficientes, el error estándar, los valores p y el R², entre otros datos.
summary(modelo)
## 
## Call:
## lm(formula = y ~ x, data = Base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -274876  -48440   -9871   38139  341567 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.330e+05  2.361e+04   5.634 8.62e-08 ***
## x           3.263e-01  1.998e-02  16.331  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 92780 on 148 degrees of freedom
## Multiple R-squared:  0.6431, Adjusted R-squared:  0.6407 
## F-statistic: 266.7 on 1 and 148 DF,  p-value: < 2.2e-16

Ecuación final del modelo:

\[ \hat{Y}_i = 1.3302792\times 10^{5} + 0.326 \cdot X_i \]


Predicción de valores y cálculo de residuos

Fórmula de predicción:

\[ \hat{Y}_i = \hat{\beta}_0 + \hat{\beta}_1 x_i \]

¿Qué significa?

  • \(\hat{Y}_i\): Es el valor predicho o estimado del Ingreso Neto estimado para la persona i, calculado con el modelo.
  • \(x_i\): Se interpreta como el Gasto Familiar (sinarriendo) real de la persona i.
  • Esta predicción no incluye el error \(\varepsilon_i\), por lo que no es necesariamente exacta.
Base$predicciones <- beta_0 + beta_1 * x
head(Base[, c("x", "y", "predicciones")])
## # A tibble: 6 × 3
##        x      y predicciones
##    <dbl>  <dbl>        <dbl>
## 1 895212 367037      425179.
## 2 822988 288046      401609.
## 3 812288 324915      398117.
## 4 627853 282534      337927.
## 5 673359 282811      352778.
## 6 696733 320497      360406.

Ejemplo: Si una familia reporta un Gasto Familiar (sin arriendo) de 5 millones de pesos, el modelo predice que su Ingreso Neto estimado es de 1.3302955^{5} mil pesos.


Fórmula del residuo:

\[ e_i = y_i - \hat{Y}_i \]

¿Qué significa?

  • \(e_i\): es el residuo o error de predicción para la persona i.
  • Es la diferencia entre la Ingreso observado y la Ingreso estimado por el modelo.
  • Si \(e_i > 0\): el modelo subestimó el Ingreso.
  • Si \(e_i < 0\): el modelo sobreestimó el Ingreso.
Base$predicciones <- beta_0 + beta_1 * x
Base$residuos <- y - Base$predicciones
head(Base[, c("x", "y", "predicciones", "residuos")])
## # A tibble: 6 × 4
##        x      y predicciones residuos
##    <dbl>  <dbl>        <dbl>    <dbl>
## 1 895212 367037      425179.  -58142.
## 2 822988 288046      401609. -113563.
## 3 812288 324915      398117.  -73202.
## 4 627853 282534      337927.  -55393.
## 5 673359 282811      352778.  -69967.
## 6 696733 320497      360406.  -39909.

Interpretación: Los residuos son los errores del modelo: cuánto se desvían las predicciones de los valores reales.


¿Por qué son importantes?

  • Los residuos nos dicen qué tan bien el modelo ajusta cada punto individual.
  • En un buen modelo, los residuos deben ser pequeños y no mostrar patrones sistemáticos.
  • Analizar los residuos permite detectar:
    • Outliers (valores atípicos)
    • Sesgos en la predicción
    • Violaciones de supuestos como homocedasticidad o linealidad

1. Error Cuadrático Medio (ECM)

Fórmula:

\[ ECM = \frac{1}{n} \sum (y_i - \hat{Y}_i)^2 \]

¿Qué significa?

  • Mide el promedio de los errores al cuadrado (es decir, de los residuos).
  • Penaliza más fuertemente los errores grandes.
  • Es útil para comparar modelos: cuanto más bajo el ECM, mejor el ajuste.

Elementos de la fórmula:

  • \(y_i\): valor real observado (nota)
  • \(\hat{Y}_i\): valor estimado por el modelo
  • \(n\): número total de observaciones
ECM <- mean(Base$residuos^2)
ECM
## [1] 8493299666

Interpretación: El ECM nos dice en promedio cuánto se está equivocando el modelo, pero en unidades al cuadrado (no directamente en notas).


2. Raíz del ECM (RMSE)

Fórmula:

\[ RMSE = \sqrt{ECM} \]

¿Qué significa?

  • Es simplemente la raíz cuadrada del ECM, para que la métrica esté en las mismas unidades que la variable dependiente (en este caso, el ingreso).
  • Nos dice el error promedio del modelo.
RMSE <- sqrt(ECM)
RMSE
## [1] 92159.1

Interpretación: El RMSE indica, en promedio, cuánto se desvían las predicciones del modelo respecto a los ingresos reales.


3. Coeficiente de determinación \(R^2\)

Fórmula:

\[ R^2 = 1 - \frac{\sum (y_i - \hat{Y}_i)^2}{\sum (y_i - \bar{y})^2} \]

¿Qué significa?

  • Mide qué proporción de la variación total de la variable dependiente (Ingreso) es explicada por la variable independiente (Gasto Familiar (sinarriendo)).
  • Se interpreta como el porcentaje de la varianza explicada por el modelo.

Elementos de la fórmula:

  • \(\sum (y_i - \hat{Y}_i)^2\): suma de los cuadrados de los residuos → SSE (Sum of Squares of Errors)
  • \(\sum (y_i - \bar{y})^2\): suma de los cuadrados totales → SST (Total Sum of Squares)
  • \(\bar{y}\): media de las notas
SSE <- sum(Base$residuos^2)
SST <- sum((y - media_y)^2)
R2 <- 1 - SSE / SST
R2
## [1] 0.6431057

Interpretación: El \(R^2\) indica que el modelo explica el 64.31% de la variabilidad total en los ingresos de las personas. Un \(R^2\) cercano a 1 indica un ajuste muy bueno; cercano a 0, un ajuste pobre.

plot(x, y, pch = 19, col = "blue",
     xlab = "Ingreso Neto", ylab = "Gastos Familiar (sinarriendo)",
     main = "Regresion lineal: Ingreso Neto ~ Gastos Familiar (sinarriendo)")
abline(beta_0, beta_1, col = "red", lwd = 2)


Gráfico de residuos

plot(Base$predicciones, Base$residuos, pch = 19, col = "darkgreen",
     xlab = "Valores predichos", ylab = "Residuos",
     main = "Residuos vs Valores ajustados")
abline(h = 0, col = "blue", lty = 2)


Conclusión

El análisis muestra una relación positiva entre el Gasto Familiar (sin arriendo) y el Ingreso Neto. El modelo predice que por cada unidad adicional de gasto, el ingreso neto aumenta en promedio 0.33) pesos. El coeficiente de determinación \(R^2\) indica que una parte importante de la variabilidad del ingreso se explica por el gasto familiar.

Validación de supuestos del modelo de regresión

Los modelos de regresión lineal requieren que ciertos supuestos estadísticos se cumplan para que las estimaciones sean válidas y confiables. A continuación validamos los cuatro supuestos fundamentales.


1. Supuesto de linealidad

Descripción:
La relación entre la variable independiente \(X\) (IOngreso Neto) y la dependiente \(Y\) (Gasto Familiar (sinarriendo)) debe ser lineal.

Forma teórica:

\[ E(Y_i | X_i) = \beta_0 + \beta_1 X_i \]

Cómo se verifica:

  • Con un gráfico de los valores ajustados vs valores observados
  • Con un gráfico de los residuos vs valores ajustados
# Gráfico de residuos vs valores ajustados
plot(Base$predicciones, Base$residuos,
     main = "Residuos vs Valores Ajustados",
     xlab = "Valores Ajustados", ylab = "Residuos",
     pch = 19, col = "darkgreen")
abline(h = 0, col = "blue", lty = 2)

Interpretación esperada: Los residuos deben estar distribuidos aleatoriamente alrededor de 0, sin una forma curva ni patrón sistemático.


2. Supuesto de homocedasticidad (varianza constante)

Descripción:
La varianza de los errores debe ser constante a lo largo de todos los valores de \(X\).

Forma teórica:

\[ Var(\varepsilon_i) = \sigma^2, \quad \forall i \]

Cómo se verifica:

  • Gráfico de residuos vs valores ajustados
  • Test de Breusch-Pagan
#Prueba de Breusch-Pagan
library(lmtest)
bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 25.586, df = 1, p-value = 4.232e-07

Interpretación esperada:
- Si el p-valor es mayor a 0.05, no se rechaza la homocedasticidad (lo cual es bueno). - En el gráfico, la dispersión de los residuos debe ser aproximadamente constante (no forma de cono o embudo).


3. Supuesto de normalidad de los errores

Descripción:
Los errores \(\varepsilon_i\) deben estar distribuidos normalmente, especialmente si vamos a hacer pruebas de hipótesis.

Forma teórica:

\[ \varepsilon_i \sim N(0, \sigma^2) \]

Cómo se verifica:

  • Histograma y QQ plot de los residuos
  • Prueba de Shapiro-Wilk
# Histograma de residuos
hist(Base$residuos, 
     main = "Histograma de residuos", 
     col = "lightblue", 
     probability = TRUE,  # Esto es importante para que el eje Y sea una densidad
     xlab = "Residuos")

# Agregar la curva normal (campana de Gauss)
curve(dnorm(x, mean = mean(Base$residuos), sd = sd(Base$residuos)), 
      col = "red", lwd = 2, add = TRUE)

# QQ plot
qqnorm(Base$residuos)
qqline(Base$residuos, col = "red")

# Prueba de normalidad
shapiro.test(Base$residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  Base$residuos
## W = 0.95612, p-value = 0.0001096

Interpretación esperada:

  • El histograma debe parecerse a una campana de Gauss.
  • En el QQ plot, los puntos deben estar alineados con la línea roja.
  • En la prueba de Shapiro-Wilk, un p-valor > 0.05 indica que no se rechaza la normalidad.

4. Supuesto de independencia de los errores

Descripción:
Los errores deben ser independientes entre sí (sin correlación serial).

Forma teórica:

\[ Cov(\varepsilon_i, \varepsilon_j) = 0 \quad \text{para } i \ne j \]

Cómo se verifica:

  • Con la prueba de Durbin-Watson
dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.083, p-value = 5.121e-09
## alternative hypothesis: true autocorrelation is greater than 0

Interpretación esperada:

  • El estadístico de Durbin-Watson debe estar cerca de 2.
  • Un p-valor > 0.05 indica que no hay evidencia de autocorrelación, es decir, los errores son independientes.

Conclusión sobre los supuestos

Si todos los gráficos y pruebas son favorables (residuos aleatorios, varianza constante, distribución normal y errores independientes), podemos decir que los supuestos del modelo se cumplen y las inferencias realizadas con la regresión son confiables.

conlusiones para este modelo

  • linealidad: El gráfico de residuos vs valores ajustados no muestra un patrón sistemático o curvo, lo que sugiere que la relación entre el Ingreso Neto y el Gasto Familiar (sin arriendo) es aproximadamente lineal. Por lo tanto, el supuesto de linealidad se cumple.

  • Homocedasticidad: La prueba de Breusch-Pagan devuelve un p-valor mayor a 0.05, lo que indica que no hay evidencia suficiente para rechazar la homocedasticidad. Además, el gráfico no muestra un patrón de “cono”. Por lo tanto, el supuesto de varianza constante se cumple.

  • Normalidad de los errores: El histograma de residuos se asemeja visualmente a una campana de Gauss y el QQ plot muestra puntos mayormente alineados con la línea. Si el p-valor del test de Shapiro-Wilk es > 0.05, podemos asumir normalidad de los errores. En caso contrario (p < 0.05), hay ligero desvío de la normalidad, lo cual podría afectar pruebas de hipótesis, aunque no necesariamente la validez del modelo.

  • Independencia de los errores: La prueba de Durbin-Watson muestra un estadístico cercano a 2 y un p-valor mayor a 0.05, lo que sugiere que no existe autocorrelación entre los errores. Por lo tanto, el supuesto de independencia se cumple.

MODELO DE REGRESION LINEAL MULTIPLE

La regresión lineal múltiple es una extensión de la regresión lineal simple que permite modelar la relación entre una variable dependiente \(Y\) y múltiples variables independientes \(X_1, X_2, \dots, X_k\).

Este modelo surge cuando se desea explicar una respuesta utilizando más de un predictor, ya que muchos fenómenos del mundo real están influenciados por múltiples factores simultáneamente.

Se utiliza para:


Ecuación del modelo

La forma general del modelo de regresión lineal múltiple es:

\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k + \varepsilon \]

Donde:

  • \(Y\): Variable dependiente (respuesta)
  • \(X_i\): Variables independientes (predictoras)
  • \(\beta_0\): Intercepto
  • \(\beta_i\): Coeficientes de regresión asociados a cada predictor
  • \(\varepsilon \sim \mathcal{N}(0, \sigma^2)\): Término de error aleatorio

Supuestos del modelo clásico Gauss-Markov

  1. Linealidad en los parámetros
  2. Independencia de los errores
  3. Homoscedasticidad: varianza constante de los errores
  4. No multicolinealidad perfecta entre predictores
  5. Normalidad de los errores (para inferencia estadística)

Los supuestos del modelo clásico Gauss-Markov son condiciones necesarias para que los estimadores obtenidos por Mínimos Cuadrados Ordinarios (OLS) sean:

  • Insesgados: su valor esperado es el verdadero valor poblacional
  • Eficientes: tienen la menor varianza posible entre los estimadores lineales insesgados

Es decir, bajo estos supuestos, los coeficientes estimados por OLS son los mejores estimadores lineales insesgados (BLUE: Best Linear Unbiased Estimators).


Supuestos del modelo

  1. Linealidad en los parámetros
    El modelo debe ser lineal respecto a los coeficientes: \[ Y = \beta_0 + \beta_1 X_1 + \cdots + \beta_k X_k + \varepsilon \]

  2. Esperanza del error igual a cero

Esto significa que los errores (residuos) tienen media cero. En términos prácticos, el modelo no tiene sesgo sistemático al predecir.

Cuando decimos que un modelo no tiene sesgo sistemático, nos referimos a que en promedio, las predicciones del modelo no se desvían del valor real.

\[ \mathbb{E}[\varepsilon_i] = 0 \]

Es decir, si repites muchas veces el modelo con diferentes muestras (o en teoría, infinitas veces), los errores se compensan entre sí: no tienden a ser siempre positivos o siempre negativos.

  1. No multicolinealidad perfecta entre los predictores
    Las variables explicativas no deben estar perfectamente correlacionadas. Esto garantiza que los coeficientes sean identificables.

En regresión múltiple:
Dos o más variables explicativas no deben estar perfectamente correlacionadas.

Esto permite que los coeficientes de cada predictor sean identificables y únicos.

*No aplica a regresión simple, ya que solo hay una \(X\).
Solo es relevante en regresión múltiple**.

  1. Homoscedasticidad (varianza constante de los errores)
    \[ \text{Var}(\varepsilon_i) = \sigma^2 \quad \forall i \]

La varianza de los errores debe ser constante a lo largo de todas las observaciones. Si este supuesto se viola, ocurre heterocedasticidad, y aunque los coeficientes siguen siendo insesgados, ya no son eficientes (no son BLUE).

  1. Independencia de los errores (no autocorrelación)
    \[ \text{Cov}(\varepsilon_i, \varepsilon_j) = 0 \quad \text{para } i \ne j \] Es crucial en análisis de datos temporales o espaciales.

Los errores no deben estar correlacionados entre sí. Este supuesto es clave en análisis de series temporales, donde los valores están ordenados en el tiempo.


Teorema de Gauss-Markov

Bajo estos cinco supuestos, los estimadores obtenidos por OLS son:

BLUE (Best Linear Unbiased Estimators):
Los mejores (mínima varianza), lineales e insesgados estimadores disponibles.

¿Qué tan buenos son los estimadores que obtenemos al usar regresión lineal por mínimos cuadrados (OLS)?

BLUE (Best Linear Unbiased Estimators):
- Best: tienen la mínima varianza posible
- Linear: son funciones lineales de los datos
- Unbiased: no están sistemáticamente desviados del valor real

Este teorema es válido tanto en regresión simple como en múltiple. Sin embargo, el supuesto de no multicolinealidad solo es relevante en el contexto múltiple, donde hay más de un predictor.

Carga de datos

data(Base)
## Warning in data(Base): data set 'Base' not found
head(Base)
## # A tibble: 6 × 10
##     `>`     u      x `No de Personas a Cargo`      y      z `Gastos / Ingresos`
##   <dbl> <dbl>  <dbl> <chr>                     <dbl>  <dbl>               <dbl>
## 1     1     1 895212 Ninguna                  367037 250659                0.41
## 2     2     1 822988 Ninguna                  288046 222207                0.35
## 3     3     1 812288 Ninguna                  324915 243686                0.4 
## 4     4     1 627853 Ninguna                  282534 175799                0.45
## 5     5     1 673359 Ninguna                  282811 195274                0.42
## 6     6     1 696733 Ninguna                  320497 195085                0.46
## # ℹ 3 more variables: `Arriendos/ Ingreso` <dbl>, predicciones <dbl>,
## #   residuos <dbl>

La data ‘Base’ (Base de Datos Alcaldia) es un conjunto de datos que contiene información sobre los ingresos y gatos de los funcionarios de la alcaldia de Neiva para el año 2019.

Descripción del dataset

El conjunto de datos Base contiene la siguiente información. A continuación, se presenta la descripción de cada variable que se trabajara:

Variable Significado Tipo
x Ingreso Neto Continua
y Gasto Familiar (sinarriendo) Continua
z Gasto de Arriendo Continua
u Estrato Continua

Ajuste del modelo de regresion multiple

Queremos predecir el ingreso (x) a partir de tres variables:

  • u: Estrato
  • y: Gasto Familiar (sinarriendo)
  • z: Gasto de Arriendo
modelo <- lm(x ~ y + z + u, data = Base)
summary(modelo)
## 
## Call:
## lm(formula = x ~ y + z + u, data = Base)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -405091  -77842  -11129   69175  527081 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.024e+05  5.677e+04   1.803   0.0734 .  
## y           2.125e-01  1.808e-01   1.175   0.2418    
## z           9.975e-01  4.141e-01   2.409   0.0172 *  
## u           3.202e+05  2.909e+04  11.008   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 156600 on 146 degrees of freedom
## Multiple R-squared:  0.834,  Adjusted R-squared:  0.8306 
## F-statistic: 244.5 on 3 and 146 DF,  p-value: < 2.2e-16

Interpretacion detallada de los coeficientes

coeficientes <- summary(modelo)$coefficients
coeficientes
##                 Estimate   Std. Error   t value     Pr(>|t|)
## (Intercept) 1.023667e+05 5.677445e+04  1.803042 7.344390e-02
## y           2.124942e-01 1.808223e-01  1.175155 2.418458e-01
## z           9.975392e-01 4.141053e-01  2.408902 1.724695e-02
## u           3.202303e+05 2.909064e+04 11.008021 6.741029e-21

Interpretacion:

  • Intercepto (102376): El intercepto (constante) del modelo es aproximadamente 102,367, lo cual representa el valor esperado de la variable dependiente cuando todas las variables independientes (y, z, u) son cero.ie, El p-valor es 0.073, lo que indica que el intercepto no es estadísticamente significativo al 5%, pero sí lo sería al 10%.

  • y (0.212): Signidica que por cada peso que aumenta ‘y’, se espera que la variable dependiente aumente en 0.212, manteniendo las demás variables constantes.ie, El p-valor es 0.2418, por lo tanto, no es estadísticamente significativo. Esto sugiere que y no tiene un efecto claro sobre la variable dependiente en este modelo.

  • z (0.998): Lo que indica que por cada unidad adicional en z, la variable dependiente se incrementa aproximadamente en 0.998, manteniendo constantes las otras variables. ie, El p-valor es 0.017, lo que indica que sí es estadísticamente significativo al 5%, por lo tanto, z tiene un efecto relevante sobre la variable dependiente.

  • u (320230): lo que sugiere un cambio muy grande en la variable dependiente por cada unidad adicional de u.ie, El p-valor es 6.74e-21, extremadamente bajo, por lo que es altamente significativo. u tiene un efecto muy fuerte y claro sobre la variable dependiente.

Ecuacion del modelo ajustado

cat("x =", round(coef(modelo)[1], 2), "+",
    round(coef(modelo)[2], 2), "* y +",
    round(coef(modelo)[3], 2), "* z +",
    round(coef(modelo)[4], 5), "* u")
## x = 102366.7 + 0.21 * y + 1 * z + 320230.3 * u

Diagnostico del modelo

Grafico de residuos vs valores ajustados

plot(modelo$fitted.values, modelo$residuals,
     main = "Residuos vs Valores Ajustados",
     xlab = "Valores Ajustados", ylab = "Residuos", pch = 19, col = "darkgreen")
abline(h = 0, col = "blue", lty = 2)

Interpretacion:

  • No deberían observarse curvas, grupos, ni formas reconocibles. Si hay patrones, podrían indicar problemas de especificación del modelo (como una relación no lineal no capturada o variables omitidas). Las concentraciones de puntos o grupos separados pueden indicar valores atípicos o que hay variables omitidas.

Normalidad de los residuos

hist(modelo$residuals, 
     main = "Histograma de residuos", 
     col = "lightblue", 
     probability = TRUE,  
     # Esto es importante para que el eje Y sea una densidad
     xlab = "Residuos")

# Agregar la curva normal (campana de Gauss)
curve(dnorm(x, mean = mean(modelo$residuals), sd = sd(modelo$residuals)), 
      col = "red", lwd = 2, add = TRUE)

qqnorm(modelo$residuals)
qqline(modelo$residuals, col = "red")

Interpretacion:

  • El histograma tiene forma de campana y se asemeja a la curva normal superpuesta.
  • En el gráfico Q-Q, los puntos están alineados a lo largo de la línea roja.

Pruebas adicionales

library(lmtest)
bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 36.737, df = 3, p-value = 5.231e-08
dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.9721, p-value = 0.3757
## alternative hypothesis: true autocorrelation is greater than 0

Interpretacion: - El valor p es muy pequeño (p < 0.001), lo que lleva a rechazar la hipótesis nula.

  • Esto indica que hay evidencia estadísticamente significativa de heterocedasticidad en los residuos del modelo.

Las consecuencias estan en que las estimaciones aún pueden ser insesgadas, pero las inferencias estadísticas (intervalos y pruebas) pueden no ser válidas si no se corrige esta heterocedasticidad.

Multicolinealidad

Puede afectar la estabilidad de los coeficientes. Si dos o más variables independientes están muy correlacionadas entre sí, los estimadores pueden volverse inestables. Se evalúa con el VIF (Variance Inflation Factor).

install.packages(“car”) # Solo la primera vez library(car) vif(modelo)

VIF ≈ 1: No hay colinealidad.

VIF entre 1 y 5: Moderada colinealidad (aceptable).

VIF > 10: Colinealidad alta. Puede ser preocupante.

vif_manual <- function(modelo) {
  X <- model.matrix(modelo)[, -1]
  sapply(1:ncol(X), function(i) {
    rsq <- summary(lm(X[, i] ~ X[, -i]))$r.squared
    1 / (1 - rsq)
  })
}

vif_manual(modelo)
## [1] 4.761572 4.653089 3.452429

Interpretacion: - Ninguna variable supera el umbral crítico de 5, por lo tanto no hay colinealidad severa. Sin embargo, los valores cercanos a 5 indican que sí existe una cierta multicolinealidad moderada, especialmente en las primeras dos variables. *Esto no representa un problema grave, pero es recomendable estar alerta si el modelo se vuelve inestable (por ejemplo, con cambios de signo o significancia al agregar o quitar variables).

Conclusion

El modelo de regresión muestra que las variables ‘z’ (gasto de arriendo) y ‘u’ (estrato) tienen efectos positivos y estadísticamente significativos sobre el ingreso (x), siendo u el predictor más influyente. En cambio, ‘y’ (gasto familiar sin arriendo) no presenta un efecto significativo. Los residuos se distribuyen aproximadamente de forma normal y no hay evidencia de autocorrelación. Sin embargo, la prueba de Breusch-Pagan detecta heterocedasticidad, lo que puede afectar la validez de las inferencias. Los factores de inflación de varianza (VIF) indican una colinealidad moderada pero no preocupante. En conjunto, el modelo es útil para explicar el ingreso, aunque requiere ajustes para corregir la heterocedasticidad.