Se instalan las siguientes librerias para que el archivo pueda ser ejecutado de manera aducuada. y se ejecuta el archivo denominado “Base_de_datos_taller_2”
library(visreg)
library(ggplot2)
library(car)
## Loading required package: carData
library(magrittr)
library(kableExtra)
library(gridExtra)
library(readxl)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
Base_de_datos_taller_2 <- read_excel("C:/Users/Juan Preciado/OneDrive - usco.edu.co/Documentos/Especialización en estadística/Modelos de regresión/Base de datos taller - 2.xlsx")
Base_de_datos_taller_2
## # A tibble: 13,687 × 4
## RENTA MATRICULA PENSIÓN `RENTA PADRES`
## <dbl> <dbl> <dbl> <dbl>
## 1 8852604 307909 586238 3257759
## 2 4800000 287764 294677 3268958
## 3 30083971 1564376 74736 1408246
## 4 10410183 709779 500816 936690
## 5 49503714 1188128 849350 2916856
## 6 111475298 1899080 327935 2950313
## 7 5500000 387093 768323 2331620
## 8 7938466 387093 457983 1514780
## 9 45693203 1094169 365923 2471716
## 10 84101000 1567952 408035 1219413
## # ℹ 13,677 more rows
Se destacan de manera individual los datos que se emplearán
renta<- Base_de_datos_taller_2$RENTA
matricula<- Base_de_datos_taller_2$MATRICULA
pension<- Base_de_datos_taller_2$PENSIÓN
ingresos<- Base_de_datos_taller_2$`RENTA PADRES`
La metodología empleada en este caso consiste en la aplicación de un análisis de regresión lineal múltiple con el propósito de examinar la relación entre una variable dependiente y tres variables independientes. Con esto se espera lograr determinar la relación lineal entre las variables y crear un modelo que pueda ser utilizado para predecir el comportamiento de la variable de respuesta (Y) a través del conocimiento previo del valor de las variables explicativas (Xi), teniendose en cuenta que el término (e) representa el error aleatorio o residual en el modelo de regresión, el cual captura la variabilidad no explicada por las variables explicativas incluidas en el modelo. Dicho lo anterior, el modelo en cuestión se representaría mediante una expresión lineal como la siguiente:
Y=β0+β1∗X1+β2∗X2+β3∗X3+β4∗X4+β5∗X5+e
Donde:
(Y):Variable de respuesta o dependiente.
(Xi):Variables predictorias o independientes.
(β0):(Intercepto) Que valor asumiría Y en la eventualidad de ausencia en Xi
(βi):(Pendiente) Cuánto cambia la variable dependiente Y, por cada unidad que varíe la variable independiente Xi
(e):Error o residuo, es decir, la diferencia entre el valor observado y el valor predicho por el modelo de regresión, yi-yiˆ
##
## Call:
## lm(formula = renta ~ matricula + pension + ingresos, data = Base_de_datos_taller_2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -197762032 -6014000 -372917 4046217 3662887965
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.978e+07 1.997e+06 -9.903 <2e-16 ***
## matricula 6.789e+01 1.221e+00 55.594 <2e-16 ***
## pension 1.808e+00 1.294e+00 1.397 0.162
## ingresos -1.425e-01 6.001e-01 -0.237 0.812
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 65080000 on 13683 degrees of freedom
## Multiple R-squared: 0.1843, Adjusted R-squared: 0.1841
## F-statistic: 1031 on 3 and 13683 DF, p-value: < 2.2e-16
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | -19776280.3597 | 1996968.6835 | -9.9031 | *** (0.0000) |
| matricula | 67.8936 | 1.2212 | 55.5945 | *** (0.0000) |
| pension | 1.8084 | 1.294 | 1.3975 | (0.1623) |
| ingresos | -0.1425 | 0.6001 | -0.2374 | (0.8124) |
Se grafican la relación entre los datos
## [1] "gráfica residuos"
## [1] "matricula"
## [1] "pension"
## [1] "ingresos"
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
# Extraer el valor del R-cuadrado ajustado y el valor p
r_ajustado <- round(summary(modelo)$adj.r.squared, 4)
p_valor <- summary(modelo)$coefficients[4, 4]
# Mostrar los valores del R-cuadrado ajustado y el valor p
cat("El valor p es:", r_ajustado, "\n")
## El valor p es: 0.1841
Por lo tanto, se interpreta que el modelo de regresión lineal múltiple que se ha ajustado explica el 18.41% de la variación de la renta.
El (R2) de 0.1841 sugiere que el modelo tiene un ajuste muy bajo a los datos, lo que sugiere un error de identificación de variable dependiente, o la necesidad de involucrar nuevas variables para tratar de ajustar el modelo.
cat("El valor p es:", p_valor, "\n")
## El valor p es: 0.8123536
Al tener el valor p, de 0.8123536, nos permite analizar la relación de las variables Matrícula, Pensión e Ingresos para predecir la Renta. Donde la única variable que indica significancia para predecir el comportamiento de la variable es ingresos. Esto se comprueba con un test de correlación.
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | -19776280.3597 | 1996968.6835 | -9.9031 | *** (0.0000) |
| matricula | 67.8936 | 1.2212 | 55.5945 | *** (0.0000) |
| pension | 1.8084 | 1.294 | 1.3975 | (0.1623) |
| ingresos | -0.1425 | 0.6001 | -0.2374 | (0.8124) |
El análisis de supuestos en el contexto de modelos estadísticos, se refiere al proceso de evaluación y comprobación de las cuatro condiciones necesarias para que el modelo sea válido y confiable en la inferencia estadística que se desea aplicar sobre la población de interés. Por lo tanto, es necesario realizar ciertas verificaciones para comprobar que los datos muestrales cumplen con las condiciones necesarias para determinar, a partir de estos, propiedades generales de una población estadística.
Este primer supuesto establece que la relación entre la variable dependiente y las variables independientes es lineal. Es decir, que se espera que el cambio en la variable dependiente sea proporcional a los cambios en las variables independientes, y que esta relación entre variables pueda ser descrita mediante una recta en un gráfico de residuos como el presentado.
grafico_linealidad <- ggplot(data = modelo, aes(x = modelo$fitted.values, y = modelo$residuals)) +
geom_point() +
geom_hline(yintercept = 0, linetype = "dashed", color = "Red") +
labs(x = "Valores ajustados", y = "Residuales") +
theme_bw()
# Convertir a gráfico dinámico con plotly.
ggplotly(grafico_linealidad)
Como se puede apreciar en este modelo, los residuos NO siguen una distribución normal, de tal manera que se establece que no hay relación lineal. Por lo cual se pueden deducir dos explicaciones, o hay errores en los datos, o la naturaleza de los mismos es tan variable que el modelo no se ajusta.