knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE)

1. Introducción

Se consideran los datos originales de Engel (1857), disponibles en el paquete de R, sobre la relación entre el gasto anual (francos belgas) en alimentos y los ingresos anuales (francos belgas) de los hogares. Estos datos corresponden a una muestra de 235 hogares belgas de clase trabajadora del siglo XIX. En este análisis, se comparan distintos modelos de regresión por mínimos cuadrados ordinarios, con el objetivo de evaluar cómo varía la relación entre el gasto en alimentos y el ingreso de los hogares.

library(ggplot2)
library(quantreg)  
data(engel)

2. Análisis descriptivo

En este apartado se explora la distribución de las variables (gasto en alimentos anual) y (ingresos anuales). Se presentan estadísticas descriptivas y visualizaciones como histogramas y diagramas de dispersión.

Algunas medidas de tendencia central

x <- engel$income
y <- engel$foodexp
cor(x,y)
## [1] 0.9112434
summary(engel)
##      income          foodexp      
##  Min.   : 377.1   Min.   : 242.3  
##  1st Qu.: 638.9   1st Qu.: 429.7  
##  Median : 884.0   Median : 582.5  
##  Mean   : 982.5   Mean   : 624.2  
##  3rd Qu.:1164.0   3rd Qu.: 743.9  
##  Max.   :4957.8   Max.   :2032.7
#library(xtable)
# xtable(summary(engel))

La correlación de 0.91 indica una relación positiva fuerte entre los ingresos y el gasto en alimentos, esto significa que a medida que los ingresos aumentan, el gasto en alimentos tiende a aumentar de manera significativa. Aunque la correlación es alta, no implica causalidad, solo una fuerte asociación entre ambas variables.

El ingreso medio es 982.5, pero la mediana es 884, lo que indica una ligera asimetría a la derecha (valores altos aumentan la media). El mínimo es 377.1 y el máximo 4957.8, lo que muestra una gran dispersión en los ingresos de los hogares. El 75% de los hogares tienen ingresos por debajo de 1164, mientras que el 25% más rico tiene ingresos superiores a este valor.

El gasto medio en alimentos es 624.2, mientras que la mediana es 582.5, lo que indica una leve asimetría positiva. El mínimo es 242.3 y el máximo 2032.7, mostrando que algunos hogares gastan considerablemente más que otros. El 75% de los hogares gastan menos de 743.9 en alimentos, mientras que el 25% superior tiene un gasto más alto.

Dado que ambas variables tienen distribuciones similares con ligera asimetría positiva, y la correlación es alta (0.91), se puede inferir que los hogares con mayores ingresos tienden a gastar más en alimentos.Sin embargo, la dispersión de los datos (máximos muy altos) sugiere que algunos hogares ricos pueden no aumentar su gasto en alimentos en la misma proporción que su ingreso.

Para complementar el análisis de la distribución de los datos, se presentan diagramas de caja de las variables (ingresos) y (gasto en alimentos). Estos gráficos permiten identificar la dispersión de los datos y posibles valores atípicos.

library(ggplot2)

# Boxplot de income (ingresos)
p1 <- ggplot(engel, aes(y = income)) +
  geom_boxplot(fill = "#D55E00", color = "black", outlier.color = "red", outlier.shape = 16) +
  labs(title = "Distribucion de Ingresos", y = "Ingresos") +
  theme_minimal()

# Boxplot de foodexp (gasto en alimentos)
p2 <- ggplot(engel, aes(y = foodexp)) +
  geom_boxplot(fill = "#0072B2", color = "black", outlier.color = "red", outlier.shape = 16) +
  labs(title = "Distribucion del Gasto en Alimentos", y = "Gasto en Alimentos") +
  theme_minimal()

# Mostrar ambos gráficos en una misma fila
library(gridExtra)
grid.arrange(p1, p2, ncol = 2)

Los boxplots muestran que la variable tiene una mayor dispersión y presenta valores atípicos en la parte superior, lo que indica que algunos hogares tienen ingresos significativamente más altos que el resto. En contraste, el gasto en alimentos () tiene una menor dispersión y menos valores atípicos, lo que sugiere que la mayoría de los hogares siguen un patrón de consumo más homogéneo en comparación con sus ingresos. Esto podría ser útil para justificar el uso de regresión cuantil, ya que los ingresos tienen valores extremos que podrían influir en la regresión lineal tradicional.

Histogramas y Distribución de Variables

Para visualizar la forma de las distribuciones de las variables (ingresos) y (gasto en alimentos), se presentan histogramas ajustados mediante la regla de Freedman-Diaconis, que optimiza el número de intervalos para reflejar mejor la estructura de los datos. En la Figura se presentan los histogramas acompañados de sus respectivas curvas de densidad suavizadas.

# Función para calcular el número de bins usando la regla de Freedman-Diaconis
fd_bins <- function(x) {
  h <- 2 * IQR(x) / length(x)^(1/3)  # Ancho de clase FD
  bins <- ceiling((max(x) - min(x)) / h)  # Número de bins
  return(bins)
}

# Calcular bins para cada variable
bins_foodexp <- fd_bins(engel$foodexp)
bins_income <- fd_bins(engel$income)

# Histograma con la regla de Freedman-Diaconis
p1 <- ggplot(engel, aes(x = foodexp)) +
  geom_histogram(aes(y = ..density..), bins = bins_foodexp, fill = "#0072B2", 
                 color = "black", alpha = 0.7) +
  geom_density(color = "red", size = 1) +
  labs(title = "Distribucion del Gasto en Alimentos",
       x = "Gasto en alimentos", y = "Densidad") +
  theme_minimal()

p2 <- ggplot(engel, aes(x = income)) +
  geom_histogram(aes(y = ..density..), bins = bins_income, fill = "#D55E00", 
                 color = "black", alpha = 0.7) +
  geom_density(color = "blue", size = 1) +
  labs(title = "Distribucion de los Ingresos",
       x = "Ingresos", y = "Densidad") +
  theme_minimal()


# Mostrar ambos gráficos
library(gridExtra)
grid.arrange(p1, p2, ncol = 2)

# Diagrama de dispersión
p3 <- ggplot(engel, aes(x = income, y = foodexp)) +
  geom_point(color = "darkgreen", alpha = 0.6) +
  
  labs(title = "Relacion entre Ingresos y Gasto en Alimentos",
       x = "Ingresos", y = "Gasto en Alimentos") +
  theme_minimal()

#p3

La distribución del gasto en alimentos muestra una asimetría positiva, con una mayor concentración de valores en el rango de 300 a 800 unidades. La curva de densidad (línea roja) indica un pico principal alrededor de 500-600, seguido de una disminución gradual. Esto sugiere que la mayoría de los hogares tienen un gasto moderado en alimentos, mientras que algunos pocos presentan valores significativamente más altos, lo que extiende la cola derecha de la distribución. La asimetría observada puede influir en el análisis estadístico, por lo que se recomienda explorar transformaciones como la logarítmica para estabilizar la varianza y mejorar la interpretación de los resultados.

