load("C:/Users/PACHO/Downloads/moluscos.RData")
BD_moluscos$molusco <- as.factor(BD_moluscos$molusco)
BD_moluscos$c_agua <- as.factor(BD_moluscos$c_agua)
head(BD_moluscos,5)
## 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
require(ggplot2)
ggplot(BD_moluscos, mapping=aes(), main="Distribución Producción") + geom_boxplot(aes(y=cons_o, x=molusco), fill='#67B7D1') +
labs(title ="Concentración de oxigeno por tipo de molusco", x="Tipo de molusco", y="Concentración Oxigeno")+theme(plot.title = element_text(hjust = 0.5))
De la gráfica anterior, podemos observar que la media de concentración de oxigena del molusco tipo A es mayor que la del molusco tipo b.
require(ggplot2)
ggplot(BD_moluscos, aes(y=cons_o, x=c_agua, fill= molusco)) +
geom_boxplot()+
xlab("Concentración de agua")+
ylab("consumo de oxígeno")+
ggtitle("Análisis por tipo de Molusco")+
facet_grid(~molusco)+
theme(plot.title = element_text(hjust = 0.5))
Del gráfico anterior podemos observar que el mayor consumo de oxigeno tanto para el molusco A como el molusco B es a una concentración de agua del 50%. También, como en las concentraciones de agua del 50% y 100% el consumo de oxigeno tiende a subir y en las concentración del 75 disminuye para ambos tipos de moluscos.
mod=lm(BD_moluscos$cons_o~., data=BD_moluscos)
summary(mod)
##
## Call:
## lm(formula = BD_moluscos$cons_o ~ ., data = BD_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
anova1=aov(mod)
summary(anova1)
## Df Sum Sq Mean Sq F value Pr(>F)
## c_agua 2 230.8 115.41 13.246 3.14e-05 ***
## molusco 1 23.2 23.23 2.666 0.11
## Residuals 44 383.4 8.71
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Mediante el uso del anova se observa que la variable más significante para el modelo es la concentración de agua, ya que es aquella que tiene los 3 asteriscos.
par(mfrow=c(2,2))
plot(anova1)
require(agricolae)
Postanosa= LSD.test(mod,c("c_agua","molusco"))
Postanosa
## $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
## BD_moluscos$cons_o std r LCL UCL Min Max Q25
## 100:A 9.93625 2.747976 8 7.833002 12.039498 6.78 14.00 7.9850
## 100:B 7.40625 2.844076 8 5.303002 9.509498 3.68 11.60 5.7225
## 50:A 12.17500 3.090178 8 10.071752 14.278248 9.74 18.80 10.3100
## 50:B 12.32625 3.517909 8 10.223002 14.429498 6.38 17.70 10.0575
## 75:A 7.89000 2.739578 8 5.786752 9.993248 5.20 13.20 6.0775
## 75:B 6.09500 2.739108 8 3.991752 8.198248 1.80 9.96 4.8300
## Q50 Q75
## 100:A 9.295 11.7250
## 100:B 6.140 10.1000
## 50:A 11.110 12.5000
## 50:B 12.850 14.5000
## 75:A 7.180 8.8925
## 75:B 5.595 7.3425
##
## $comparison
## NULL
##
## $groups
## BD_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"
Para concluir, con el uso del post ANOVA, se observa como se realiza una agrupación entre la concentración de agua y el tipo de molusco, siendo ubicados en el primer grupo los moluscos A y B con concentración de agua del 50, ya que son los que mas consumen oxigeno, y en el siguiente grupo los moluscos A con concentración de agua de 100.
require(PerformanceAnalytics)
load("C:/Users/PACHO/Downloads/Salinidad.RData")
head(Salinidad,5)
## 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
summary(Salinidad)
## 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
cor(Salinidad)
## Biomasa pH Salinidad Zinc Potasio
## Biomasa 1.00000000 0.92810235 -0.06657756 -0.78146249 -0.07319518
## pH 0.92810235 1.00000000 -0.04458851 -0.72046995 0.03236212
## Salinidad -0.06657756 -0.04458851 1.00000000 -0.42663388 -0.01963288
## Zinc -0.78146249 -0.72046995 -0.42663388 1.00000000 0.07877268
## Potasio -0.07319518 0.03236212 -0.01963288 0.07877268 1.00000000
chart.Correlation(Salinidad, histogram=TRUE, pch="+")
De acuerdo con el análisis de correlaciones, existe una correlación fuerte positiva entre la Biomasa y el PH del 0.93, que indica que si alguna de las dos variables aumenta la otra también aunemntara.Por otro lado, existe una correlación fuerte negativa entre la Biomasa y el Zinc con un valor del 0.78, indicando que si alguna aumenta la otra disminuira. Asi mismo se observa, una relación negativa fuerte entre el zin y el ph de 0.72, lo que puede llegar a presentar problemas de multicolinealidad y por tanto se deberia escoger solo una de las variables para implementar en el modelo.
#Estimación del modelo con solo la variable ph
mod_ph1= lm(Biomasa~pH, data = Salinidad)
summary(mod_ph1)
##
## Call:
## lm(formula = Biomasa ~ 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 ***
## 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
Modelo: Y(Biomasa)= -780.18 + 404.08(ph) Valor de R2=0.8582
#Estimación del modelo con todas las variables
mod_ph2= lm(Biomasa~., data = Salinidad)
summary(mod_ph2)
##
## Call:
## lm(formula = Biomasa ~ ., data = 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: Y(Biomasa)= 1492.8076 + 262.8829(ph) - 33.4997(Salinidad) - 28.9727(Zinc) - 0.1150(Potasio) Valor de R2=0.9154
Conclusión
En un primer momento se realiza el modelo solo con la variable de ph y se obtiene un valor de R2 de 0.8582, y en segundo momento se realiza un modelo con todas las variables y se obtiene un valor de R2 del 0.9154, mas alto que solo utilizando una variable predictora.Teniendo en cuenta que al usar todas las variables se obtiene un R2 mas alto, este seria el mejor modelo a implemntar.
Para este modelo, se observa que todas las variables son significantes excepto Potasio. Por tal razón, para el modelo final se incorporan todas las variables excepto potasio.
Y(Biomasa)= 1492.8076 + 262.8829(ph) - 33.4997(Salinidad) - 28.9727(Zinc)