## 1. Importación y exploración de la base de datos
# A continuacion, se importa la base de datos *Mineralogia.xlsx* y se explora su estructura general.
datos <- read_excel("Base_Datos_Mineralogia.xlsx")
# Vista preliminar
glimpse(datos)
## Rows: 100
## Columns: 6
## $ ID_Muestra <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15…
## $ Tipo_Roca <chr> "Sedimentaria", "Ígnea", "Sedimentaria", "Sedimen…
## $ Mineral_Principal <chr> "Mica", "Calcita", "Cuarzo", "Feldespato", "Pirit…
## $ Dureza_Mohs <dbl> 2.767331, 2.846380, 8.337230, 4.098071, 5.934512,…
## $ `Contenido_Silice_%` <dbl> 60.85515, 57.05277, 45.26024, 33.11513, 51.94577,…
## $ Color <chr> "Negro", "Verde", "Blanco", "Blanco", "Transparen…
#En esta sección se realiza un analisis descriptivo de las variables más relevantes de la base de datos.
#Se analizan las variables Dureza_Mohs y Contenido_Silice_%, que son de tipo numérico.
datos %>%
select(Dureza_Mohs, `Contenido_Silice_%`) %>%
summary()
## Dureza_Mohs Contenido_Silice_%
## Min. :2.081 Min. :31.06
## 1st Qu.:3.830 1st Qu.:44.29
## Median :5.090 Median :56.70
## Mean :5.404 Mean :56.19
## 3rd Qu.:7.057 3rd Qu.:68.69
## Max. :8.905 Max. :79.82
Se presentan las frecuencias absolutas de las variables categoricas principales.
table(datos$Tipo_Roca)
##
## Ígnea Metamórfica Sedimentaria
## 44 22 34
table(datos$Color)
##
## Blanco Marrón Negro Transparente Verde
## 23 17 20 20 20
A continuación, se visualiza la distribucion de las variables numéricas y categoricas.
ggplot(datos, aes(x = Dureza_Mohs)) +
geom_histogram(binwidth = 0.5, fill = "skyblue", color = "black") +
labs(title = "Distribucion de la Dureza Mohs", x = "Dureza Mohs", y = "Frecuencia")
ggplot(datos, aes(y = `Contenido_Silice_%`)) +
geom_boxplot(fill = "orange") +
labs(title = "Boxplot del Contenido de Silice", y = "% Silice")
ggplot(datos, aes(x = Tipo_Roca)) +
geom_bar(fill = "lightgreen") +
labs(title = "Frecuencia de Tipos de Roca", x = "Tipo de Roca", y = "Frecuencia") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(datos, aes(x = Color)) +
geom_bar(fill = "plum") +
labs(title = "Distribucion de Colores de Minerales", x = "Color", y = "Frecuencia") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
En esta primera parte del analisis se pudo observar:
Este analisis permite tener una idea general de la composición de las muestras, lo que será útil para realizar comparaciones más profundas en la siguiente parte del informe.
datos <- read_excel("Base_Datos_Mineralogia.xlsx")
# Crear variable binaria: 1 si es Sedimentaria, 0 si no
datos$es_sedimentaria <- ifelse(datos$Tipo_Roca == "Sedimentaria", 1, 0)
# Crear subconjunto solo con Sedimentaria e Ígnea para comparaciones
datos_2grupos <- datos %>%
filter(Tipo_Roca %in% c("Sedimentaria", "Ígnea")) %>%
mutate(grupo = factor(Tipo_Roca))
t.test(datos$Dureza_Mohs, conf.level = 0.95)
##
## One Sample t-test
##
## data: datos$Dureza_Mohs
## t = 27.256, df = 99, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 5.011010 5.797904
## sample estimates:
## mean of x
## 5.404457
#Interpretación: -Se estima la media poblacional de la dureza con un intervalo de confianza del 95%.
prop.test(x = sum(datos$es_sedimentaria),
n = nrow(datos),
conf.level = 0.95)
##
## 1-sample proportions test with continuity correction
##
## data: sum(datos$es_sedimentaria) out of nrow(datos), null probability 0.5
## X-squared = 9.61, df = 1, p-value = 0.001935
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.2501177 0.4423445
## sample estimates:
## p
## 0.34
#Interpretación: -Se estima la proporción de rocas sedimentarias presentes en la muestra.
n <- length(datos$Dureza_Mohs)
var_muestral <- var(datos$Dureza_Mohs)
alpha <- 0.05
# Intervalo de confianza para varianza usando distribución Chi-cuadrado
IC_varianza <- c(
(n - 1) * var_muestral / qchisq(1 - alpha/2, df = n - 1),
(n - 1) * var_muestral / qchisq(alpha/2, df = n - 1)
)
IC_varianza
## [1] 3.03103 5.30596
##Interpretación: Intervalo de confianza del 95% para la varianza poblacional de la dureza.
t.test(Dureza_Mohs ~ grupo, data = datos_2grupos)
##
## Welch Two Sample t-test
##
## data: Dureza_Mohs by grupo
## t = -0.22189, df = 59.805, p-value = 0.8252
## alternative hypothesis: true difference in means between group Ígnea and group Sedimentaria is not equal to 0
## 95 percent confidence interval:
## -1.0564479 0.8454832
## sample estimates:
## mean in group Ígnea mean in group Sedimentaria
## 5.167342 5.272824
##Interpretación: -Se compara la dureza media entre rocas sedimentarias e ígneas para determinar si hay diferencia significativa.
tabla_prop <- table(datos_2grupos$grupo, datos_2grupos$es_sedimentaria)
prop.test(x = c(tabla_prop["Sedimentaria", "1"], tabla_prop["Ígnea", "1"]),
n = c(sum(tabla_prop["Sedimentaria", ]), sum(tabla_prop["Ígnea", ])))
##
## 2-sample test for equality of proportions with continuity correction
##
## data: c(tabla_prop["Sedimentaria", "1"], tabla_prop["Ígnea", "1"]) out of c(sum(tabla_prop["Sedimentaria", ]), sum(tabla_prop["Ígnea", ]))
## X-squared = 73.986, df = 1, p-value < 2.2e-16
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.9739305 1.0000000
## sample estimates:
## prop 1 prop 2
## 1 0
##Interpretación: -Se analiza si hay diferencia significativa en la proporción de rocas sedimentarias entre los dos grupos.
var.test(Dureza_Mohs ~ grupo, data = datos_2grupos)
##
## F test to compare two variances
##
## data: Dureza_Mohs by grupo
## F = 0.57562, num df = 43, denom df = 33, p-value = 0.08902
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.2958548 1.0888287
## sample estimates:
## ratio of variances
## 0.5756195
##Interpretación: -Se estima si hay diferencia significativa en la dispersión (varianza) de la dureza entre rocas sedimentarias e ígneas.
```