Punto 1.

Dos tipos de moluscos A y B fueron sometidos a tres concentraciones distintas de agua de mar (100%, 75% y 50%) y se observó el consumo de oxígeno midiendo la proporción de O2 por unidad de peso seco del molusco.

load("D:/ESTUDIO/MASTER IN DATA SCIENCE/Semester 2/Metodos estadisticos para la toma de decisiones/MOD2/Regresion Lineal Multiple/Informe regresión múltiple archivos adjuntos 5 de septiembre de 2022 1935/moluscos.RData")

datos_moluscos = data.frame(BD_moluscos)
datos_moluscos$c_agua <- as.factor(datos_moluscos$c_agua)
head(datos_moluscos)
c_agua molusco cons_o
100 A 7.16
100 A 8.26
100 A 6.78
100 A 14.00
100 A 13.60
100 A 11.10

Punto 1.1.

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.

require(ggplot2)


ggplot(datos_moluscos,aes(x= c_agua, y=cons_o, fill=molusco))+
  geom_boxplot()+
  theme_bw()+
  geom_point(position=position_jitterdodge(),alpha=0.3)+
  ggtitle("Consumo de Oxigeno en distintas Concentraciones de Agua de Mar por
Tipo de Molusco")+
  scale_x_discrete("Porcentaje de Concentración de Agua de mar(%)")+
  scale_y_continuous("Consumo de Oxigeno")

Análisis: En los anteriores diagramas de caja se puede observar que el consumo de oxigeno de los moluscos A y B es mayor con niveles de concentración de agua de mar en 50%; cuando la concentración de agua de mar aumenta a 75% el consumo de oxigeno disminuye y finalmente cuando la concentración de agua de mar es del 100% el consumo de oxigeno aumenta nuevamente. El molusco tipo B en las concentraciones de agua de mar (75 y 100)% presenta menor consumo de oxigeno con respecto al molusco tipo A. Mientras que en una concentración de agua de mar = 50% el molusco tipo B tiene un mayor consumo de oxigeno con respecto al molucto de tipo A.

Punto 1.2.

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.

mod_moluscos = lm(formula = cons_o ~ c_agua + molusco, data=datos_moluscos)

summary(mod_moluscos)
## 
## Call:
## lm(formula = cons_o ~ c_agua + molusco, data = datos_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

Validación de significancia del modelo:

Anova

anova(mod_moluscos)
Df Sum Sq Mean Sq F value Pr(>F)
c_agua 2 230.81603 115.408015 13.245654 0.0000314
molusco 1 23.22692 23.226919 2.665809 0.1096627
Residuals 44 383.36745 8.712897 NA NA

Resultado Como p-valor = 0.1097 > alpha para la variable molusco, la variable no es significativa en el modelo ya que no hay diferencias significativas entre las varianzas de la variable. La variable c_agua es significativa en el modelo, almenos un Bi es diferente de cero.

La variable c_agua cambia con respecto a la concentración de oxigeno mientras que la variable molusco no es significativa, por tanto, no afecta en gran medida a la variable dependiente.

Post Anova:{

require(agricolae)
comparar_moluscos= LSD.test(mod_moluscos,'c_agua')
comparar_moluscos
## $statistics
##    MSerror Df     Mean       CV  t.value      LSD
##   8.712897 44 9.304792 31.72303 2.015368 2.103248
## 
## $parameters
##         test p.ajusted name.t ntr alpha
##   Fisher-LSD      none c_agua   3  0.05
## 
## $means
##       cons_o      std  r       LCL       UCL  Min  Max    Q25    Q50     Q75
## 100  8.67125 3.000940 16  7.184029 10.158471 3.68 14.0  6.140  8.595 10.5750
## 50  12.25062 3.199643 16 10.763404 13.737846 6.38 18.8 10.085 11.455 14.5000
## 75   6.99250 2.804093 16  5.505279  8.479721 1.80 13.2  5.200  6.430  8.7675
## 
## $comparison
## NULL
## 
## $groups
##       cons_o groups
## 50  12.25062      a
## 100  8.67125      b
## 75   6.99250      b
## 
## attr(,"class")
## [1] "group"
require(agricolae)
comparar_moluscos= LSD.test(mod_moluscos,c("c_agua","molusco"))
comparar_moluscos
## $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
##         cons_o      std r       LCL       UCL  Min   Max     Q25    Q50     Q75
## 100:A  9.93625 2.747976 8  7.833002 12.039498 6.78 14.00  7.9850  9.295 11.7250
## 100:B  7.40625 2.844076 8  5.303002  9.509498 3.68 11.60  5.7225  6.140 10.1000
## 50:A  12.17500 3.090178 8 10.071752 14.278248 9.74 18.80 10.3100 11.110 12.5000
## 50:B  12.32625 3.517909 8 10.223002 14.429498 6.38 17.70 10.0575 12.850 14.5000
## 75:A   7.89000 2.739578 8  5.786752  9.993248 5.20 13.20  6.0775  7.180  8.8925
## 75:B   6.09500 2.739108 8  3.991752  8.198248 1.80  9.96  4.8300  5.595  7.3425
## 
## $comparison
## NULL
## 
## $groups
##         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"

Se puede observar que la variable moluscos no tiene una diferencia significativa en su varianza, mientras que la variable c_agua si tiene una diferencia significativa cuando la concentración de agua de mar es igual a 50% con respecto a concentraciones de agua de mar de 75% y 100%

El consumo de moluscos en promedio es el mismo, por tanto no es significativo para el modelo.

Punto 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).

load("D:/ESTUDIO/MASTER IN DATA SCIENCE/Semester 2/Metodos estadisticos para la toma de decisiones/MOD2/Regresion Lineal Multiple/Informe regresión múltiple archivos adjuntos 5 de septiembre de 2022 1935/Salinidad.RData")

datos_salinidad = data.frame(Salinidad)
head(datos_salinidad)
Biomasa pH Salinidad Zinc Potasio
765.280 5.00 33 16.4524 1441.67
954.017 4.70 35 13.9852 1299.19
827.686 4.20 32 15.3276 1154.27
755.072 4.40 30 17.3128 1045.15
896.176 5.55 33 22.3312 521.62
1422.836 5.50 33 12.2778 1273.02

Punto 2.1.

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).

