2024-06-02

Configuración del primer chunk

#Configuración

{r setup, include=FALSE}

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

Cargar librerías

require(pacman)
pacman::p_load(dplyr, openxlsx, readr, knitr, flextable, ggplot2, corrplot,
               kableExtra, GGally, lmtest, car, stargazer, rsm,
               PerformanceAnalytics)

EJERCICIO 1 (REGRESION POLINOMIAL)

La dureza de los árboles es difícil de medir directamente, sin embargo la densidad si es relativamente fácil de medir.

Por ello es de gran interés disponer de un modelo que permita predecir la dureza de un árbol a partir de su densidad.

Por este motivo se ha tomado una muestra de 36 eucaliptos australianos y se les midió su densidad (X) y su dureza (Y).

Cargar datos

df <- as.data.frame(read.xlsx("E:/[FAT32]/ACTIVIDAD DE TITULACION I (2023)/CLASE 10 REGRESION LINEAL/arboles.xlsx"))

Tabla con datos

#Mostrar tabla con datos de las variables

flextable(df)

Tipos de variables

#Estructura del set de datos

str(df)

Attachar memoria

#Fijar nombre de variables en la memoria

attach(df)

Summary

#Resumen del set de datos (datos numéricos de las variables)

summary(df)

Gráfico de dispersión

#Gráfico de dispersión del conjunto de variables

ggplot(df, aes(x = Densidad, y = Dureza)) + geom_point()

Nota:

Modelo a la Primera Potencia

#Ajuste a la primera potencia

moli1 <- lm(formula = Dureza ~ poly(Densidad, 1), data = df)
summary(moli1)
# Tendencia a la primera potencia
ggplot() + 
  geom_point(data = df, aes(x = Densidad, y = Dureza)) + 
  geom_line(aes( x = df$Densidad, y = predict(moli1, df)), color = "red")

Nota:

Modelo a la Segunda Potencia

#Ajuste a la Segunda Potencia

moli2 <- lm(formula = Dureza ~ poly(Densidad, 2), data = df)
summary(moli2)
# Tendencia a la segunda potencia
ggplot() + 
  geom_point(data = df, aes(x = Densidad, y = Dureza)) + 
  geom_line(aes( x = df$Densidad, y = predict(moli2, df)), color = "red")

Nota:

Modelo a la Tercera Potencia

#Ajuste a la Tercera Potencia

moli3 <- lm(formula = Dureza ~ poly(Densidad, 3), data = df)
summary(moli3)
# Tendencia a la tercera potencia
ggplot() + 
  geom_point(data = df, aes(x = Densidad, y = Dureza)) + 
  geom_line(aes( x = df$Densidad, y = predict(moli3, df)), color = "red")

Nota:

Modelo a la Cuarta Potencia

#Ajuste a la Cuarta Potencia

moli4 <- lm(formula = Dureza ~ poly(Densidad, 4), data = df)
summary(moli4)
# Tendencia a la cuarta potencia
ggplot() + 
  geom_point(data = df, aes(x = Densidad, y = Dureza)) + 
  geom_line(aes( x = df$Densidad, y = predict(moli4, df)), color = "red")

Nota:

Modelo a la Quinta Potencia

#Ajuste a la Quinta Potencia

moli5 <- lm(formula = Dureza ~ poly(Densidad, 5), data = df)
summary(moli5)
# Tendencia a la quinta potencia
ggplot() + 
  geom_point(data = df, aes(x = Densidad, y = Dureza)) + 
  geom_line(aes( x = df$Densidad, y = predict(moli5, df)), color = "red")

Nota:

Comparación de Modelos

#Comparación de modelos con la librería “stargazer”

stargazer(moli1, moli2, moli3, moli4, moli5, type="text", df=FALSE)

Comentarios:

Modelo Ajustado

\[\hat{y}=1469.47+4620.14x+525.40x^2\]

Dureza esperada para una densidad de 80

#Intervalo de Predicción

predict(moli2, data.frame(Densidad= 80), interval = "prediction")

Nota:

Detachar memoria

#Liberar nombres de variables de la memoria

detach(df)

Limpieza del ambiente de trabajo

#Limpiar Ambiente de Trabajo

rm(list = ls())

EJERCICIO 2

Este ejercicio muestra las bondades del modelo de regresión polinómica y su aplicación en la administración y la ciencia, mediante el desarrollo de un caso real aplicado en el comportamiento del volumen de la laguna Palcacocha, en el que se estima el volumen del recurso hídrico en función al nivel de cota de la laguna correspondiente.

Cargar datos

df <- as.data.frame(read.xlsx("E:/[FAT32]/ACTIVIDAD DE TITULACION I (2023)/CLASE 10 REGRESION LINEAL/cota.xlsx"))

Tabla con datos

#Mostrar tabla con datos de las variables

flextable(df)

Tipos de variables

#Estructura del set de datos

str(df)

Attachar memoria

#Fijar nombre de variables en la memoria

attach(df)

Summary

#Resumen del set de datos (datos numéricos de las variables)

summary(df)

Gráfico de dispersión

#Gráfico de dispersión del conjunto de variables

ggplot(df, aes(x = Cota, y = Volumen)) + geom_point()

Nota:

Modelo a la Primera Potencia

#Ajuste a la primera potencia

moli1 <- lm(formula = Volumen ~ poly(Cota, 1), data = df)
summary(moli1)
# Tendencia a la primera potencia
ggplot() + 
  geom_point(data = df, aes(x = Cota, y = Volumen)) + 
  geom_line(aes( x = df$Cota, y = predict(moli1, df)), color = "red")

Nota:

Modelo a la Segunda Potencia

#Ajuste a la Segunda Potencia