El histograma de los ingresos exhibe una asimetría aún más pronunciada hacia la derecha. La mayoría de los hogares reportan ingresos entre 900 y 1500 unidades, con un pico de densidad (línea azul) en torno a 1100-1300. No obstante, existen valores atípicos en el rango de 4000-5000, lo que sugiere una fuerte dispersión en los ingresos de la población analizada. Dado que la media puede verse afectada por estos valores extremos, se recomienda utilizar la mediana como medida de tendencia central más representativa. Adicionalmente, la transformación logarítmica puede ayudar a normalizar la distribución para su uso en modelos estadísticos.

Ambas distribuciones presentan asimetría positiva, lo que indica que algunos hogares tienen ingresos y gastos en alimentos mucho mayores que la mayoría. La relación entre ingresos y gasto en alimentos puede no ser lineal, por lo que exploraremos modelos regresión cuantil.Tambien intentaremos aplicar transformaciones (logarítmica) para estabilizar la varianza.

# Calcular medias de income y foodexp
mean_income <- mean(engel$income)
mean_foodexp <- mean(engel$foodexp)

# Gráfico de dispersión con líneas de media
p_3 <- ggplot(engel, aes(x = income, y = foodexp)) +
  geom_point(color = "darkgreen", alpha = 0.6) +  # Puntos de dispersion
    
  geom_vline(xintercept = mean_income, color = "red", linetype = "dashed", 
             linewidth = 1) +  # Línea vertical (Media income)
  geom_hline(yintercept = mean_foodexp, color = "red", linetype = "dashed", 
             linewidth = 1) +  # Línea horizontal (Media foodexp)
  annotate("text", x = mean_income, y = min(engel$foodexp), label = 
             "Media Income", color = "red", vjust = -1) +  
  annotate("text", x = min(engel$income), y = mean_foodexp, label = 
             "Media FoodExp", color = "red", hjust = -2) +  
  labs(title = "Relacion entre Ingresos y Gasto en Alimentos",
       x = "Ingresos", y = "Gasto en Alimentos") +
  theme_minimal()
p_3

El gráfico de dispersión muestra la relación entre los ingresos (income) y el gasto en alimentos (foodexp), con cada punto representando una observación en la base de datos. Además, se han incorporado líneas de referencia en rojo que indican la media de los ingresos (línea vertical) y la media del gasto en alimentos (línea horizontal).

Se observa una relación positiva entre los ingresos y el gasto en alimentos, es decir, a medida que los ingresos aumentan, también lo hace el gasto en alimentos. Sin embargo, la relación no parece completamente lineal, ya que hay cierta variabilidad en los niveles de gasto para ingresos similares.

La mayoría de los puntos están ubicados en el cuadrante inferior izquierdo, lo que indica que la mayoría de las observaciones tienen ingresos y gastos por debajo de la media. Pocas observaciones se encuentran en el cuadrante superior derecho, lo que sugiere que solo un pequeño grupo de individuos posee ingresos altos con un gasto en alimentos superior a la media.

El patrón observado podría reflejar , que establece que a medida que aumentan los ingresos, la proporción del gasto destinada a alimentos disminuye, aunque el gasto total en alimentos siga aumentando. Algunos puntos dispersos por encima de la tendencia general pueden representar individuos o familias con patrones de consumo atípicos, posiblemente debido a preferencias personales o necesidades alimentarias específicas.

Se observan algunas observaciones con ingresos significativamente altos en comparación con el resto de los datos, con un gasto en alimentos que no necesariamente aumenta en la misma proporción. Esto podría indicar que, a partir de cierto nivel de ingresos, el gasto en alimentos se estabiliza. También hay puntos que tienen un gasto en alimentos inusualmente alto con ingresos relativamente bajos, lo que podría deberse a factores como diferencias en el tamaño del hogar o hábitos de consumo particulares.

3. Análisis Inferencial

Se ajustan modelos de regresión normal y cuantil a los datos. Se interpretan los coeficientes obtenidos y se comparan los resultados entre los modelos.

Para analizar la relación entre el ingreso y el gasto en alimentos, se ajustaron dos modelos de regresión, El primer modelo asume una relación lineal con distribución normal de los residuos, mientras que el segundo permite una mayor flexibilidad al estimar distintos cuantiles de la distribución condicional de la variable respuesta.

Regresión Lineal Normal (OLS)

El modelo de regresión lineal ordinario se especificó como:

\[ Y_{i}= \beta_{0} + \beta_{1}x_{i}+ \epsilon_i, \quad i=1,2...,235. \quad \text{donde: } \epsilon_{i} \sim N(0,\sigma^2) \]

Los términos se definen de la siguiente manera:

\(Y_{i}\) Variable dependiente o respuesta. En este caso, representa el gasto anual (francos belgas) en alimentos de la observación \(i\).

\(x_{i}\) Variable independiente o predictora. En este análisis, corresponde al ingreso anual (francos belgas) de la observación \(i\).

\(\beta_{0}\) Intercepto del modelo, representa el valor esperado de \(Y_{i}\) cuando \(x_{i}=0\), es decir, el gasto en alimentos cuando el ingreso es cero.

\(\beta_{1}\) Coeficiente de regresión, indica el cambio esperado en \(Y_{i}\) (gasto en alimentos) por cada unidad adicional de \(x_{i}\) (ingreso).

\(\epsilon_{i}\) Término de error aleatorio, captura la variabilidad de \(Y_{i}\) que no es explicada por \(x_{i}\). Se asume que sigue una distribución normal con media 0 y varianza \(\sigma^2\) desconocida.

El ajuste del modelo se evaluó mediante AIC y los residuos fueron analizados para verificar supuestos de normalidad y homocedasticidad.

#Modelo de regresión normal
Ajuste1 <- lm(foodexp ~ income, data = engel)
summary(Ajuste1)
## 
## Call:
## lm(formula = foodexp ~ income, data = engel)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -725.70  -60.24   -4.32   53.41  515.77 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 147.47539   15.95708   9.242   <2e-16 ***
## income        0.48518    0.01437  33.772   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 114.1 on 233 degrees of freedom
## Multiple R-squared:  0.8304, Adjusted R-squared:  0.8296 
## F-statistic:  1141 on 1 and 233 DF,  p-value: < 2.2e-16
AIC(Ajuste1)
## [1] 2897.351
#xtable(summary(engel))

El modelo ajustado es: El gasto en alimentos estimado para el individuo \(i\).

\[ \widehat{Y_{i}}= 147.48 + 0.485x_{i} \]

El intercepto \((\beta_{0}=147.48)\) Representa el gasto promedio en alimentos cuando el ingreso es cero. En este contexto, puede no tener un significado práctico si los ingresos nunca son cero. El incremento \((\beta_{1}=0.485)\) indica que por cada unidad adicional de ingreso, el gasto en alimentos aumenta en 0.485 francos belgas en promedio.

La calidad del ajustes según el \(R^2\) Aproximadamente el \(83.04\%\) de la variabilidad en el gasto en alimentos es explicada por el ingreso. Este es un valor alto, lo que sugiere un buen ajuste del modelo.