library(GGally)
library(dplyr)
ggpairs(datos_salinidad, lower = list(continuous = "smooth"),
        diag = list(continuous = "barDiag"), axisLabels = "none")

En el gráfico anterior se puede observar que no existe multicolinealidad entre las variables independientes (pH, Salinidad, Zinc, Potasio), ya que que el coeficiente de correlación entre ellas es despreciable, por lo que no será un problema para el modelo de RLM.

Punto 2.2.

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.

Modelo 1

mod_salinidad1 = lm (formula = Biomasa ~ pH + Salinidad + Zinc + Potasio, data=datos_salinidad)
summary(mod_salinidad1)
## 
## Call:
## lm(formula = Biomasa ~ pH + Salinidad + Zinc + Potasio, data = datos_salinidad)
## 
## 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

Modelo 2

mod_salinidad2 = lm (formula = Biomasa ~ log(pH) + log(Salinidad) + Zinc + Potasio , data=datos_salinidad)
summary(mod_salinidad2)
## 
## Call:
## lm(formula = Biomasa ~ log(pH) + log(Salinidad) + Zinc + Potasio, 
##     data = datos_salinidad)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -283.96  -79.72    0.03   77.27  362.74 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     3.515e+03  1.109e+03   3.170 0.002919 ** 
## log(pH)         1.248e+03  1.586e+02   7.867 1.20e-09 ***
## log(Salinidad) -1.048e+03  2.605e+02  -4.021 0.000249 ***
## Zinc           -3.100e+01  5.418e+00  -5.722 1.16e-06 ***
## Potasio        -2.253e-01  8.142e-02  -2.768 0.008510 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 151.6 on 40 degrees of freedom
## Multiple R-squared:   0.93,  Adjusted R-squared:  0.923 
## F-statistic: 132.9 on 4 and 40 DF,  p-value: < 2.2e-16

Modelo 3

mod_salinidad3 = step(mod_salinidad1)
## Start:  AIC=460.84
## 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(mod_salinidad3)
## 
## Call:
## lm(formula = Biomasa ~ pH + Salinidad + Zinc + Potasio, data = datos_salinidad)
## 
## 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
require(memisc)
require(MASS)

memisc::mtable(mod_salinidad1, mod_salinidad2, mod_salinidad3)
## 
## Calls:
## mod_salinidad1: lm(formula = Biomasa ~ pH + Salinidad + Zinc + Potasio, data = datos_salinidad)
## mod_salinidad2: lm(formula = Biomasa ~ log(pH) + log(Salinidad) + Zinc + Potasio, 
##     data = datos_salinidad)
## mod_salinidad3: lm(formula = Biomasa ~ pH + Salinidad + Zinc + Potasio, data = datos_salinidad)
## 
## ==================================================================
##                   mod_salinidad1  mod_salinidad2  mod_salinidad3  
## ------------------------------------------------------------------
##   (Intercept)      1492.808**       3514.723**     1492.808**     
##                    (453.601)       (1108.637)      (453.601)      
##   pH                262.883***                      262.883***    
##                     (33.730)                        (33.730)      
##   Salinidad         -33.500***                      -33.500***    
##                      (8.652)                         (8.652)      
##   Zinc              -28.973***       -31.002***     -28.973***    
##                      (5.664)          (5.418)        (5.664)      
##   Potasio            -0.115           -0.225**       -0.115       
##                      (0.082)          (0.081)        (0.082)      
##   log(pH)                           1247.812***                   
##                                     (158.623)                     
##   log(Salinidad)                   -1047.684***                   
##                                     (260.529)                     
## ------------------------------------------------------------------
##   R-squared           0.923            0.930          0.923       
##   N                  45               45             45           
## ==================================================================
##   Significance: *** = p < 0.001; ** = p < 0.01; * = p < 0.05

Análisis: En el modelo1 y modelo3 los valores p para todas las variables excepto para Potasio indican que los betas correspondientes son significativos en el modelo. En el modelo 2 que tiene una transformación, todas las variables son significativas para el modelo.

En cuanto al r2, los tres modelos presentan un valor por encima del 0.9, por lo que cualquiera de los modelos explican en más de un 90% a la variable dependiente (Biomasa)

El modelo 3 no varia del modelo 1 ya que la función step() no decidió eliminar ninguna variable del modelo original.