moli2 <- lm(formula = Volumen ~ poly(Cota, 2), data = df)
summary(moli2)
# Tendencia a la segunda potencia
ggplot() + 
  geom_point(data = df, aes(x = Cota, y = Volumen)) + 
  geom_line(aes( x = df$Cota, y = predict(moli2, df)), color = "red")

Nota:

Modelo a la Tercera Potencia

#Ajuste a la Tercera Potencia

moli3 <- lm(formula = Volumen ~ poly(Cota, 3), data = df)
summary(moli3)
# Tendencia a la tercera potencia
ggplot() + 
  geom_point(data = df, aes(x = Cota, y = Volumen)) + 
  geom_line(aes( x = df$Cota, y = predict(moli3, df)), color = "red")

Nota:

Modelo a la Cuarta Potencia

#Ajuste a la Cuarta Potencia

moli4 <- lm(formula = Volumen ~ poly(Cota, 4), data = df)
summary(moli4)
# Tendencia a la cuarta potencia
ggplot() + 
  geom_point(data = df, aes(x = Cota, y = Volumen)) + 
  geom_line(aes( x = df$Cota, y = predict(moli4, df)), color = "red")

Nota:

Modelo a la Quinta Potencia

#Ajuste a la Quinta Potencia

moli5 <- lm(formula = Volumen ~ poly(Cota, 5), data = df)
summary(moli5)
# Tendencia a la quinta potencia
ggplot() + 
  geom_point(data = df, aes(x = Cota, y = Volumen)) + 
  geom_line(aes( x = df$Cota, y = predict(moli5, df)), color = "red")

Nota:

Comparación de Modelos

#Comparación de modelos con la librería “stargazer”

stargazer(moli1, moli2, moli3, moli4, moli5, type="text", df=FALSE)

Comentarios:

Modelo Ajustado

\[\hat{y}=5,757,907+41,913,734x+10,426,973x^2-19,903x^3+576,066x^4+285,459x^5\]

Volumen de agua esperada para una cota de 5000 m

#Intervalo de Predicción

pred <- predict(moli5, data.frame(Cota= 5000), interval = "prediction")
format(pred, big.mark=",", decimal.mark=".")

Nota:

Detachar memoria

#Liberar nombres de variables de la memoria

detach(df)

Limpieza del ambiente de trabajo

#Limpiar Ambiente de Trabajo

rm(list = ls())

EJERCICIO 3

Se desea corroborar si el modelo de regresión cuadrático describe el ajuste de los valores a la función parabólica.

Cargar datos

df <- as.data.frame(read.xlsx("E:/[FAT32]/ACTIVIDAD DE TITULACION I (2023)/CLASE 10 REGRESION LINEAL/parabola.xlsx"))

Tabla con datos

#Mostrar tabla con datos de las variables

flextable(df)

Tipos de variables

#Estructura del set de datos

str(df)

Attachar memoria

#Fijar nombre de variables en la memoria

attach(df)

Summary

#Resumen del set de datos (datos numéricos de las variables)

summary(df)

Gráfico de dispersión

#Gráfico de dispersión del conjunto de variables

ggplot(df, aes(x = x, y = y)) + geom_point()

Nota:

Modelo a la Primera Potencia

#Ajuste a la primera potencia

moli1 <- lm(formula = y ~ poly(x, 1), data = df)
summary(moli1)
# Tendencia a la primera potencia
ggplot() + 
  geom_point(data = df, aes(x = x, y = y)) + 
  geom_line(aes( x = df$x, y = predict(moli1, df)), color = "red")

Nota:

Modelo a la Segunda Potencia

#Ajuste a la Segunda Potencia

moli2 <- lm(formula = y ~ poly(x, 2), data = df)
summary(moli2)
# Tendencia a la segunda potencia
ggplot() + 
  geom_point(data = df, aes(x = x, y = y)) + 
  geom_line(aes( x = df$x, y = predict(moli2, df)), color = "red")

Nota:

Modelo a la Tercera Potencia

#Ajuste a la Tercera Potencia

moli3 <- lm(formula = y ~ poly(x, 3), data = df)
summary(moli3)
# Tendencia a la tercera potencia
ggplot() + 
  geom_point(data = df, aes(x = x, y = y)) + 
  geom_line(aes( x = df$x, y = predict(moli3, df)), color = "red")

Nota:

Modelo a la Cuarta Potencia

#Ajuste a la Cuarta Potencia

moli4 <- lm(formula = y ~ poly(x, 4), data = df)
summary(moli4)
# Tendencia a la cuarta potencia
ggplot() + 
  geom_point(data = df, aes(x = x, y = y)) + 
  geom_line(aes( x = df$x, y = predict(moli4, df)), color = "red")

Nota:

Modelo a la Quinta Potencia

#Ajuste a la Quinta Potencia

moli5 <- lm(formula = y ~ poly(x, 5), data = df)
summary(moli5)
# Tendencia a la quinta potencia
ggplot() + 
  geom_point(data = df, aes(x = x, y = y)) + 
  geom_line(aes( x = df$x, y = predict(moli5, df)), color = "red")

Nota:

Comparación de Modelos

#Comparación de modelos con la librería “stargazer”

stargazer(moli1, moli2, moli3, moli4, moli5, type="text", df=FALSE)

Comentarios:

Modelo Ajustado

\[\hat{y}=1.00143582+0.00261020x+0.01002484x^2-0.00286747x^3+0.00163829x^4-0.00054972x^5\]

Valor de y para un x = 338

#Intervalo de Predicción

predict(moli5, data.frame(x= 338), interval = "prediction")

Nota:

Detachar memoria

#Liberar nombres de variables de la memoria

detach(df)

Limpieza del ambiente de trabajo

#Limpiar Ambiente de Trabajo

rm(list = ls())