\(R^2\) ajustado = \(0.8296\): Similar a \(R^2\), indica que el modelo sigue siendo fuerte incluso después de ajustar por el número de predictores.

La significancia de los coeficientes: Ambos coeficientes \((\beta_{0}, \beta_{1})\) tienen un p-valor menor a \(0.001\), indicando que son altamente significativos. Esto sugiere que el ingreso tiene un impacto estadísticamente significativo en el gasto en alimentos.

El Diagnóstico de residuos

Error estándar residual: \(114.1\): Indica la dispersión de los residuos en torno a la recta de regresión. Un valor más bajo sugiere un mejor ajuste. Rango de los residuos: Oscilan entre \(-725.70\) y \(515.77\), lo que indica que algunas observaciones tienen errores grandes.

La medida de calidad del modelo que corresponde al el Criterio de Información de Akaike \((AIC=2897.35)\) sera comparado con los demas modelos como refrencia para elegir el mejor ajuste.

El modelo de regresión normal muestra que el ingreso tiene un efecto positivo y significativo sobre el gasto en alimentos. Sin embargo, realizarmos un análisis de residuos para verificar la validez de los supuestos del modelo, como la normalidad y homocedasticidad. Además, se podría comparar este modelo con otros enfoques, como la regresión cuantil, para analizar la robustez de los resultados.

# Programa extraído do site: https://www.ime.usp.br/~giapaula/textoregressao.htm
# Créditos: Prof. Dr. Gilberto Alvarenga Paula
# Adaptado por Caio L. N. Azevedo
# source("C:\\Users\\cnaber\\Trabalho\\windows\\Unicamp\\Disciplinas
# \2_semestre_2016 \\ME 613\\Programas\\diag_norm.r")


diagnorm<-function(fit.model){
# fit.model: objeto com o ajuste do modelo normal linear homocedástico 
# obtido atraves da funcion "lm"

par(mfrow=c(2,2))
X <- model.matrix(fit.model)
n <- nrow(X)
p <- ncol(X)
H <- X%*%solve(t(X)%*%X)%*%t(X)
h <- diag(H)
lms <- summary(fit.model)
s <- lms$sigma
r <- resid(lms)
ts <- r/(s*sqrt(1-h))
di <- (1/p)*(h/(1-h))*(ts^2)
si <- lm.influence(fit.model)$sigma
tsi <- r/(si*sqrt(1-h))
a <- max(tsi)
b <- min(tsi)
par(mfrow=c(2,2))
#
plot(tsi,xlab="Indice", ylab="Residuo Studentizado",
ylim=c(b-1,a+1), pch=16,cex=1.1,cex.axis=1.1,cex.lab=1.1)
abline(2,0,lty=2)
abline(-2,0,lty=2)
abline(0,0,lty=2)
#identify(tsi, n=1)
#title(sub="(c)")
#
plot(fitted(fit.model),tsi,xlab="Valores Ajustados", 
ylab="Residuo Studentizado", ylim=c(b-1,a+1), pch=16,cex=1.1,cex.axis=1.1,cex.lab=1.1)
#
abline(2,0,lty=2)
abline(-2,0,lty=2)
abline(0,0,lty=2)
#boxplot(tsi,ylab="Residuo Studentizado",cex=1.1,cex.axis=1.1,cex.lab=1.1)
hist(tsi,xlab="Residuo Studentizado",ylab="densidad",probability=TRUE,main="",cex=1.1,cex.axis=1.1,
     cex.lab=1.1)
#title(sub="(d)")
#identify(fitted(fit.model),tsi, n=1)
#
ident <- diag(n)
epsilon <- matrix(0,n,100)
e <- matrix(0,n,100)
e1 <- numeric(n)
e2 <- numeric(n)
#
for(i in 1:100){
     epsilon[,i] <- rnorm(n,0,1)
     e[,i] <- (ident - H)%*%epsilon[,i]
     u <- diag(ident - H)
     e[,i] <- e[,i]/sqrt(u)
     e[,i] <- sort(e[,i]) }
#
for(i in 1:n){
     eo <- sort(e[i,])
     e1[i] <- (eo[2]+eo[3])/2
     e2[i] <- (eo[97]+eo[98])/2 }
#
med <- apply(e,1,mean)
faixa <- range(tsi,e1,e2)
#
#par(pty="s")
qqnorm(tsi,xlab="Percentil N(0,1)",
ylab="Residuo Studentizado", ylim=faixa, pch=16, main="",cex=1.1,cex.axis=1.1,cex.lab=1.1)
par(new=T)
qqnorm(e1,axes=F,xlab="",ylab="",type="l",ylim=faixa,lty=1, main="")
par(new=T)
qqnorm(e2,axes=F,xlab="",ylab="", type="l",ylim=faixa,lty=1, main="")
par(new=T)
qqnorm(med,axes=F,xlab="",ylab="",type="l",ylim=faixa,lty=2, main="")
#---------------------------------------------------------------#
return(tsi)
}

# Programa extraido do site: https://www.ime.usp.br/~giapaula/textoregressao.htm
# Creditos: Prof. Dr. Gilberto Alvarenga Paula
# Adaptado por Caio L. N. Azevedo
# source("C:\\Users\\cnaber\\Trabalho\\windows\\Unicamp\\Disciplinas\\
# 2_semestre_2016\\ME 613\\Programas\\envel_norm.r")


envelnorm <- function(fit.model){
# fit.model: objeto com o ajuste do modelo normal linear homocedastico 
# obtido atraves da funcion "lm"

#par(mfrow=c(1,1))
X <- model.matrix(fit.model)
n <- nrow(X)
p <- ncol(X)
H <- X%*%solve(t(X)%*%X)%*%t(X)
h <- diag(H)
si <- lm.influence(fit.model)$sigma
r <- resid(fit.model)
tsi <- r/(si*sqrt(1-h))
#
ident <- diag(n)
epsilon <- matrix(0,n,100)
e <- matrix(0,n,100)
e1 <- numeric(n)
e2 <- numeric(n)
#
for(i in 1:100){
     epsilon[,i] <- rnorm(n,0,1)
     e[,i] <- (ident - H)%*%epsilon[,i]
     u <- diag(ident - H)
     e[,i] <- e[,i]/sqrt(u)
     e[,i] <- sort(e[,i]) }
#
for(i in 1:n){
     eo <- sort(e[i,])
     e1[i] <- (eo[2]+eo[3])/2
     e2[i] <- (eo[97]+eo[98])/2 }
#
med <- apply(e,1,mean)
faixa <- range(tsi,e1,e2)
#
# par(pty="s")
qqnorm(tsi,xlab="Percentil da N(0,1)",
ylab="Residuo Studentizado", ylim=faixa, pch=16, main="",cex=1.1,cex.axis=1.1,cex.lab=1.1)
par(new=T)
qqnorm(e1,axes=F,xlab="",ylab="",type="l",ylim=faixa,lty=1, main="")
par(new=T)
qqnorm(e2,axes=F,xlab="",ylab="", type="l",ylim=faixa,lty=1, main="")
par(new=T)
qqnorm(med,axes=F,xlab="",ylab="",type="l",ylim=faixa,lty=2, main="")
#------------------------------------------------------------#
}
# Programa extraido do site: https://www.ime.usp.br/~giapaula/textoregressao.htm
# Creditos: Prof. Dr. Gilberto Alvarenga Paula
# Adaptado por Caio L. N. Azevedo
# source("C:\\Users\\cnaber\\Trabalho\\windows\\Unicamp\\Disciplinas\\
# 2_semestre_2016\\ME 613\\Programas\\envel_norm.r")


