UNIDAD 2 Regresión Lineal Multiple
a)Realice un análisis exploratorio que permita conocer como es el consumo de oxígeno en las distintas concentraciones de agua de mar. y si estas conclusiones son las mismas para cada tipo de molusco
load("C:/Users/Wilfredo Gomez/iCloudDrive/Downloads/Maestria/Segundo Semestre/Metodos Estadistica/Unidad 2RLM/moluscos.RData")
moluscos<-BD_moluscos
head(moluscos)
## c_agua molusco cons_o
## 1 100 A 7.16
## 2 100 A 8.26
## 3 100 A 6.78
## 4 100 A 14.00
## 5 100 A 13.60
## 6 100 A 11.10
#Factor para las variables categoricas
moluscos$molusco <- as.factor(moluscos$molusco)
moluscos$c_agua <- as.factor(moluscos$c_agua)
str(moluscos)
## Classes 'tbl_df', 'tbl' and 'data.frame': 48 obs. of 3 variables:
## $ c_agua : Factor w/ 3 levels "50","75","100": 3 3 3 3 3 3 3 3 3 3 ...
## $ molusco: Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 2 2 ...
## $ cons_o : num 7.16 8.26 6.78 14 13.6 11.1 8.93 9.66 6.14 6.14 ...
#Análisis Exploratorio
require(ggplot2)
hist(moluscos$cons_o)
shapiro.test(moluscos$cons_o)
##
## Shapiro-Wilk normality test
##
## data: moluscos$cons_o
## W = 0.97276, p-value = 0.3231
#GRaficos de Velas
g1 <- ggplot(BD_moluscos, aes(y=cons_o, x=c_agua, fill= molusco)) +
geom_boxplot()+
xlab("Tipo Molusco")+
ylab("cons. oxígeno")+
ggtitle("Análisis x Molusco")+
facet_grid(~molusco)
# Graficos de Velas
g1
g2 <- ggplot(BD_moluscos, aes (y=cons_o, x=molusco, fill= molusco))+
geom_boxplot()+
xlab("Concentracion Agua")+
ylab("cons. oxígeno")+
ggtitle("Análisis x Concentracion de Agua")+
facet_grid(~c_agua)
g2
Analisis Se observa un comportamiento con una media mas
alta en el consumo de Oxigeno para la concentración al 50%, para ese
mismo escenario el Molusco B tiene una media superior a 12 por encima
del molusco A
Por el contrario para los casos de concentraciones de 75% y 100%, el molusco A tiene medias superiores que rondan entre los 7 y 9 con relación al consumo del Oxigeno.
Asi mismo, por medio de la prueba de Shapiro no rechazamos que la distribucion de la variable consumo de oxigeno es normal.
b)Estime el modelo de diseño de experimentos el cual permita evaluar el efecto de la concentración de agua de mar y los tipos de molusco sobre el consumo de oxigeno. Interprete los coeficientes del modelo, el valor p y realice un post anova de considerarlo necesario para los factores
mod1_moluscos <- lm(formula = moluscos$cons_o ~ .,data = moluscos)
summary(mod1_moluscos)
##
## Call:
## lm(formula = moluscos$cons_o ~ ., data = moluscos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.1750 -1.9877 -0.7019 2.1244 6.1450
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.9463 0.8521 15.193 < 2e-16 ***
## c_agua75 -5.2581 1.0436 -5.038 8.49e-06 ***
## c_agua100 -3.5794 1.0436 -3.430 0.00132 **
## moluscoB -1.3913 0.8521 -1.633 0.10966
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.952 on 44 degrees of freedom
## Multiple R-squared: 0.3986, Adjusted R-squared: 0.3575
## F-statistic: 9.719 on 3 and 44 DF, p-value: 4.866e-05
bestmoluscos01 <- step(mod1_moluscos)
## Start: AIC=107.73
## moluscos$cons_o ~ c_agua + molusco
##
## Df Sum of Sq RSS AIC
## <none> 383.37 107.73
## - molusco 1 23.227 406.59 108.56
## - c_agua 2 230.816 614.18 126.36
summary(bestmoluscos01)
##
## Call:
## lm(formula = moluscos$cons_o ~ c_agua + molusco, data = moluscos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.1750 -1.9877 -0.7019 2.1244 6.1450
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.9463 0.8521 15.193 < 2e-16 ***
## c_agua75 -5.2581 1.0436 -5.038 8.49e-06 ***
## c_agua100 -3.5794 1.0436 -3.430 0.00132 **
## moluscoB -1.3913 0.8521 -1.633 0.10966
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.952 on 44 degrees of freedom
## Multiple R-squared: 0.3986, Adjusted R-squared: 0.3575
## F-statistic: 9.719 on 3 and 44 DF, p-value: 4.866e-05
#Analisis de Residuales
par(mfrow=c(2,2))
plot(bestmoluscos01)
# Validación Anova
anova(bestmoluscos01)
## Analysis of Variance Table
##
## Response: moluscos$cons_o
## Df Sum Sq Mean Sq F value Pr(>F)
## c_agua 2 230.82 115.408 13.2457 3.14e-05 ***
## molusco 1 23.23 23.227 2.6658 0.1097
## Residuals 44 383.37 8.713
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post anova Validación
library(agricolae)
pos_anova <- LSD.test(bestmoluscos01,c("c_agua","molusco"))
pos_anova
## $statistics
## MSerror Df Mean CV t.value LSD
## 8.712897 44 9.304792 31.72303 2.015368 2.974442
##
## $parameters
## test p.ajusted name.t ntr alpha
## Fisher-LSD none c_agua:molusco 6 0.05
##
## $means
## moluscos$cons_o std r LCL UCL Min Max Q25 Q50
## 100:A 9.93625 2.747976 8 7.833002 12.039498 6.78 14.00 7.9850 9.295
## 100:B 7.40625 2.844076 8 5.303002 9.509498 3.68 11.60 5.7225 6.140
## 50:A 12.17500 3.090178 8 10.071752 14.278248 9.74 18.80 10.3100 11.110
## 50:B 12.32625 3.517909 8 10.223002 14.429498 6.38 17.70 10.0575 12.850
## 75:A 7.89000 2.739578 8 5.786752 9.993248 5.20 13.20 6.0775 7.180
## 75:B 6.09500 2.739108 8 3.991752 8.198248 1.80 9.96 4.8300 5.595
## Q75
## 100:A 11.7250
## 100:B 10.1000
## 50:A 12.5000
## 50:B 14.5000
## 75:A 8.8925
## 75:B 7.3425
##
## $comparison
## NULL
##
## $groups
## moluscos$cons_o groups
## 50:B 12.32625 a
## 50:A 12.17500 a
## 100:A 9.93625 ab
## 75:A 7.89000 bc
## 100:B 7.40625 bc
## 75:B 6.09500 c
##
## attr(,"class")
## [1] "group"
interaction.plot(
x.factor = moluscos$c_agua,
trace.factor = moluscos$molusco,
response = moluscos$cons_o,
fun = median,
ylab = "Peso perdido en 6 semanas",
xlab = "Tipo de Dieta",
trace.label = "Genero",
col = c("purple", "green"),
lwd = 1
)
Analisis El modelo creado puede explicar con certeza un
35.75% del consumo de oxigeno con base en la concentracion de agua y los
tipos de moluscos A y B. La formula del modelo resultante seria:
ConcentracionOxigeno = 12.9463 − 5.2581(Agua75) − 3.5794(Agua100) − 1.3913(MoluscoB) + ϵ
Al aplicar el metodo Anova se observa que la concentración de agua es significativa dentro del modelo ya que su valor es muy inferior a 0.05 mientras que para el caso del tipo molusco no tiene el mismo efecto.
Igualmente se observa que al aplicar el metodo post anova la varianza entre las concentraciones de agua 75 y 100 son similares, cuando el grupo de 50% Concentración difiere de los dos anteriores como se ve en el graffito anterior
2. Para estudiar la relación entre ciertas características del suelo y la producción de biomasa (gr) de una planta forrajera natural se obtuvieron 45 muestras en diferentes ambientes, y en cada muestra se estimó la biomasa (respuesta Y) y se registraron las características (covariables X) del suelo en el que crecía (pH, Salinidad, Zinc y Potasio).
a)Realice un análisis de correlaciones que permita identificar de manera bivariada las relaciones entre las covariables y la respuesta (incluir coeficiente de correlación e interpretaciones)
require(PerformanceAnalytics)
# Cargo el dataframe
load("C:/Users/Wilfredo Gomez/iCloudDrive/Downloads/Maestria/Segundo Semestre/Metodos Estadistica/Unidad 2RLM/Salinidad.RData")
SalinidadDF <- Salinidad
head(SalinidadDF)
## Biomasa pH Salinidad Zinc Potasio
## 1 765.280 5.00 33 16.4524 1441.67
## 2 954.017 4.70 35 13.9852 1299.19
## 3 827.686 4.20 32 15.3276 1154.27
## 4 755.072 4.40 30 17.3128 1045.15
## 5 896.176 5.55 33 22.3312 521.62
## 6 1422.836 5.50 33 12.2778 1273.02
summary(SalinidadDF)
## Biomasa pH Salinidad Zinc
## Min. : 369.8 Min. :3.200 Min. :24.00 Min. : 0.2105
## 1st Qu.: 654.8 1st Qu.:3.450 1st Qu.:27.00 1st Qu.:13.9852
## Median : 991.8 Median :4.450 Median :30.00 Median :19.2420
## Mean :1082.2 Mean :4.609 Mean :30.27 Mean :17.8308
## 3rd Qu.:1346.9 3rd Qu.:5.350 3rd Qu.:33.00 3rd Qu.:22.6758
## Max. :2337.3 Max. :7.450 Max. :38.00 Max. :31.2865
## Potasio
## Min. : 350.7
## 1st Qu.: 527.0
## Median : 773.3
## Mean : 797.4
## 3rd Qu.: 954.1
## Max. :1441.7
# Analizo la variable de respuesta
boxplot(SalinidadDF$Biomasa,notch = T )
hist(SalinidadDF$Biomasa)
# Correlacion entre las variables
chart.Correlation(SalinidadDF, histogram=TRUE, pch="+")
Analisis Se Observa que las variables de Biomasa y PH
tienen una correlacion fuerte y positiva (93%), posterior se puede
evidenciar la correlacion entre la variable de respuesta y el Zinc
fuertemente negativa (78%).
Las demas variables no cuentan con la misma significancia, siendo visible que la correlación del potasio con las demas variables minima, De la misma manera se observa una fuerte relación negativa entre el Zinc y otras variables adicionales como la salinidad y el PH
b)Estime el modelo de regresión lineal múltiple para explicar la biomasa en función de las covariables e interprete el valor p, los coeficientes de las variables significativas y el coeficiente R2.
require(memisc)
# Modelo 1: Creo el modelo inicial con la variable de correlacion mas significativa. Intento describir el modelo con la menor cantidad de variables posible.
Salinidad_mod01<-lm(formula = SalinidadDF$Biomasa~SalinidadDF$pH,data=Salinidad)
summary(Salinidad_mod01)
##
## Call:
## lm(formula = SalinidadDF$Biomasa ~ SalinidadDF$pH, data = Salinidad)
##
## Residuals:
## Min 1Q Median 3Q Max
## -566.28 -89.26 -19.42 142.42 413.28
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -780.18 117.99 -6.612 4.7e-08 ***
## SalinidadDF$pH 404.08 24.72 16.346 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 205.7 on 43 degrees of freedom
## Multiple R-squared: 0.8614, Adjusted R-squared: 0.8582
## F-statistic: 267.2 on 1 and 43 DF, p-value: < 2.2e-16
Salinidad_Mod02 <- lm (formula = SalinidadDF$Biomasa ~. , data=SalinidadDF)
summary(Salinidad_Mod02)
##
## Call:
## lm(formula = SalinidadDF$Biomasa ~ ., data = SalinidadDF)
##
## Residuals:
## Min 1Q Median 3Q Max
## -293.98 -88.83 -9.48 88.20 387.27
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1492.8076 453.6013 3.291 0.002091 **
## pH 262.8829 33.7304 7.794 1.51e-09 ***
## Salinidad -33.4997 8.6525 -3.872 0.000391 ***
## Zinc -28.9727 5.6643 -5.115 8.20e-06 ***
## Potasio -0.1150 0.0819 -1.404 0.167979
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 158.9 on 40 degrees of freedom
## Multiple R-squared: 0.9231, Adjusted R-squared: 0.9154
## F-statistic: 120 on 4 and 40 DF, p-value: < 2.2e-16
# Busco la optimizacion del modelo por medio de la funcion Step
Salinidad_ModBest <- step(Salinidad_Mod02)
## Start: AIC=460.84
## SalinidadDF$Biomasa ~ pH + Salinidad + Zinc + Potasio
##
## Df Sum of Sq RSS AIC
## <none> 1009974 460.84
## - Potasio 1 49785 1059759 461.01
## - Salinidad 1 378486 1388460 473.17
## - Zinc 1 660588 1670562 481.49
## - pH 1 1533665 2543639 500.41
summary(Salinidad_ModBest)
##
## Call:
## lm(formula = SalinidadDF$Biomasa ~ pH + Salinidad + Zinc + Potasio,
## data = SalinidadDF)
##
## Residuals:
## Min 1Q Median 3Q Max
## -293.98 -88.83 -9.48 88.20 387.27
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1492.8076 453.6013 3.291 0.002091 **
## pH 262.8829 33.7304 7.794 1.51e-09 ***
## Salinidad -33.4997 8.6525 -3.872 0.000391 ***
## Zinc -28.9727 5.6643 -5.115 8.20e-06 ***
## Potasio -0.1150 0.0819 -1.404 0.167979
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 158.9 on 40 degrees of freedom
## Multiple R-squared: 0.9231, Adjusted R-squared: 0.9154
## F-statistic: 120 on 4 and 40 DF, p-value: < 2.2e-16
# Comparo resultados
mtable(Salinidad_mod01,Salinidad_ModBest)
##
## Calls:
## Salinidad_mod01: lm(formula = SalinidadDF$Biomasa ~ SalinidadDF$pH, data = Salinidad)
## Salinidad_ModBest: lm(formula = SalinidadDF$Biomasa ~ pH + Salinidad + Zinc + Potasio,
## data = SalinidadDF)
##
## ======================================================
## Salinidad_mod01 Salinidad_ModBest
## ------------------------------------------------------
## (Intercept) -780.183*** 1492.808**
## (117.991) (453.601)
## SalinidadDF$pH 404.079***
## (24.721)
## pH 262.883***
## (33.730)
## Salinidad -33.500***
## (8.652)
## Zinc -28.973***
## (5.664)
## Potasio -0.115
## (0.082)
## ------------------------------------------------------
## R-squared 0.861 0.923
## N 45 45
## ======================================================
## Significance: *** = p < 0.001; ** = p < 0.01;
## * = p < 0.05
Analisis
Se proyectaron diferentes modelos y se realizaron comparaciones entre los mismos iniciando por un modelo en el cual la biomasa se explicaba en funcion del PH, intentando tener un modelo simple.
Posteriormente se paso a un modelo usando todas las variables del set de datos (Biomasa ~ Ph + Salinidad + Zinc + Potasio).
Finalmente se aplico un metodo de optimización para encontrar el mejor modelo por medio de Step con el fin de tener un mayor impacto con una menor cantidad de variables.
Como resultados el modelo de solo Ph entrego un R2 ajustado de 0.85 contra un R2 de 0.91 que contiene todas las variables en el conjunto de datos, evidenciando que hay una mayor certeza al incluir todo el conjunto de variables, el modelo obtenido se expresa por lo tanto de la siguiente manera:
Biomasa = 1492.8076 + 262.8829(pH) − 33.4997(Salinidad) − 28.9727(Zinc) − 0.1150(Potasio)