knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE)
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)
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.
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.
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.
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.
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.
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.
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