envelnorm <- function(fit.model){
# fit.model: objeto com o ajuste do modelo normal linear homocedastico 
# obtido atraves da funcion "lm"

#par(mfrow=c(1,1))
X <- model.matrix(fit.model)
n <- nrow(X)
p <- ncol(X)
H <- X%*%solve(t(X)%*%X)%*%t(X)
h <- diag(H)
si <- lm.influence(fit.model)$sigma
r <- resid(fit.model)
tsi <- r/(si*sqrt(1-h))
#
ident <- diag(n)
epsilon <- matrix(0,n,100)
e <- matrix(0,n,100)
e1 <- numeric(n)
e2 <- numeric(n)
#
for(i in 1:100){
     epsilon[,i] <- rnorm(n,0,1)
     e[,i] <- (ident - H)%*%epsilon[,i]
     u <- diag(ident - H)
     e[,i] <- e[,i]/sqrt(u)
     e[,i] <- sort(e[,i]) }
#
for(i in 1:n){
     eo <- sort(e[i,])
     e1[i] <- (eo[2]+eo[3])/2
     e2[i] <- (eo[97]+eo[98])/2 }
#
med <- apply(e,1,mean)
faixa <- range(tsi,e1,e2)
#
# par(pty="s")
qqnorm(tsi,xlab="Percentil da N(0,1)",
ylab="Residuo Studentizado", ylim=faixa, pch=16, main="",cex=1.1,cex.axis=1.1,cex.lab=1.1)
par(new=T)
qqnorm(e1,axes=F,xlab="",ylab="",type="l",ylim=faixa,lty=1, main="")
par(new=T)
qqnorm(e2,axes=F,xlab="",ylab="", type="l",ylim=faixa,lty=1, main="")
par(new=T)
qqnorm(med,axes=F,xlab="",ylab="",type="l",ylim=faixa,lty=2, main="")
#------------------------------------------------------------#
}


# Programa extraido do site: https://www.ime.usp.br/~giapaula/textoregressao.htm
# Créditos: Prof. Dr. Gilberto Alvarenga Paula
# Adaptado por Caio L. N. Azevedo
# source("C:\\Users\\cnaber\\Trabalho\\windows\\Unicamp\\Disciplinas\\
# 2_semestre_2016 \\ME 613\\Programas\\diag2_norm.r")


diag2norm <- function(fit.model){
# fit.model: objeto com o ajuste do modelo normal linear homocedastico 
# obtido atraves da funcion "lm"

par(mfrow=c(2,2))
X <- model.matrix(fit.model)
n <- nrow(X)
p <- ncol(X)
H <- X%*%solve(t(X)%*%X)%*%t(X)
h <- diag(H)
lms <- summary(fit.model)
s <- lms$sigma
r <- resid(lms)
ts <- r/(s*sqrt(1-h))
di <- (1/p)*(h/(1-h))*(ts^2)
si <- lm.influence(fit.model)$sigma
tsi <- r/(si*sqrt(1-h))
a <- max(tsi)
b <- min(tsi)
par(mfrow=c(2,2))
#
plot(tsi,xlab="Indice", ylab="Residuo Studentizado",
ylim=c(b-1,a+1), pch=16,cex=1.1,cex.axis=1.1,cex.lab=1.1)
abline(2,0,lty=2)
abline(-2,0,lty=2)
abline(0,0,lty=2)
#identify(tsi, n=1)
#title(sub="(c)")
#
plot(fitted(fit.model),tsi,xlab="Valores Ajustados", 
ylab="Residuo Studentizado", ylim=c(b-1,a+1), pch=16,cex=1.1,cex.axis=1.1,cex.lab=1.1)
#
abline(2,0,lty=2)
abline(-2,0,lty=2)
abline(0,0,lty=2)
#boxplot(tsi,ylab="Residuo Studentizado",cex=1.1,cex.axis=1.1,cex.lab=1.1)
hist(tsi,xlab="Residuo Studentizado",ylab="densidad",probability=TRUE,main="",cex=1.1,cex.axis=1.1,
     cex.lab=1.1)
#title(sub="(d)")
#identify(fitted(fit.model),tsi, n=1)
#
boxplot(tsi,ylab="Residuo Studentizado",cex=1.1,cex.axis=1.1,cex.lab=1.1)
par(mfrow=c(1,1))
#------------------------------------------------------------#
return(tsi)
#---------------------------------------------------------------#
}

Gráfico de residuos studentizados vs. índice de observación (arriba izquierda) La mayoría de los residuos están dentro del rango \([−2,2]\), lo que indica que no hay demasiados valores atípicos. Sin embargo, hay algunos puntos fuera de este rango, en especial valores cercanos a \(-10\) y \(5\), lo que sugiere la presencia de posibles valores atípicos. Tambien vemos un aparente patron ya que al inicio los datos estan muy apretados, luego se expanden acercandose y saliendo de \([−2,2]\) (entre 100 y 150 hay puntos que sigue una tendencia lineal). Lo que nos advierte de una posible heterocedasticidad.

Gráfico de residuos studentizados vs. valores ajustados (arriba derecha) La mayoría de los residuos están distribuidos alrededor de \(0\) sin un patrón claro, lo cual es positivo. Sin embargo, hay algunos puntos extremos, especialmente en los valores ajustados más altos (cercanos a \(2500\)), lo que indica que el modelo puede no estar ajustando bien las observaciones con valores altos. En patron que podriamos notar es similar a lo que ocurre en el grafico anterior, y es que los puntos inician muy juntos/apretados y luego empiezan soltarse saliendo del rango.

Histograma de residuos studentizados (abajo izquierda) La distribución de los residuos no parece seguir una forma normal; hay pocos valores en los extremos y una gran concentración cerca de 0. La asimetría sugiere que la distribución de errores podría no ser normal.

En el grafico de envolventes, Para una distribución normal, los puntos deben alinearse con la diagonal. Aquí se observa que en los extremos los puntos se desvían de la línea y salen de las envolventes, especialmente en la parte inferior, lo que indica que los residuos tienen colas más pesadas de lo esperado en una distribución normal.

La normalidad de los residuos no se cumple completamente. Se podría considerar una transformación de la variable respuesta o usar modelos alternativos que no requieran normalidad en los errores.

diag2norm(Ajuste1)

