Modelo de Regresión Lineal Simple y Múltiple
Predicción de los precios de las acciones: Analizar el comportamiento de los precios de las Acciones de Ecopetrol según la variación del precio del barril de petróleo WTI producido en Colombia.
Exploración de datos
## # A tibble: 5 × 3
## Fecha Accion_Ecopetrol WTI_barril
## <dttm> <dbl> <dbl>
## 1 2015-12-14 00:00:00 1090 35.6
## 2 2015-12-15 00:00:00 1170 36.3
## 3 2015-12-16 00:00:00 1160 37.4
## 4 2015-12-18 00:00:00 1230 35.0
## 5 2015-12-21 00:00:00 1155 34.5
## Fecha Accion_Ecopetrol WTI_barril
## Min. :2015-12-14 00:00:00 Min. : 955 Min. :30.44
## 1st Qu.:2015-12-21 06:00:00 1st Qu.:1066 1st Qu.:34.63
## Median :2015-12-28 12:00:00 Median :1120 Median :36.05
## Mean :2015-12-28 10:40:00 Mean :1108 Mean :35.53
## 3rd Qu.:2016-01-05 18:00:00 3rd Qu.:1164 3rd Qu.:36.98
## Max. :2016-01-13 00:00:00 Max. :1230 Max. :37.87
De acuerdo a la exploración de los datos podemos observar un aumento en el precio de la acción desde Dec 14 con un valor de 1.090 pesos hasta 1.230 pesos en Dec 18, desde allí la tendencia es a la baja disminuyendo hasta el día Ene 12 con un valor de 955 y en el último día se observa un leve aumento cerrando el día Ene 13 con un valor de 1.205 pesos.
De acuerdo a la exploración de datos podemos observar una tendencia al alza desde Dec 14 con 35.62 dólares hasta el día Dec 16 con un valor de 37.35 dólares. Seguidamente se presenta una disminución hasta el día Dec 21 cerrando con un valor de 34.53 dólares. Luego vuelve a aumentar hasta el día Dec 30 con un valor de 37.87 presentando una baja el día anterior con 36.64 dólares. Desde allí el valor disminuye hasta el día Ene 13 cerrando con un valor de 30.44 dólares. Podemos evidenciar que la tendencia no es uniforme y tampoco tiene forma rectilínea.
De acuerdo a la exploración de los datos podemos observar un tendencia al aumento del valor del precio de la acción pasando de 31.41 dólares por barril y 955 pesos por cada acción de Ecopetrol hasta un máximo de 37.04 dólares por barril y 1111.64 pesos por cada acción de Ecopetrol. Se puede ver que los valores más altos en la relación del precio del barril frente al precio de la acción de Ecopetrol se presentan en el intervalo de 1110 y 1170 pesos por acción de Ecopetrol.
Proponga un modelo de regresión lineal simple \(Y_i = \beta_0 + \beta_1 X_i+ e_i\) que permita predecir el valor de las Acciones de Ecopetrol con base en el Precio del barril de petróleo en Colombia. Indique la ecuación de regresión y el valor del \(R^2\)
##
## Call:
## lm(formula = Accion_Ecopetrol ~ WTI_barril, data = df_1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -59.90 -40.74 -15.94 33.40 136.82
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 177.768 232.828 0.764 0.45627
## WTI_barril 26.192 6.542 4.004 0.00102 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 57.13 on 16 degrees of freedom
## Multiple R-squared: 0.5005, Adjusted R-squared: 0.4692
## F-statistic: 16.03 on 1 and 16 DF, p-value: 0.001024
Por lo tanto, la ecuación de la recta de regresión es:
\[ Y = 177.768 + 26.192(X)\\ \] El coeficiente de determinación \(R^2\) es: \[ R^2 = 0.5005 \]
Pruebe la significancia del modelo propuesto en “a)” plantee las hipótesis respectivas y use el concepto de Valor-p para tomar la decisión sobre las hipótesis. Use \(\alpha = 0.05\)
Prueba de significancia de la regresión Fuente
\[ H_0 : \beta_0 = \beta_1 = 0 \\ H_a : \beta_0 = \beta_1 \neq 0 \]
Como el p-value del modelo es 0.001024 menor que 0.05, rechazamos la hipótesis nula = 0. Por lo tanto, existe una relación significativa entre las variables en el modelo de regresión lineal del conjunto de datos de ecopetrol.
Interprete los coeficientes del modelo propuesto en “a)”
Interpretación: La tabla de coeficientes \(\beta_0\) y \(\beta_1\) en el modelo estadístico se pueden evidenciar los resultados de acuerdo con el modelo de regresión lineal, donde:
\[ \beta_0 = 177.768 \\ \beta_1 = 26.192 \] Precio del Petróleo WTI en dólares por barril
La interpretación de \(\beta_0\) con valor \(177.768\), Puede interpretarse como el precio previsto para la acción de Ecopetrol en pesos para un WTI en US igual a cero. Esto significa que para una WTI igual a cero podemos esperar un costo de acción de $177.768 pesos.
Por otro, lado el coeficiente \(\beta_1\) también conocida como la pendiente del modelo es \(26.192\), esto significa el aumento en dólares por cada acción de Ecopetrol
Haga un análisis de los residuos. ¿Qué supuesto no se cumple?
Para realizar la validación de supuestos, este se realiza mediante la validación de análisis gráficos, donde:
Para verificar la validez del modelo propuesto debemos verificar que se cumplan las hipótesis de independencia, homocedasticidad y normalidad de los residuos.
## lag Autocorrelation D-W Statistic p-value
## 1 0.6214753 0.7450371 0.002
## Alternative hypothesis: rho != 0
Análisis: Con el resultado podemos ver que la estadística de la prueba es de 0.7450371 y el valor-p correspondiente a 0.004. Dado que esta valor-p es inferior a 0.05, se rechaza la hipótesis nula y se concluye que los residuos de este modelo de regresión están auto correlacionados.
##
## studentized Breusch-Pagan test
##
## data: modelo_1
## BP = 0.029563, df = 1, p-value = 0.8635
Análisis: El estadístico de prueba es 0.029563 y el valor p correspondiente es 0.8635. Dado que el valor p no es inferior a 0.05, no podemos rechazar la hipótesis nula. No tenemos evidencia suficiente para decir que la heterocedasticidad está presente en el modelo de regresión.
##
## Shapiro-Wilk normality test
##
## data: residuals(modelo_1)
## W = 0.89259, p-value = 0.04276
Análisis: El valor p de la prueba resulta ser 0.04276. Dado que este valor es inferior a 0.05, podemos suponer que los residuales de la muestra no provienen de una población que se distribuye normalmente.
Los siguientes datos corresponden a la INFLACION y al SALARIO MINIMO LEGAL MENSUAL (SMLM) desde el año 1999 para Colombia.
Fase de exploración
## # A tibble: 3 × 3
## `AÑO ` INFLACION SMLM
## <dbl> <dbl> <dbl>
## 1 1999 9.23 236460
## 2 2000 8.75 260100
## 3 2001 7.65 286000
## AÑO INFLACION SMLM
## Min. :1999 Min. :1.940 Min. :236460
## 1st Qu.:2003 1st Qu.:3.660 1st Qu.:332000
## Median :2007 Median :5.500 Median :433700
## Mean :2007 Mean :5.354 Mean :437079
## 3rd Qu.:2011 3rd Qu.:6.990 3rd Qu.:535600
## Max. :2015 Max. :9.230 Max. :644350
Para este comportamiento en el cual se compara el salario mínimo legal vigente respecto al año, se aprecia una conducta lineal muy bien ajustado de manera visual en el cual para cada año vemos un incremento similar al de todos los años, observamos también que para el año 2009 observamos un crecimiento un poco más grande que todos los demás años en medición.
Al comparar el índice de inflación colombiano durante 15 años observamos gran variabilidad dentro de los datos, desde el 2000 hasta el 2006 observamos que este comportamiento decreciente casi lineal para observar un crecimiento durante tres años consecutivos y volver a disminuir nuevamente para el año 2009 sin embargo, posterior a este periodo vemos un comportamiento de tres años consecutivos crecientes.
Finalmente, dentro de la exploración de estos comportamiento comparamos el salario mínimo legal respecto al índice de inflación durante los quince años de medición en el cual se aprecia que el salario mínimo es cada vez una variable impactada respecto al salario mínimo en el cual podremos mencionar que el ingreso es cada vez menos en nuestra región
La idea es establecer un modelo de regresión que ayude a determinar el comportamiento de estas dos variables tomando como variable dependiente SALARIO MINIMO LEGAL MENSUAL (SMLM) y como variable independiente INFLACION obtenga un modelo de regresión lineal simple y resuelva.
Escriba la ecuación del modelo de regresión lineal simple.
##
## Call:
## lm(formula = SMLM ~ INFLACION, data = df_2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -75463 -63456 -42854 17623 263207
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 648486 58947 11.00 1.4e-08 ***
## INFLACION -39489 10151 -3.89 0.00145 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 94130 on 15 degrees of freedom
## Multiple R-squared: 0.5022, Adjusted R-squared: 0.469
## F-statistic: 15.13 on 1 and 15 DF, p-value: 0.00145
\[ Y_i(SMLV) = 648486 + (-39489(Inflación)) + e_i \\ \]
Plantee y valide las hipótesis correspondientes a la linealidad general del modelo propuesto en a)
\[ H_{o}:C\beta_0 = 0 \\ H_{a}:C\beta_0 \neq 0 \]
## Linear hypothesis test
##
## Hypothesis:
## (Intercept) = 0
## INFLACION = 1
##
## Model 1: restricted model
## Model 2: SMLM ~ INFLACION
##
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 17 3.5146e+12
## 2 15 1.3292e+11 2 3.3817e+12 190.81 2.152e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Análisis: Se rechaza la hipótesis nula ya que el p-value 2.152e-11 es menor a 0.05. Hay suficiente evidencia para concluir que al menos una de las covariables tiene poder predictivo en nuestro modelo lineal, es decir, que usar una regresión es predictivamente “mejor” que simplemente adivinar el promedio.
Indique e interprete el coeficiente de correlación \(r\) del modelo propuesto en a)
cor(x = df_2$INFLACION,y = df_2$SMLM)
## [1] -0.7086581
De acuerdo al coeficiente de determinación r=-0.7086581 podemos indicar una correlacíon negativa en la cual cuando una variable aumenta o otra disminuye.
Interprete cada uno de los coeficientes del modelo propuesto en a)
\[ \beta_0 = 648486 \\ \beta_1 = -39489 \]
Análisis: La tabla de coeficientes b0 y b1 en el modelo estadístico se pueden evidenciar los resultados de acuerdo con el modelo de regresión lineal, donde:
Construya una gráfica de residuales y haga un análisis cualitativo de los supuestos del modelo propuesto en a)
Análisis: En la verificación de los supuestos del modelo, se procede a la validar los análisis de los gráficos, donde:
Comente sobre la conveniencia de usar el modelo propuesto en a) para predecir el SMLM para Colombia.
Análisis: Desacuerdo con el análisis realizado en la fase de exploración y de regresión podemos decir que este modelo aún no es conveniente para predecir el SMLV respecto al índice de inflación del año ya que no cumple los supuestos así mismo, dentro de la fase de exploración podemos ver existen valores a típicos que sesgan bastante al modelo en un estado inicial, es decir sin generar una intervención metodológica para el modelo todo este con el fin de mejorar cada uno de los supuestos.
Dentro de la fase de exploración de los datos, se observó un comportamiento importante en el cual de manera visual los datos se ajustan muy bien a la línea de tendencia en el cual se compara el aumento del SMLV respecto al año. Aquí se recomienda generar un análisis 1. De agregar esta variable al modelo para ver el comportamiento y medir sus métricas para tomar una decisión más acertada y/o 2. Crear un modelo para estas dos variables con el cual se pueda predecir el aumento del SMLV respecto al año.
Con base en los datos de precios de vivienda de la actividad en clase realizar un informe que contenga los siguientes puntos utilizando R y RMarkdown (publicar el informe final en Rpubs presentando código, resultados e interpretaciones).
## Zona piso Estrato precio_millon
## Length:8322 Length:8322 Min. :3.000 Min. : 58.0
## Class :character Class :character 1st Qu.:4.000 1st Qu.: 220.0
## Mode :character Mode :character Median :5.000 Median : 330.0
## Mean :4.634 Mean : 433.9
## 3rd Qu.:5.000 3rd Qu.: 540.0
## Max. :6.000 Max. :1999.0
## NA's :3 NA's :2
## Area_contruida parqueaderos Banos Habitaciones
## Min. : 30.0 Length:8322 Min. : 0.000 Min. : 0.000
## 1st Qu.: 80.0 Class :character 1st Qu.: 2.000 1st Qu.: 3.000
## Median : 123.0 Mode :character Median : 3.000 Median : 3.000
## Mean : 174.9 Mean : 3.111 Mean : 3.605
## 3rd Qu.: 229.0 3rd Qu.: 4.000 3rd Qu.: 4.000
## Max. :1745.0 Max. :10.000 Max. :10.000
## NA's :3 NA's :3 NA's :3
## Tipo Barrio cordenada_longitud Cordenada_latitud
## Length:8322 Length:8322 Min. :-76.59 Min. :3.333
## Class :character Class :character 1st Qu.:-76.54 1st Qu.:3.381
## Mode :character Mode :character Median :-76.53 Median :3.416
## Mean :-76.53 Mean :3.418
## 3rd Qu.:-76.52 3rd Qu.:3.452
## Max. :-76.46 Max. :3.498
## NA's :3 NA's :3
Realice un filtro a la base de datos e incluya solo las ofertas de apartamentos, de la zona norte de la ciudad con precios inferiores a los 500 millones de pesos y áreas menores a 300 mt2. Presente los primeros 3 registros de la base y algunas tablas que comprueben la consulta. (Adicional un mapa con los puntos de la base, discutir si todos los puntos se ubican en la zona norte o se presentan valores en otras zonas, por que?).
-Filtrando la base de datos:
sub_df_3 = subset(df_3, Tipo == "Apartamento" & Zona == "Zona Norte" & precio_millon < 500 & Area_contruida < 300)
head(sub_df_3,6)
## # A tibble: 6 × 12
## Zona piso Estrato precio_millon Area_contruida parqueaderos Banos
## <chr> <chr> <dbl> <dbl> <dbl> <chr> <dbl>
## 1 Zona Norte 2 3 135 56 1 1
## 2 Zona Norte NA 3 78 54 2 1
## 3 Zona Norte NA 5 340 106 2 2
## 4 Zona Norte 1 3 135 103 1 3
## 5 Zona Norte 1 3 75 54 1 2
## 6 Zona Norte NA 4 175 77 1 2
## # … with 5 more variables: Habitaciones <dbl>, Tipo <chr>, Barrio <chr>,
## # cordenada_longitud <dbl>, Cordenada_latitud <dbl>
require(leaflet)
leaflet() %>% addCircleMarkers(lng = sub_df_3$cordenada_longitud, lat = sub_df_3$Cordenada_latitud, radius = 0.4, color = "red",label = sub_df_3$Zona) %>% addTiles()
Análisis: De acuerdo con la información de la base de datos y teniendo en cuentas las características con las cuales se realiza la exploración como: Apartamentos ubicados en la zona norte de la ciudad con precios inferiores a los 500 MM COP y con áreas menores a 300 mt2, se logra identificar que existen ubicaciones diferentes a la zona norte con las características anteriormente descritas con cual podremos inferir que las publicaciones realizadas no concuerdan con las descripciones todo esto, puede deberse a estrategias de publicaciones con el fin de quesea más visible dentro de la plataforma de búsqueda sin embargo, no podremos con total certeza ya que al descocer el proceso de publicación y captura de información pueda existir errores dentro de este proceso que actualmente generar diferencias para este atributo en la base de datos.
Realice un análisis exploratorio de datos enfocado en la correlación entre la variable respuesta (precio del apartamento) en función del área construida, estrato y si tiene parqueadero. Use gráficos interactivos con plotly e interprete los resultados.
Exploración de datos
Análisis: En la gráfica anterior observamos la dispersión de los datos que existe del precio respecto al área construida visualizando dos tipos de líneas que atraviesan los puntos: la primera una línea recta en el cual cumple la especificación de un modelo lineal, la segunda de estas se realiza la suavización en el cual podrimos ver el sobre ajuste a los datos y aquí concluimos que no existe una tendencia línea precisa para estas dos variables en estudio.
Análisis: Los diagramas de cajas permiten examinar los elementos de mediana, rango intercuartil y el 25% de los datos por encima y por debajo; dentro del precio respecto al estrato para las viviendas de la zona norte de la ciudad que el precio aumenta respecto a la variable de estrato así mismo, podemos observar que para los estratos 3 presentan varios valores atípicos es decir que podríamos encontrar para estrato 3 viviendas más costosas, todo este teniendo en cuenta que podría basarse en la incoherencia mencionada en el punto A. La media de precios del estrato 3, 4, 5 y 6 es de 119, 190, 315 y 407 MM COP respectivamente, el rango intercuartil del estrato 5 es el más grande dentro de la visualización de estos resultados con mínimos y máximos de precios más pronunciados que las demás ofertas.
Análisis: Finalmente, al revisar el precio promedio de precios para la zona norte de la ciudad se evidencia que para aquellas propiedades en las cuales posee parqueaderos su precio aumenta en un 47% pasando de una media de precios de 133 MM sin parqueaderos a 260 MM con parqueaderos.
Estime un modelo de regresión lineal múltiple con las variables del punto anterior e interprete los coeficientes si son estadísticamente significativos. Las interpretaciones deber están contextualizadas y discutir si los resultados son lógicos. Adicionalmente interprete el coeficiente R2 y discuta el ajuste del modelo e implicaciones (que podrían hacer para mejorarlo).
##
## Call:
## lm(formula = precio_millon ~ Area_contruida + Estrato + parqueaderos,
## data = sub_df_3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -239.302 -32.988 -0.544 27.364 225.298
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -169.94103 7.71690 -22.022 < 2e-16 ***
## Area_contruida 1.04631 0.06058 17.271 < 2e-16 ***
## Estrato 72.01635 2.30177 31.287 < 2e-16 ***
## parqueaderos 16.65694 3.93658 4.231 2.52e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 54.99 on 1073 degrees of freedom
## Multiple R-squared: 0.7519, Adjusted R-squared: 0.7512
## F-statistic: 1084 on 3 and 1073 DF, p-value: < 2.2e-16
Análisis: - Se realiza el modelo de regresión múltiple para tres variables regresores o predictoras como área construida, estrato y parqueaderos se identifica la representación del valor p asociado con el valor en la columna de valor t, en el cual al observar que los valores son inferiores al nivel de significancia de alfa = 0.05, con lo cual concluimos que las variables predictoras tienen relación estadísticamente significativa con la variable de respuesta en el modelo. - Al contrastar estos resultados con las dinámicas de compra y venta de viviendas en nuestro sector, región y nación sabemos que por conocimiento empírico estas tres variables de estudio como área, parqueadero y estrato finalmente determinar el precio de una vivienda.
## [1] 0.7518683
El \(R^2\) del modelo resulta del 0.7518683, esto significa que el 75.18% de la variación en los precios de las viviendas en MM se explica por el estrato, si tiene o no parqueadero y el área construida.
Realice la validación de supuestos del modelo e interprete los resultados (no es necesario corregir en caso de presentar problemas solo realizar sugerencias de que se podría hacer).
Análisis: En la verificación de los supuestos del modelo, se procede a la validar los análisis de los gráficos, donde:
Con el modelo identificado predecir el precio de un apartamento con 100 mt2, de estrato 4 y con parqueadero. ¿Si este apartamento lo están ofreciendo en 450 millones cual seria su opinión con base en el resultado del modelo considera que es una buena oferta?
Intervalor_Confianza = predict(modelo_3, list(Area_contruida=100, Estrato=4,
parqueaderos = 1 ), interval = "confidence",level = 0.95)
data.frame(Intervalor_Confianza)
## fit lwr upr
## 1 239.4127 234.6987 244.1266
Análisis: De acuerdo con el modelo de predicción desarrollado, se tiene que para la oferta de un apartamento de 100 mt2, estrato 4 y con parqueadero el precio de predicción con una confianza del 95% debe estar entre 234 y 244 MM COP, esto indica que la oferta no es la apropiada ya que está oferta en particular es 91% más caro de los esperado para un apartamento con estas condiciones en la zona norte de la ciudad.
Con las predicciones del modelo sugiera potenciales ofertas para una persona interesada en un apartamento en la zona norte con mas de 100 mt2 de área, de estrato 4, que tenga parqueadero y tenga encuentra que la persona tiene un crédito preaprobado de máximo 400 millones de pesos. Realice un análisis y presente en un mapa al menos 5 ofertas potenciales que debe discutir.
i <- NULL; oferta <- NULL; r <- NULL
for (i in 230:235) {
oferta <- predict(modelo_3, list(Area_contruida=i,
Estrato=4,parqueaderos = 1 ), interval = "confidence",level = 0.95)
r <- c(r,oferta)
}
oferta_top <- matrix(c(r),ncol = 3);
colnames(oferta_top) <- c("fit", "lwr", "upr"); rownames(oferta_top) <- c("230 mt2", "231 mt2","232 mt2","233 mt2","234 mt2","235 mt2")
oferta_top
## fit lwr upr
## 230 mt2 375.4334 377.5260 379.6186
## 231 mt2 357.4047 359.2662 361.1274
## 232 mt2 393.4621 395.7859 398.1099
## 233 mt2 376.4797 378.5723 380.6650
## 234 mt2 358.3354 360.1968 362.0580
## 235 mt2 394.6240 396.9478 399.2719
A partir de los resultados del modelo desarrollado podemos evidenciar que las ofertas que se deben evaluar deben considerarse las áreas de construcción que estén desde lo 230 mts a los 235 mts teóricamente, sin embargo, es importante aclarar que estos resultados son los estimadas por el modelo de acuerdo con las condiciones dadas. Los mismos deben contrastarse con la realidad de las ofertas existentes.
sub_df_3_1 = subset(sub_df_3, Tipo == "Apartamento" & Zona == "Zona Norte" & precio_millon <= 400 & Area_contruida > 140 &
Area_contruida <= 400 & parqueaderos == 1 & Estrato == 4)
leaflet() %>% addCircleMarkers(lng = sub_df_3_1$cordenada_longitud, lat = sub_df_3_1$Cordenada_latitud, radius = 3.0, color = "red",label = sub_df_3_1$Zona) %>% addTiles()
head(sub_df_3_1,6)
## # A tibble: 6 × 12
## Zona piso Estrato precio_millon Area_contruida parqueaderos Banos
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Zona Norte 6 4 270 152 1 3
## 2 Zona Norte 3 4 300 287 1 3
## 3 Zona Norte 8 4 397 160. 1 4
## 4 Zona Norte 2 4 300 163 1 3
## 5 Zona Norte 6 4 310 147 1 2
## 6 Zona Norte NA 4 280 173 1 3
## # … with 5 more variables: Habitaciones <dbl>, Tipo <chr>, Barrio <chr>,
## # cordenada_longitud <dbl>, Cordenada_latitud <dbl>
Análisis: El contraste realizado respecto a las ofertas en las cuales se aplica un método de búsqueda más amplio debido a que no se encuentran las ofertas de acuerdo con el método teórico, evidenciamos que las ofertas son muy costosas teniendo en cuentas las variables predictoras para el modelo; aquí es importante considerar variables adicionales donde se puedan modelar el piso de la ubicación del apartamento, el número de parqueaderos y el tratamiento a los barrios en consideración.
## # A tibble: 6 × 5
## finca mg peso diametro altura
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 FINCA_1 GENOTIPO_1 13.7 4.7 5
## 2 FINCA_1 GENOTIPO_1 14.6 5.3 5.6
## 3 FINCA_1 GENOTIPO_1 15.9 4.8 5.8
## 4 FINCA_1 GENOTIPO_1 8.99 3.2 4.3
## 5 FINCA_1 GENOTIPO_1 6.99 2.2 3.3
## 6 FINCA_1 GENOTIPO_2 19.3 6.3 7.9
## finca mg peso diametro
## Length:90 Length:90 Min. : 5.98 Min. :2.200
## Class :character Class :character 1st Qu.:13.64 1st Qu.:4.525
## Mode :character Mode :character Median :17.48 Median :5.400
## Mean :18.77 Mean :5.446
## 3rd Qu.:22.80 3rd Qu.:6.500
## Max. :47.87 Max. :8.800
## altura
## Min. : 3.300
## 1st Qu.: 5.225
## Median : 6.450
## Mean : 6.634
## 3rd Qu.: 7.875
## Max. :11.300
Correlación de las variables cuantitativas:Dentro de la exploración de los datos se realiza la correlación con el propósito de cuantificar la relación de las variables de estudio como se aprecia a continuación:
Los resultados de esta exploración visual y cuantitativa se observan las variables tienen una relación lineal positiva fuerte siendo, la altura con el diámetro de los árboles las dos variables que mejor se relacionan con un r = 0.94, seguidamente del diámetro con peso r = 0.91 y finalmente r = 0.86 para la altura con el peso; podríamos indicar que el diámetro del árbol tiene la relación positiva más fuerte dentro de las tres variables de estudio.
A continuación, se procede a la construcción del modelo de regresión múltiple el cual permita predecir el peso del árbol en función de las covariables.
modelo_4 <- lm(peso ~ diametro+altura+mg+finca,data = df_4)
summary(modelo_4)
##
## Call:
## lm(formula = peso ~ diametro + altura + mg + finca, data = df_4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.1009 -1.8569 -0.5094 1.5578 12.8691
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -13.95177 1.68295 -8.290 1.59e-12 ***
## diametro 2.57058 0.76282 3.370 0.001138 **
## altura 2.98566 0.76616 3.897 0.000195 ***
## mgGENOTIPO_2 -4.50270 1.23667 -3.641 0.000468 ***
## fincaFINCA_2 -0.03095 0.99140 -0.031 0.975166
## fincaFINCA_3 3.51938 0.83466 4.217 6.23e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.983 on 84 degrees of freedom
## Multiple R-squared: 0.8738, Adjusted R-squared: 0.8662
## F-statistic: 116.3 on 5 and 84 DF, p-value: < 2.2e-16
\[ Y(peso) = -13.95177 + 2.57058(diametro) + 2.98566(2.98566) + (-4.50270)(mgGENOTIPO2) + (-0.03095)(fincaFINCA2) + 3.51938(fincaFINCA3)\\ \]
El coeficiente de determinación \(R^2\) es: 0.8738 con estos resultados indicamos que el ajuste a los datos es bueno, sin embargo podemos inferir que se puede mejorar el modelo del ajuste a los datos con alguna posible transformación.
Por otro lado, con el modelo propuesto inicial observamos que al ingresar todas las variables al modelo identificamos que la variable fincaFINCA_2 no es significativa de acuerdo con la prueba t-student. Esto indica que se puede comenzar a trabajar en el modelo para tener una mejor significancia dentro del modelo inicial.
par(mfrow = c(2,2))
plot(modelo_4)
En la verificación de los supuestos del modelo, se procede a la validar los análisis de los gráficos, donde:
fuente. la prueba individual de un coeficiente de regresión puede se útil para determinar si:
\(\left( 1\right)\) Se incluyen otra variable regresora \(\left( 2\right)\) Se elimina una una o más variables regresoras presentes en el modelo.
\[ H_0 : \beta_1 = \beta_1 = ...= \beta_k = 0 \\ H_a : \beta_j \neq 0 para al menos un j; j = 1,2,..,k \]
Para cada uno de los coeficientes\(\beta_j\) se puede identificar la significancia a partir del valor de t_value respecto a Pr(>|t|) donde se identificar que para los \(\beta_0,\beta_1,\beta_2,\beta_4\) De la cual se concluye que estos coeficiente es significativamente diferente de cero y por lo tanto \(X_i\) contribuye significativamente al modelo.
Sin embargo, el coeficiente \(\beta_3 = fincaFINCA2\) como se puede observar su significancia se acepta la hipótesis nula indicando que este coeficiente no contribuye significativamente al modelo.
De acuerdo con los primeros resultados del modelo y al validar el R2 se infiere que el modelo es susceptible de mejorar, en el cual se realiza el proceso de transformación de la variable independiente o a predecir, donde se realiza el siguiente procedimiento.
modelo_4 <- lm(log(peso) ~ diametro+altura+mg+finca,data = df_4)
summary(modelo_4)
##
## Call:
## lm(formula = log(peso) ~ diametro + altura + mg + finca, data = df_4)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.189920 -0.065508 0.003677 0.052756 0.189799
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.04313 0.04786 21.796 < 2e-16 ***
## diametro 0.21616 0.02169 9.964 6.85e-16 ***
## altura 0.10388 0.02179 4.768 7.73e-06 ***
## mgGENOTIPO_2 -0.25343 0.03517 -7.206 2.29e-10 ***
## fincaFINCA_2 -0.04161 0.02819 -1.476 0.144
## fincaFINCA_3 0.22201 0.02374 9.353 1.15e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08484 on 84 degrees of freedom
## Multiple R-squared: 0.9631, Adjusted R-squared: 0.9609
## F-statistic: 438.2 on 5 and 84 DF, p-value: < 2.2e-16
par(mfrow = c(2,2))
plot(modelo_4)
Proponga un método de evaluación por medio de validación cruzada. Presente métricas apropiadas como el RMSE y MAE.
El método seleccionado con el cual se realizada la validación cruzada es El enfoque del conjunto de validación el cual consiste en dividir aleatoriamente los datos en dos conjuntos: un conjunto se utiliza para entrenar el modelo y el otro restante se utiliza para probar el modelo.
# Composición de la base de datos
head(df_4,6)
## # A tibble: 6 × 5
## finca mg peso diametro altura
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 FINCA_1 GENOTIPO_1 13.7 4.7 5
## 2 FINCA_1 GENOTIPO_1 14.6 5.3 5.6
## 3 FINCA_1 GENOTIPO_1 15.9 4.8 5.8
## 4 FINCA_1 GENOTIPO_1 8.99 3.2 4.3
## 5 FINCA_1 GENOTIPO_1 6.99 2.2 3.3
## 6 FINCA_1 GENOTIPO_2 19.3 6.3 7.9
# Dividir los datos en conjuntos de entrenamiento y prueba
set.seed(123)
training.samples <- df_4$peso %>%
createDataPartition(p = 0.8, list = FALSE)
train.data <- df_4[training.samples, ]
test.data <- df_4[-training.samples, ]
# Construcción del modelo
model <- lm(peso ~., data = train.data)
# Hacer predicciones y calculo del R2, RMSE y MAE
predictions <- model %>% predict(test.data)
data.frame(R2 = R2(predictions, test.data$peso),
RMSE = RMSE(predictions, test.data$peso),
MAE = MAE(predictions, test.data$peso))
## R2 RMSE MAE
## 1 0.8504781 4.359821 2.775827
Para la validación cruzada tenemos dos datos importantes para tener en cuenta, los cuales fueron:
RMSE(predictions, test.data$peso)/mean(test.data$peso)*100
## [1] 21.50874