# Librerias
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(ggplot2)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
# Datos suministrados
porosidad <- data.frame(
  Tipo = rep(c("Arenisca", "Lutita", "Caliza"), each = 5),
  Porosidad = c(14, 15, 13, 16, 14, 6, 7, 8, 5, 6, 12, 11, 12, 10, 13)
)
# Boxplot para visualizar los datos
ggplot(porosidad, aes(x = Tipo, y = Porosidad)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Porosidad de diferentes los tipos de rocas",
       x = "Tipo de roca",
       y = "Porosidad (%)") +
  theme_minimal()

# Prueba de ANOVA para comparar las medias de los grupos
anova_porosidad <- aov(Porosidad ~ Tipo, data = porosidad)
anova_summary <- summary(anova_porosidad)
# Post hoc test (prueba de Tukey)
posthoc <- TukeyHSD(anova_porosidad)
posthoc
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Porosidad ~ Tipo, data = porosidad)
## 
## $Tipo
##                 diff       lwr        upr     p adj
## Caliza-Arenisca -2.8 -4.723824 -0.8761762 0.0057015
## Lutita-Arenisca -8.0 -9.923824 -6.0761762 0.0000003
## Lutita-Caliza   -5.2 -7.123824 -3.2761762 0.0000296
# Calcular promedio de porosidad por tipo de roca
promedio_porosidad <- porosidad %>%
  group_by(Tipo) %>%
  summarise(Promedio = mean(Porosidad))
# Graficar promedio de porosidad por tipo de roca
ggplot(promedio_porosidad, aes(x = Tipo, y = Promedio)) +
  geom_col(fill = "lightgreen") +
  labs(title = "Promedio de porosidad por tipo de roca",
       x = "Tipo de roca",
       y = "Porosidad promedio (%)") +
  theme_minimal()

# Generar tabla con los resultados
tabla_resultados <- bind_rows(
  "Prueba ANOVA" = as.data.frame(anova_summary$`Df`), # Resumen de ANOVA
  "Prueba Tukey" = as.data.frame(posthoc$`Tipo`[,4]),
  "Promedio de porosidad" = promedio_porosidad
) %>%
  kbl() %>%
  kable_paper(full_width = FALSE)
# Comparar p-values para determinar si hay diferencias significativas
p_value <- anova_summary[[1]]$"Pr(>F)"[1]
if (p_value < 0.05) {
  print("Hay diferencias significativas en la porosidad entre los tipos de rocas.")
} else {
  print("No hay diferencias significativas en la porosidad entre los tipos de rocas.")
}
## [1] "Hay diferencias significativas en la porosidad entre los tipos de rocas."
# Calcular promedio de porosidad por tipo de roca
promedio_porosidad <- porosidad %>%
  group_by(Tipo) %>%
  summarise(Promedio = mean(Porosidad))

# Identificar el tipo de roca con mayor porosidad promedio
tipo_mayor_porosidad <- promedio_porosidad %>%
  filter(Promedio == max(Promedio)) %>%
  pull(Tipo)

# Imprimir resultado
cat("El tipo de roca con mayor porosidad promedio es:", tipo_mayor_porosidad)
## El tipo de roca con mayor porosidad promedio es: Arenisca