##            1            2            3            4            5            6 
## -0.840190422 -0.872094018 -0.869194797 -0.478697595 -0.142238988  0.240512667 
##            7            8            9           10           11           12 
##  0.709648897  0.683324877  0.420800171 -0.493743518 -0.469408063 -0.301245167 
##           13           14           15           16           17           18 
## -0.098298265  0.309211785  0.167474919  0.916869231 -0.127133185  0.058812101 
##           19           20           21           22           23           24 
##  0.386283760 -0.441724845 -0.145322637 -0.774173148 -0.665584176 -0.355657341 
##           25           26           27           28           29           30 
## -0.716176604 -0.174708404 -0.113396223 -0.931645082  0.161455625 -0.070424045 
##           31           32           33           34           35           36 
## -0.286241003 -0.321475221  0.032079123  0.012901474  0.700781799  0.145939612 
##           37           38           39           40           41           42 
## -0.296889829 -0.643791444 -0.002558916 -0.323905760 -0.473571629  0.243015021 
##           43           44           45           46           47           48 
## -0.238502754 -0.053538360 -0.661600915 -0.357350366 -0.205248452  0.467677669 
##           49           50           51           52           53           54 
## -0.661367904  1.686942019  0.184118590  0.316292359  1.369292269  0.714427162 
##           55           56           57           58           59           60 
## -0.241040508  0.338181687  1.371600036  1.217025753  4.879548565 -0.038242602 
##           61           62           63           64           65           66 
##  2.803668418  0.276973108  0.185860127 -0.132784968  0.408005106 -0.126476625 
##           67           68           69           70           71           72 
## -0.781671783  0.292874269 -0.753464832  1.578659301  0.173092529  0.262621640 
##           73           74           75           76           77           78 
## -1.097566012 -1.184392077  0.469224313  0.009581254 -1.094568387 -0.467280250 
##           79           80           81           82           83           84 
##  0.298739425  0.684985580 -0.426707938 -1.056091426 -0.034654509 -0.007658533 
##           85           86           87           88           89           90 
## -0.305055918  0.997544418  1.006124124  0.185595090 -0.441707122 -0.170551335 
##           91           92           93           94           95           96 
## -0.754376756  1.825001605  1.773826523  1.996642205  0.974871588  0.343422707 
##           97           98           99          100          101          102 
##  0.461859133  0.788375452  0.769169796  1.168221471 -0.037910552 -0.637375048 
##          103          104          105          106          107          108 
## -0.755215460  0.001747799 -4.898225942 -1.657953359 -1.571438829 -1.329906036 
##          109          110          111          112          113          114 
##  1.534715520  1.181163715 -0.887384162  0.434940732  0.084767586  0.040944251 
##          115          116          117          118          119          120 
## -0.295016669 -0.615965173  0.082269197 -1.228947542  1.984922299 -0.229424030 
##          121          122          123          124          125          126 
## -1.795356116 -0.884301306 -1.258122957 -1.066254468 -0.519941012 -0.330559422 
##          127          128          129          130          131          132 
## -1.220900678  3.516135002 -0.015210806 -0.219089847  0.055449885 -1.077487108 
##          133          134          135          136          137          138 
## -0.822747748 -0.664379065 -0.519362354 -0.320985820 -1.691069839 -8.393460861 
##          139          140          141          142          143          144 
## -0.828970544 -0.142768656  0.465825728  0.870904227  0.912067490  0.398777001 
##          145          146          147          148          149          150 
##  0.574103681 -1.304465177  0.173153034  1.328180504  1.183166782  0.030987189 
##          151          152          153          154          155          156 
##  1.030990967 -0.450489074  0.608462852  0.512963443  0.867707333  0.983972810 
##          157          158          159          160          161          162 
##  1.630619473  2.467089125 -0.857764337  0.098232979  0.098232979  0.098232979 
##          163          164          165          166          167          168 
## -0.477658114 -0.218559441 -0.378318501 -0.030941022  0.200255293  0.233703201 
##          169          170          171          172          173          174 
## -0.067114201  0.725280549 -0.819145054 -0.819145054 -0.711432469  0.554742450 
##          175          176          177          178          179          180 
## -0.531444098 -0.547537334  0.559353088  0.864239097 -0.585383869 -0.526571462 
##          181          182          183          184          185          186 
## -0.716729588 -0.061493914 -1.134343024  0.611896626  1.051364181 -0.288306151 
##          187          188          189          190          191          192 
## -0.274465753 -0.381141517 -0.519552558  0.549025294 -0.800930214 -0.620230318 
##          193          194          195          196          197          198 
## -1.011974364 -0.534483761 -0.230240146  0.518904599 -0.404422999  0.368836755 
##          199          200          201          202          203          204 
## -0.440927702 -0.572854356  0.016233961  0.594808834  0.203551054  0.529720369 
##          205          206          207          208          209          210 
## -0.003972117 -0.667745602 -0.536144024 -0.850907483  0.339174583  0.601770441 
##          211          212          213          214          215          216 
##  0.626349774  0.737880685  1.016710954  1.917776193  0.287096176 -0.165137661 
##          217          218          219          220          221          222 
##  0.417398334  0.191349573  0.491918028  0.885602055 -1.099765501 -0.873911197 
##          223          224          225          226          227          228 
## -0.649694675  0.162921665  1.165911012  1.920254626 -0.339723530  0.246128109 
##          229          230          231          232          233          234 
## -0.270479077 -0.383184037 -0.480601371 -0.974974354  0.337577176  0.128022520 
##          235 
##  0.787017049
envelnorm(Ajuste1)

Boxplot de Residuos Studentizados (Gráfico inferior derecho) Se observa que la mayoría de los residuos están concentrados en el centro del gráfico, pero hay varios valores atípicos tanto por encima como por debajo del rango intercuartil. Estos outliers pueden indicar observaciones influyentes que podrían estar afectando el ajuste del modelo.

Dependiendo de la cantidad y el impacto de estos valores atípicos, se podría considerar una transformación de la variable respuesta o el uso de un modelo robusto.

Regresión con Transformaciones

Si hay problemas de heterocedasticidad o no linealidad, podemos transformar las variables.

library(ggplot2)
modelo_loglog <- lm(log(foodexp) ~ log(income), data = engel)
summary(modelo_loglog)
## 
## Call:
## lm(formula = log(foodexp) ~ log(income), data = engel)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.49775 -0.09430  0.01336  0.09596  0.33108 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.54514    0.13820   3.945 0.000106 ***
## log(income)  0.85590    0.02032  42.115  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1368 on 233 degrees of freedom
## Multiple R-squared:  0.8839, Adjusted R-squared:  0.8834 
## F-statistic:  1774 on 1 and 233 DF,  p-value: < 2.2e-16
AIC(modelo_loglog)
## [1] -264.0815
# Crear el gráfico
ggplot(engel, aes(x = log(income), y = log(foodexp))) +
  geom_point(color = "blue", alpha = 0.6) +  # Puntos originales transformados
  geom_smooth(method = "lm", formula = y ~ x, color = "red", se = FALSE) +  # Línea de regresión
  labs(title = "Modelo Log-Log",
       x = "Log(Ingreso)",
       y = "Log(Gasto en alimentos)") +
  theme_minimal()

#diagnorm(modelo_loglog)
diag2norm(modelo_loglog)

