Un economista del Departamento de Recursos Humanos de Florida State está preparando un estudio sobre el comportamiento del consumidor. Él recolectó los datos que aparecen en miles de dólares para determinar si existe una relación entre el ingreso del consumidor y los niveles de consumo. Los datos recolectados se pueden ver en la siguiente tabla:

ingreso <- c(24.3, 12.5, 31.2, 28.0, 35.1, 10.5, 23.2, 10.0, 8.5, 15.9, 14.7, 15.0)

consumo <- c(16.2, 8.5, 15.0, 17.0, 24.2, 11.2, 15.0, 7.1, 3.5, 11.5, 10.7, 9.2)

df <- data.frame(ingreso, consumo)
names(df) <- c("Ingreso anual","Consumo anual")
print(df)
##    Ingreso anual Consumo anual
## 1           24.3          16.2
## 2           12.5           8.5
## 3           31.2          15.0
## 4           28.0          17.0
## 5           35.1          24.2
## 6           10.5          11.2
## 7           23.2          15.0
## 8           10.0           7.1
## 9            8.5           3.5
## 10          15.9          11.5
## 11          14.7          10.7
## 12          15.0           9.2

El economísta se pregunta cuánto consumo anual tendrá una persona que tenga un ingreso anual de 29.7 mil dolares.

Primero, vamos a mostrar un gráfico de dispersión para ver si las variables pueden tener una distribución normal.

library(ggplot2)

ingreso <- c(24.3, 12.5, 31.2, 28.0, 35.1, 10.5, 23.2, 10.0, 8.5, 15.9, 14.7, 15.0)

consumo <- c(16.2, 8.5, 15.0, 17.0, 24.2, 11.2, 15.0, 7.1, 3.5, 11.5, 10.7, 9.2)

dfx <- data.frame(ingreso, consumo)

ggplot(data = dfx, aes(x = ingreso, y = consumo)) +
  geom_point(color = "blue", size = 3) +   # Puntos
  labs(title = "Ingreso vs Consumo", x = "Ingreso anual", y = "Consumo anual") +
  theme_minimal()   # Estilo del gráfico

Viendo el gráfico, podemos suponer que efectivamente, los datos tienen una distribución normal, sin embargo, ahora hacemos la prueba y de paso verémos si tienen correlación.

H_0: No existe una correlación entre el ingreso anual y el consumo anual.

H_A: Existe una correlación entre el ingreso anual y el consumo anual.

ingreso <- c(24.3, 12.5, 31.2, 28.0, 35.1, 10.5, 23.2, 10.0, 8.5, 15.9, 14.7, 15.0)

consumo <- c(16.2, 8.5, 15.0, 17.0, 24.2, 11.2, 15.0, 7.1, 3.5, 11.5, 10.7, 9.2)

shapiro.test(ingreso)
## 
##  Shapiro-Wilk normality test
## 
## data:  ingreso
## W = 0.91209, p-value = 0.2269
shapiro.test(consumo)
## 
##  Shapiro-Wilk normality test
## 
## data:  consumo
## W = 0.96663, p-value = 0.8725
cor.test(ingreso, consumo, method = "pearson") #Ya que ambas variables se distribuyen normalmente
## 
##  Pearson's product-moment correlation
## 
## data:  ingreso and consumo
## t = 7.3762, df = 10, p-value = 2.38e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.7305293 0.9774317
## sample estimates:
##       cor 
## 0.9190975

Como el p-valor es menor que 0.05, entonces, rechazamos nuestra H_0 y aceptamos H_A, por lo tanto, existe una correlación entre el ingreso anual y el consumo anual. Además, como cor > 0.8 decimos que tiene una correlación positiva fuerte, esto significa que, a mayor ingreso anual, mayor gasto anual.

Ahora, harémos un modelo de regresón lineal para intentar predecir el gasto anual de una persona sabiendo su ingreso anual.

ingreso <- c(24.3, 12.5, 31.2, 28.0, 35.1, 10.5, 23.2, 10.0, 8.5, 15.9, 14.7, 15.0)

consumo <- c(16.2, 8.5, 15.0, 17.0, 24.2, 11.2, 15.0, 7.1, 3.5, 11.5, 10.7, 9.2)

dfx <- data.frame(ingreso, consumo)

modelo <- lm(consumo ~ ingreso, data = dfx)

summary(modelo)
## 
## Call:
## lm(formula = consumo ~ ingreso, data = dfx)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1928 -0.5426  0.0088  0.8500  3.5613 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.77788    1.58292   1.123    0.288    
## ingreso      0.55817    0.07567   7.376 2.38e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.251 on 10 degrees of freedom
## Multiple R-squared:  0.8447, Adjusted R-squared:  0.8292 
## F-statistic: 54.41 on 1 and 10 DF,  p-value: 2.38e-05

Donde Intercept es el valor esperado del consumo anual cuando el ingreso anual es 0 y por cada aumento de 1 unidad en el ingreso anual, el consumo anual aumenta en 0.55817, en otras palabras, nuestro modelo es: f(x) = 0.55817x + 1.77788. Y la fiabilidad de este modelo es del 84.47% (R-squared). Vamos a verlo de una manera más gráfica:

library(ggplot2)

ingreso <- c(24.3, 12.5, 31.2, 28.0, 35.1, 10.5, 23.2, 10.0, 8.5, 15.9, 14.7, 15.0)

consumo <- c(16.2, 8.5, 15.0, 17.0, 24.2, 11.2, 15.0, 7.1, 3.5, 11.5, 10.7, 9.2)

dfx <- data.frame(ingreso, consumo)


ggplot(dfx, aes(x = ingreso, y = consumo)) +
  geom_point(color = "blue", size = 3) +           
  geom_abline(
    intercept = 1.77788, slope = 0.55817,            # Función f(x) = 0.542x + 1.633
    color = "red", linewidth = 1, linetype = "solid"
  ) +
  labs(
    title = "Regresión lineal: Consumo ~ Ingreso",
    x = "Ingreso (miles de dólares)",
    y = "Consumo (miles de dólares)"
  ) +
  theme_minimal()

Por último, para responder la preguntada planteada, simplemente reemplazamos en x = 29.7

x = 29.7

 0.55817*x + 1.77788
## [1] 18.35553

Por lo tanto, una persona que tenga un ingreso de 29.7 mil dolares anuales, tendrá un gasto aproximado de 18.36 mil dolares anuales.