2024-06-12

Librerias requeridas

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

EJERCICIO 3

Cargar datos

df <- as.data.frame(read.xlsx("./RegMultiple.xlsx", sheet=3))

La variable dependiente es el número de peces de la especie carpita rinconera, Rhinichthys cataractae, por sección de 75 metros del arroyo.

Las variables independientes son el área (en acres) drenada por el arroyo; el oxígeno disuelto (en mg/L); la profundidad máxima (en cm) del segmento de arroyo de 75 metros; concentración de nitrato (mg/L); concentración de sulfato (mg/L); y la temperatura del agua en la fecha de muestreo (en grados °C).

Un objetivo biológico podría ser medir las características físicas y químicas de un arroyo y poder predecir la abundancia del pez; otro objetivo podría ser generar hipótesis sobre las causas de la variación en la abundancia de la carpita rinconera.

Tabla de datos de la población del parásito

flextable(df)

Estructura del set de datos

str(df)

Hacer que la primera columna contenga los nombres de las filas

df <- data.frame(df[,-1], row.names=df[,1])

Correlaciones

chart.Correlation(df)
cor(df)  

Atachar data frame

attach(df)

Modelo de regresión lineal múltiple

modelo <- lm(Longnose ~ Acerage+DO2+Maxdepth+NO3+SO4+Temp, data = df)
summary(modelo)
anova(modelo)

Residuos parciales (para observar tendencias)

crPlots(modelo)

Ajustar el modelo Modelo de regresión lineal (Método Backward)

step(lm(Longnose~.,data=df),direction="backward")

Ajustar el modelo Modelo de regresión lineal (Método Forward)

step(lm(Longnose~1,data=df),direction="forward",scope=~Acerage + DO2 + Maxdepth + NO3 + SO4 + 
    Temp)

Ajustar el modelo Modelo de regresión lineal (Método Stepwise)

step(lm(Longnose~.,data=df),direction="both")

Aplicación del método forward

empty.model <- lm(Longnose~1, data=df)
horizonte <- formula(Longnose ~ Acerage+DO2+Maxdepth+NO3+SO4+Temp)
modforw <- stepAIC(empty.model, trace=FALSE, direction="forward", scope=horizonte)
modforw$anova
summary(modforw)
modforw <- update(modforw, Longnose ~ Acerage + NO3 + Maxdepth)
summary(modforw)

Predecir nuevos valores

nuevos.Valores <- data.frame(Acerage = c(20000),
                             NO3 = c(6.25),
                             Maxdepth = c(75))
nuevos.Valores

Ejecución de la predicción (Intervalos de Confianza)

confianza <- predict(modforw, newdata = nuevos.Valores, interval="confidence")
confianza

Ejecución de la predicción (Intervalos de Predicción)

prediccion2 <- predict(modforw, newdata = nuevos.Valores, interval="prediction")
prediccion2

Remover datos de la memoria

rm(list=ls())