##            1            2            3            4            5            6 
## -1.260286081 -1.418250223 -1.341811497 -0.551716408 -0.047908641  0.306788955 
##            7            8            9           10           11           12 
##  1.096145747  0.821958414  0.249554079 -0.708551346 -0.337576470 -0.160157236 
##           13           14           15           16           17           18 
## -0.021085659  1.173656376  0.521501937  1.346779647  0.370705439  0.583833105 
##           19           20           21           22           23           24 
##  0.521640753 -0.237312243  0.022640752 -1.157150840 -0.844419095 -0.320090660 
##           25           26           27           28           29           30 
## -1.078260841  0.593282837  0.271209415 -1.452857928  1.284815334  0.362259462 
##           31           32           33           34           35           36 
## -0.336655496  0.020044653  0.297484049  0.033854392  0.991788100  0.352189562 
##           37           38           39           40           41           42 
## -0.390933235 -0.936106350  0.666103972 -0.278489179 -0.001735425  0.419764978 
##           43           44           45           46           47           48 
## -0.415067693  0.306457980 -0.988154404 -0.181172702 -0.268302908  0.326295335 
##           49           50           51           52           53           54 
## -0.729238484  1.260492612  0.517973924  0.599571241  1.212132095  0.620698663 
##           55           56           57           58           59           60 
## -0.068228430  0.422777026  1.333493585  0.707632137  2.033106419 -0.052058096 
##           61           62           63           64           65           66 
##  1.418558715  0.897783592  0.292614828 -0.296243006  0.301314834  0.383675658 
##           67           68           69           70           71           72 
## -1.126599140  0.247680480 -1.060084957  1.117660690  0.598821738  0.763924477 
##           73           74           75           76           77           78 
## -1.923942136 -1.949381395  0.700670510  0.039429140 -1.564060943 -0.686027004 
##           79           80           81           82           83           84 
##  0.516032476  1.063126639 -0.657803533 -1.093113103  0.207670500 -0.007409983 
##           85           86           87           88           89           90 
## -0.478239124  1.340506331  1.354749567  0.046079609 -0.347188266 -0.297749693 
##           91           92           93           94           95           96 
## -0.990498080  2.451572936  2.031401786  1.643845045  1.360125433  0.777292260 
##           97           98           99          100          101          102 
##  0.541987629  0.483115978  1.563495051  1.480678012  0.766688033 -0.855662284 
##          103          104          105          106          107          108 
## -1.140195774  0.372326734 -3.797512244 -1.739988687 -2.270457873 -2.304306857 
##          109          110          111          112          113          114 
##  1.340370373  1.215396244 -1.434184369  0.342608625  0.074181580 -0.013409810 
##          115          116          117          118          119          120 
##  0.324355575 -0.776501813  0.097649699 -1.605402431  0.968266220  0.037514440 
##          121          122          123          124          125          126 
## -2.131238990 -1.279642791 -1.901310212 -1.378008449 -0.517945777 -0.536206100 
##          127          128          129          130          131          132 
## -1.276584489  1.969597617  0.243717206  0.090911081  0.572733133 -2.061968712 
##          133          134          135          136          137          138 
## -1.239150887 -0.996726080 -0.694448992 -0.072138422 -1.959575765 -2.429321546 
##          139          140          141          142          143          144 
## -1.251459258  0.730212632  1.437094599  1.661028359  0.662798719  0.685585159 
##          145          146          147          148          149          150 
##  0.836700749 -1.667162280  0.017263186  1.057315196  0.598893399 -0.121103038 
##          151          152          153          154          155          156 
##  1.023205437 -0.609886415  0.689562924  0.748159660  0.321996072  0.916307015 
##          157          158          159          160          161          162 
##  1.477516678  1.789218705 -1.379061416  0.110739252  0.110739252  0.110739252 
##          163          164          165          166          167          168 
## -0.704524290 -0.419887131 -0.589380666 -0.225922924  1.123377707  0.676775277 
##          169          170          171          172          173          174 
## -0.286873705  0.775353028 -1.147878586 -1.147878586 -0.832277772  0.881696480 
##          175          176          177          178          179          180 
## -0.639824741 -0.804654231  0.619615275  0.995558402 -0.825196815 -0.465126385 
##          181          182          183          184          185          186 
## -1.086047839 -0.129310678 -1.917372669  0.960824197  1.026961111  0.084814061 
##          187          188          189          190          191          192 
## -0.035151335 -0.415013759 -0.646981742  0.697302226 -1.204239898 -0.797836917 
##          193          194          195          196          197          198 
## -1.703119760 -0.287732235 -0.053975148  0.399628013 -0.475510364  0.676474703 
##          199          200          201          202          203          204 
## -0.656955374 -0.764075730  0.474550000  0.741999098  0.383881282  0.780493884 
##          205          206          207          208          209          210 
## -0.026586299 -0.805758616 -0.636110215 -1.359946618  0.587803562  0.749044614 
##          211          212          213          214          215          216 
##  0.520326979  0.915317060  1.003296575  1.095970930  1.189692285  0.504543179 
##          217          218          219          220          221          222 
##  1.347857524  0.517649894  0.268576941  0.359898053 -1.978084900 -1.397026956 
##          223          224          225          226          227          228 
## -0.958265665  1.093892005  1.309653366  1.326074264 -0.408493109  0.107415987 
##          229          230          231          232          233          234 
## -0.460640230  0.118556346 -0.224352704 -1.702816873  1.140173479  0.406108298 
##          235 
##  0.842536354
envelnorm(modelo_loglog)

# Obtener los residuos del modelo log-log
residuos_loglog <- residuals(modelo_loglog)

# Prueba de normalidad con Kolmogorov-Smirnov
ks.test(residuos_loglog, "pnorm", mean = mean(residuos_loglog), sd = sd(residuos_loglog))
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  residuos_loglog
## D = 0.068748, p-value = 0.2167
## alternative hypothesis: two-sided
# Prueba de Shapiro-Wilk
shapiro.test(residuos_loglog)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos_loglog
## W = 0.98429, p-value = 0.01064

La prueba de Shapiro-Wilk es más confiable para tamaños de muestra pequeños (n<50). Para muestras más grandes, la prueba de Kolmogorov-Smirnov puede ser más útil.

modelo_semilog_exp <- lm(log(foodexp) ~ income, data = engel)
summary(modelo_semilog_exp)
## 
## Call:
## lm(formula = log(foodexp) ~ income, data = engel)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.47256 -0.10683  0.01987  0.14374  0.37669 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 5.703e+00  2.889e-02  197.44   <2e-16 ***
## income      6.615e-04  2.601e-05   25.43   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2066 on 233 degrees of freedom
## Multiple R-squared:  0.7352, Adjusted R-squared:  0.7341 
## F-statistic: 646.9 on 1 and 233 DF,  p-value: < 2.2e-16
AIC(modelo_semilog_exp)
## [1] -70.34823
#diagnorm(modelo_semilog_exp)
diag2norm(modelo_semilog_exp)

##            1            2            3            4            5            6 
## -2.141042515 -1.569324418 -0.552537553 -0.617398204  0.026597955  0.593896350 
##            7            8            9           10           11           12 
##  0.944886397  0.972558225  0.740217846  0.062639892 -1.035724675 -0.434143973 
##           13           14           15           16           17           18 
##  0.131428773  0.210238633  0.311487228  1.127055270 -0.410612203 -0.015552314 
##           19           20           21           22           23           24 
##  0.710256025 -1.047638204 -0.074767998 -0.318354943 -1.352040035 -0.415514109 
##           25           26           27           28           29           30 
## -0.336293094 -0.813090551 -0.255893421 -0.631933044 -0.229800789 -0.205723524 
##           31           32           33           34           35           36 
## -0.057729695 -0.800122787  0.163449039  0.362198046  0.960525301  0.390620361 
##           37           38           39           40           41           42 
##  0.003939123 -0.065325677 -0.267835092 -0.337139971 -1.613502071  0.535464482 
##           43           44           45           46           47           48 
##  0.258975458 -0.094559615 -0.478858784 -0.672969541  0.131226688  0.789671046 
##           49           50           51           52           53           54 
## -0.424473997  1.377907776  0.351504100  0.562348015  1.376580127  0.975489555 
##           55           56           57           58           59           60 
## -0.312597813  0.682903739  1.431427549  0.819486543  0.231479992  0.327027065 
##           61           62           63           64           65           66 
##  0.681167733  0.302642782  0.511097825  0.355264873  0.762394474 -0.421688072 
##           67           68           69           70           71           72 
## -0.200364780  0.679960980 -1.612690856  1.252361006  0.267432214  0.355871463 
##           73           74           75           76           77           78 
## -1.365240330 -1.010556143  0.756571634  0.349723774 -0.484021435 -0.086619094 
##           79           80           81           82           83           84 
##  0.577976294  0.923238972  0.138475258 -0.535898815  0.064809050  0.354108904 
##           85           86           87           88           89           90 
## -0.087574641  1.207621133  1.214103433  0.598554476 -0.843750632  0.278217125 
##           91           92           93           94           95           96 
## -0.111384807  1.837067430  1.767884247  1.663431202  1.184031046  0.512116539 
##           97           98           99          100          101          102 
##  0.796771483  0.836846991  0.882844592  1.343869131 -0.466797397 -0.990641179 
##          103          104          105          106          107          108 
## -0.368471403  0.008507494 -3.178030756 -0.818469395 -0.935487446 -1.320176697 
##          109          110          111          112          113          114 
##  1.463527297  1.326712889 -2.079377243  0.784596451  0.472997919  0.455133570 
##          115          116          117          118          119          120 
## -1.055361353 -1.067299451  0.452179506 -0.485407599  0.316078695 -0.412243792 
##          121          122          123          124          125          126 
## -0.889692280 -0.313158208 -0.764254420 -0.344063529 -0.912951896  0.129315367 
##          127          128          129          130          131          132 
## -0.578245907  1.408898025  0.084509093 -0.440016412 -0.015748971 -2.415813769 
##          133          134          135          136          137          138 
## -0.392882750 -0.350500194 -0.480661497 -0.664316736 -0.804312940 -9.797186292 
##          139          140          141          142          143          144 
## -0.408811752 -0.812548639  0.408633503  0.997298989  1.002226347  0.657583048 
##          145          146          147          148          149          150 
##  0.849561187 -0.533343078  0.584494182  1.271280435  0.516072095  0.485202277 
##          151          152          153          154          155          156 
##  1.215051423 -0.105708236  0.918300251  0.798862387 -0.249844748  1.165234280 
##          157          158          159          160          161          162 
##  1.548912601  1.704908202 -1.015428268  0.472394537  0.472394537  0.472394537 
##          163          164          165          166          167          168 
## -0.083750270  0.296696759  0.132820687  0.422512159 -0.024913874  0.350104403 
##          169          170          171          172          173          174 
##  0.322879166  1.008992271 -2.304889065 -2.304889065 -1.916929021  0.809067760 
##          175          176          177          178          179          180 
## -0.758109392 -0.218760297  0.881107841  1.114331152 -0.547668594 -1.164051127 
##          181          182          183          184          185          186 
## -0.664940349  0.350186638 -1.123354640  0.859714313  1.224212754 -0.731552779 
##          187          188          189          190          191          192 
## -0.503599326 -0.353628784 -0.642543222  0.857362587 -1.642382691 -1.033946528 
##          193          194          195          196          197          198 
## -1.128806197 -1.570262358 -0.289005519  0.834003592 -0.343551204  0.612611147 
##          199          200          201          202          203          204 
## -0.011142817 -0.038342895 -0.043312701  0.897405017  0.484994607  0.810118850 
##          205          206          207          208          209          210 
##  0.379431048 -1.507581498 -0.806449560 -0.931048142  0.608295225  0.903347573 
##          211          212          213          214          215          216 
##  0.911615315  1.012570317  1.203941888  0.907184367  0.149560382 -0.689553442 
##          217          218          219          220          221          222 
##  0.352957276  0.367610544  0.736203162  0.097355940 -1.568928258 -0.844845625 
##          223          224          225          226          227          228 
## -0.123434673 -0.104702992  1.334652056  1.357462006 -0.154927849  0.640935171 
##          229          230          231          232          233          234 
##  0.010921108 -1.249325130 -1.313080444 -1.758901975  0.292851069  0.308957396 
##          235 
##  1.054737433
envelnorm(modelo_semilog_exp)

ggplot(engel, aes(x = (income), y = log(foodexp))) +
  geom_point(color = "blue", alpha = 0.6) +  # Puntos originales transformados
  geom_smooth(method = "lm", formula = y ~ x, color = "red", se = FALSE) +  # Línea de regresión
  labs(title = "modelo_semilog_exp",
       x = "Ingreso",
       y = "Log(Gasto en alimentos)") +
  theme_minimal()

library(ggplot2)
modelo_semilog <- lm(foodexp ~ log(income), data = engel)
summary(modelo_semilog)
## 
## Call:
## lm(formula = foodexp ~ log(income), data = engel)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -364.56  -57.25    0.90   52.97  746.59 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -3250.89     116.76  -27.84   <2e-16 ***
## log(income)   571.02      17.17   33.26   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 115.6 on 233 degrees of freedom
## Multiple R-squared:  0.826,  Adjusted R-squared:  0.8252 
## F-statistic:  1106 on 1 and 233 DF,  p-value: < 2.2e-16
AIC(modelo_semilog)
## [1] 2903.328
# Crear el gráfico
g <- ggplot(engel, aes(x = income, y = foodexp)) +
  geom_point(color = "blue", alpha = 0.6) +  # Puntos originales
  geom_smooth(method = "lm", formula = y ~ log(x), color = "red", se = FALSE) +  # Línea de regresión
  labs(title = "Modelo Semi-Log",
       x = "Ingreso",
       y = "Gasto en alimentos") +
  theme_minimal()

#diagnorm(modelo_semilog)
diag2norm(modelo_semilog)

##           1           2           3           4           5           6 
##  0.50006671 -0.27991896 -1.28928203 -0.30259658 -0.29792092 -0.24199592 
##           7           8           9          10          11          12 
##  0.38075387  0.16341744 -0.14527756 -0.92905826  0.32126702 -0.04522785 
##          13          14          15          16          17          18 
## -0.34316678  0.81759308  0.10343276  0.56858841  0.48706926  0.39075820 
##          19          20          21          22          23          24 
## -0.07507611  0.43639245 -0.14649068 -1.29384514  0.10421247 -0.23315913 
##          25          26          27          28          29          30 
## -1.17667815  1.05964848  0.25733553 -1.34514804  1.24843335  0.31083544 
##          31          32          33          34          35          36 
## -0.54877582  0.46986365 -0.03045064 -0.42148981  0.29099715 -0.11393821 
##          37          38          39          40          41          42 
## -0.65537051 -1.22909893  0.66883780 -0.25606907  1.22459533 -0.11652291 
##          43          44          45          46          47          48 
## -0.82070334  0.16626155 -0.92939580  0.14515388 -0.60862615 -0.11714475 
##          49          50          51          52          53          54 
## -0.31277631  1.19882109  0.07573763  0.04629176  0.76656293  0.11617005 
##          55          56          57          58          59          60 
## -0.05133937 -0.15599395  0.76216150  1.08295785  7.26654503 -0.49182279 
##          61          62          63          64          65          66 
##  3.61973290  0.48566552 -0.22971240 -0.72140437 -0.18625707  0.50957541 
##          67          68          69          70          71          72 
## -1.36416384 -0.28556196  0.14710435  1.15630613  0.20927299  0.31960285 
##          73          74          75          76          77          78 
## -1.08020808 -1.54445467  0.07330386 -0.40986055 -1.67691877 -0.92183038 
##          79          80          81          82          83          84 
## -0.04094828  0.35628556 -1.00087815 -0.89890168 -0.05521068 -0.45932443 
##          85          86          87          88          89          90 
## -0.22468491  0.56769607  0.57883652 -0.40332606  0.12865690 -0.71751218 
##          91          92          93          94          95          96 
## -1.21322728  1.47474756  1.23675314  1.41455223  0.57955401  0.24424844 
##          97          98          99         100         101         102 
## -0.06291393  0.36866588  0.81897237  0.69578115  0.93216255 -0.27315191 
##         103         104         105         106         107         108 
## -1.22304447  0.15669986 -3.26700554 -1.71878704 -2.15512086 -1.61113991 
##         109         110         111         112         113         114 
##  0.93341143  0.58645789  0.25523839 -0.16033815 -0.42425464 -0.49961601 
##         115         116         117         118         119         120 
##  1.01280160 -0.11094963 -0.39568397 -1.76490118  2.89456769  0.14445690 
##         121         122         123         124         125         126 
## -2.17800416 -1.46151253 -1.80667224 -1.57786205  0.74397299 -0.67513147 
##         127         128         129         130         131         132 
## -1.18486660  3.75185125 -0.03162794  0.22390017  0.37964152 -0.02362853 
##         133         134         135         136         137         138 
## -1.32516418 -1.06282947 -0.58811187  0.25134038 -2.02433512  1.98095781 
##         139         140         141         142         143         144 
## -1.32473487  1.19456258  0.94429379  0.86587537  0.38731791  0.08971518 
##         145         146         147         148         149         150 
##  0.17397118 -1.81376939 -0.40841781  0.77404124  1.41645567 -0.55786494 
##         151         152         153         154         155         156 
##  0.43154081 -0.47758033  0.06309559  0.10624747  1.97389844  0.38035678 
##         157         158         159         160         161         162 
##  1.01786357  2.00939344 -0.83511060 -0.38991966 -0.38991966 -0.38991966 
##         163         164         165         166         167         168 
## -0.94557103 -0.78812606 -0.79707176 -0.57658160  0.93504465  0.23613493 
##         169         170         171         172         173         174 
## -0.46903390  0.15398525  0.78886901  0.78886901  0.69883901  0.22226455 
##         175         176         177         178         179         180 
## -0.26580405 -0.95182988  0.00778450  0.32020884 -0.67358001  0.31318370 
##         181         182         183         184         185         186 
## -0.86027356 -0.57883471 -1.36238243  0.28025150  0.44914665  0.47410563 
##         187         188         189         190         191         192 
##  0.14728906 -0.39088381 -0.38362076  0.05849918  0.02683652 -0.16718425 
##         193         194         195         196         197         198 
## -1.09179189  0.89577023 -0.05592054 -0.07346338 -0.46651723  0.09877423 
##         199         200         201         202         203         204 
## -0.94464565 -0.88352663  0.30020862  0.09471047 -0.12961641  0.13231387 
##         205         206         207         208         209         210 
## -0.48929964  0.30350950 -0.21535086 -0.90380766  0.01574486  0.10049097 
##         211         212         213         214         215         216 
##  0.03062531  0.23540216  0.41669478  2.04683286  0.87476676  0.86186144 
##         217         218         219         220         221         222 
##  0.89326230  0.06596420 -0.01509176  1.51598626 -0.90396763 -1.04119514 
##         223         224         225         226         227         228 
## -1.21638810  0.96592632  0.60734293  1.55353278 -0.55153140 -0.34191308 
##         229         230         231         232         233         234 
## -0.32877885  0.99003908  0.70600131 -0.38008378  0.73025070 -0.01221628 
##         235 
##  0.21398678
envelnorm(modelo_semilog)

g

De lo anterior podemos decir que: propusieron cuatro modelos en los que el cumplimiento de los supuestos no se cumplen completamente, en algunos modelos el supuesto de idenpendecia se cumple, pero por el comportamiento en los residuos existe heterocedasticidad, también logramos ver en los histogramas y los gráficos de envolventes el supuesto de normalidad no se está cumpliendo y por otra parte, no tenemos la sugerencia del investigador para eliminar algunos datos atipicos que podrian estar afectando en el cumplimento de la normalidad de los residuos. Aunque el AIC logramos ver que el modelo 2 presenta el AIC mas bajo, seguido del modelo 3 y por ultimo el modelo 1, sin embargo el no cumplimento de los supuesto no estaría llevando al uso de modelos que aparentemente se estan ajustan bien a la mayoría de los puntos (ver graficos) aunque las estimaciones de los parametros del modelos sean significativos el incumplimiento de los supestos de la regresion lineal hace inutiles cada modelo presentado. De modo que vemos en la regresión cuantil la posibilidad de lograr entender la relación entre el gasto en alimentos y los ingresos en los hogares en donde se presentan ingresos elevados pero sus gasto en alimento es bajo este puede ser una de la razones por la cual la regresión normal esta dando estimaciones poco precisas.

AIC(Ajuste1, modelo_loglog, modelo_semilog_exp, modelo_semilog)
##                    df        AIC
## Ajuste1             3 2897.35060
## modelo_loglog       3 -264.08145
## modelo_semilog_exp  3  -70.34823
## modelo_semilog      3 2903.32845