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
# Cargar librerías
library(readxl)
library(ggplot2)

# Leer el archivo Excel
df <- read_excel("estimaciones_geologia_extendida.xlsx")

# Calcular la media y desviación estándar de la columna Accuracy
mean_accuracy <- mean(df$Accuracy, na.rm = TRUE)
## Warning: Unknown or uninitialised column: `Accuracy`.
## Warning in mean.default(df$Accuracy, na.rm = TRUE): argument is not numeric or
## logical: returning NA
sd_accuracy <- sd(df$Accuracy)
## Warning: Unknown or uninitialised column: `Accuracy`.
head(df)
## # A tibble: 6 × 6
##   Muestra_ID `Profundidad (m)` Concentración_Mineral (%…¹ Densidad_Roca (g/cm³…²
##        <dbl>             <dbl>                      <dbl>                  <dbl>
## 1          1               100                       15.2                    2.7
## 2          2               150                       22.5                    2.9
## 3          3                75                       18.7                    2.6
## 4          4               200                       10.3                    3.1
## 5          5               250                       25                      2.8
## 6          6                90                       13.6                    2.9
## # ℹ abbreviated names: ¹​`Concentración_Mineral (%)`, ²​`Densidad_Roca (g/cm³)`
## # ℹ 2 more variables: Tipo_Roca <chr>,
## #   `Edad_Formación (millones de años)` <dbl>

Con este codigo logramos realizar un análisis inicial de un conjunto de datos geológicos almacenados en un archivo Excel.

# Definir los datos de profundidad (reemplaza con tus valores reales)
profundidad <- c(10, 20, 15, 25, 30, 22)  # Ejemplo de valores

# Calcular los parámetros necesarios
n <- length(profundidad)                 # Tamaño de la muestra
mean_profundidad <- mean(profundidad)     # Media de la profundidad
sd_profundidad <- sd(profundidad)         # Desviación estándar de la profundidad

# Calcular el margen de error
error_margin <- qnorm(0.95) * (sd_profundidad / sqrt(n))

# Calcular el intervalo de confianza del 90%
lower_bound <- mean_profundidad - error_margin
upper_bound <- mean_profundidad + error_margin

# Mostrar el resultado
cat("Intervalo de Confianza del 90% para la Profundidad:", lower_bound, "a", upper_bound, "\n")
## Intervalo de Confianza del 90% para la Profundidad: 15.5535 a 25.11317

Aqui hemos calculado el intervalo de confianza del 90% para la profundidad, que se ha calculado como 15.5535 a 25.11317 metros,esto nos proporciona una estimación del rango en el cual se espera que se encuentre la media de la población de profundidades con un 90% de confianza. Esto significa que si se tomarán múltiples muestras y se calcularán intervalos de confianza para cada una, se espera que el 90% de esos intervalos incluyan el valor verdadero de la media de la profundidad en la población total.

library(BSDA)
## Loading required package: lattice
## 
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
## 
##     Orange
# Instalar y cargar el paquete BSDA si aún no lo tienes
if(!require(BSDA)) install.packages("BSDA", dependencies=TRUE)
library(BSDA)

# Crear el data frame con los datos de la imagen
df <- data.frame(
  Muestra_ID = c(1, 2, 3, 4, 5, 6),
  Profundidad = c(100, 150, 75, 200, 250, 90),
  Concentración_Mineral = c(15.2, 22.5, 18.7, 10.3, 25.0, 13.6)
)

# Define la desviación estándar de la población conocida para la concentración de minerales (reemplaza "sd_conc_mineral" por el valor adecuado)
sd_conc_mineral <- 5  # Cambia este valor si tienes la desviación estándar poblacional exacta

# Calcular el intervalo de confianza del 90% para la concentración de mineral
z_test <- z.test(df$Concentración_Mineral, sigma.x = sd_conc_mineral, conf.level = 0.90)

# Imprimir el intervalo de confianza del 90%
cat("Intervalo de Confianza del 90% para la Concentración de Mineral:", z_test$conf.int[1], "a", z_test$conf.int[2], "\n")
## Intervalo de Confianza del 90% para la Concentración de Mineral: 14.19246 a 20.90754

El intervalo de confianza del 90% para la concentración de mineral indica el rango dentro del cual es probable que se encuentre la concentración promedio de mineral en la población de donde se extrajeron las muestras, con un 90% de certeza. En este caso, el intervalo va de aproximadamente 14.19% a 20.91%,podemos decir que hay un 90% de probabilidad de que la verdadera concentración promedio de mineral esté entre esos valores.

# vector con los datos de densidad de la roca
densidad_roca <- c(2.7, 2.9, 2.6, 3.1, 2.8, 2.9)

# Calcular el tamaño de la muestra
n <- length(densidad_roca)

# Calcular la media y la desviación estándar de la densidad de la roca
mean_density <- mean(densidad_roca)
sd_density <- sd(densidad_roca)

# Calcular el margen de error para un intervalo de confianza del 99%
error_margin <- qnorm(0.995) * (sd_density / sqrt(n))

# Calcular los límites inferior y superior del intervalo de confianza
lower_bound <- mean_density - error_margin
upper_bound <- mean_density + error_margin

# Imprimir el intervalo de confianza del 99%
cat("Intervalo de Confianza del 99% para la Densidad de la Roca:", lower_bound, "a", upper_bound, "\n")
## Intervalo de Confianza del 99% para la Densidad de la Roca: 2.649182 a 3.017485

El intervalo de confianza del 99% para la densidad de la roca, que va de 2.649 a 3.017 g/cm³, indica que tenemos un 99% de certeza de que el valor promedio de densidad de la roca en la población de donde se extrajeron las muestras se encuentra en este rango.

# Crear el data frame con los datos proporcionados
df <- data.frame(
  Profundidad = c(100, 150, 75, 200, 250, 90),
  Concentración_Mineral = c(15.2, 22.5, 18.7, 10.3, 25.0, 13.6),
  Densidad_Roca = c(2.7, 2.9, 2.6, 3.1, 2.8, 2.9),
  Edad_Formación = c(150, 200, 300, 180, 100, 250)
)

# Calcular la desviación estándar de la Concentración Mineral
sigma <- sd(df$Concentración_Mineral)

# Valor Z para un 95% de confianza
Z_95 <- 1.96   

# Margen de error deseado (1%)
error_margin_1 <- 0.01  

# Calcular el tamaño de muestra necesario
n_95 <- (Z_95 * sigma / error_margin_1)^2

# Imprimir el tamaño de muestra necesario
cat("Tamaño de muestra necesario con un margen de error del 1% y nivel de confianza del 95%:", ceiling(n_95), "\n")
## Tamaño de muestra necesario con un margen de error del 1% y nivel de confianza del 95%: 1191012

El resultado indica que se necesitaría un tamaño de muestra de 1191012 para lograr un margen de error del 1% con un nivel de confianza del 95%. Esto significa que, con una muestra de ese tamaño, se puede afirmar con un 95% de certeza que el promedio de la población se encuentra dentro de un rango de ±1% alrededor d# Vector con los datos de densidad de la roca densidad_roca <- c(2.7, 2.9, 2.6, 3.1, 2.8, 2.9)

# Vector con los datos de densidad de la roca
densidad_roca <- c(2.7, 2.9, 2.6, 3.1, 2.8, 2.9)

# Calcular el tamaño de la muestra
n <- length(densidad_roca)

# Calcular la media y la desviación estándar de la densidad de la roca
mean_density <- mean(densidad_roca)
sd_density <- sd(densidad_roca)

# Valor crítico para un nivel de confianza del 99%
Z_99 <- qnorm(0.995)  # Puedes usar 2.576 directamente, pero qnorm es más flexible

# Margen de error deseado
error_margin_1 <- 0.01  

# Calcular el tamaño de muestra necesario
n_99 <- (Z_99 * sd_density / error_margin_1)^2

# Imprimir el tamaño de muestra necesario
cat("Tamaño de muestra necesario con un margen de error del 1% y nivel de confianza del 99%:", ceiling(n_99), "\n")
## Tamaño de muestra necesario con un margen de error del 1% y nivel de confianza del 99%: 2035

El tamaño de muestra necesario con un margen de error del 1% y un nivel de confianza del 99% es de 2035. Esto significa que, para estar casi completamente seguro (99% de certeza) de que la estimación de la densidad promedio de la roca esté dentro de un rango de 1% del valor real, se requiere recolectar 2035 muestras.

# Vector con los datos de densidad de la roca
densidad_roca <- c(2.7, 2.9, 2.6, 3.1, 2.8, 2.9)

# Calcular la media y la desviación estándar de la densidad de la roca
mean_density <- mean(densidad_roca)
sd_density <- sd(densidad_roca)

# Tamaño de la muestra original
n_original <- length(densidad_roca)

# Calcular el margen de error para un nivel de confianza del 95%
Z_95 <- 1.96
error_standard_original <- sd_density / sqrt(n_original)
error_margin_original <- Z_95 * error_standard_original

# Calcular el intervalo de confianza original
IC_original_lower <- mean_density - error_margin_original
IC_original_upper <- mean_density + error_margin_original

cat("Intervalo de confianza original:", IC_original_lower, "a", IC_original_upper, "\n")
## Intervalo de confianza original: 2.693209 a 2.973458
# Duplicar el tamaño de la muestra
n_doblado <- n_original * 2

# Calcular el nuevo margen de error con el tamaño de muestra duplicado
error_standard_doblado <- sd_density / sqrt(n_doblado)
error_margin_doblado <- Z_95 * error_standard_doblado

# Calcular el nuevo intervalo de confianza
IC_doblado_lower <- mean_density - error_margin_doblado
IC_doblado_upper <- mean_density + error_margin_doblado

cat("Nuevo intervalo de confianza con tamaño de muestra duplicado:", IC_doblado_lower, "a", IC_doblado_upper, "\n")
## Nuevo intervalo de confianza con tamaño de muestra duplicado: 2.73425 a 2.932416

El análisis de los intervalos de confianza muestra el impacto del tamaño de la muestra en la precisión de nuestras estimaciones. Con un intervalo de confianza original que abarca desde 2.693209 hasta 2.97345. Al duplicar el tamaño de la muestra, el nuevo intervalo de confianza se reduce a un rango de 2.73425 a 2.932416, lo que indica una mayor precisión en nuestra estimación

# Crear el data frame con los datos proporcionados
df <- data.frame(
  Profundidad = c(100, 150, 75, 200, 250, 90),
  Concentración_Mineral = c(15.2, 22.5, 18.7, 10.3, 25.0, 13.6),
  Densidad_Roca = c(2.7, 2.9, 2.6, 3.1, 2.8, 2.9),
  Edad_Formación = c(150, 200, 300, 180, 100, 250)
)

# Calcular el rango intercuartílico (IQR) de la concentración mineral
iqr_conc_mineral <- IQR(df$Concentración_Mineral, na.rm = TRUE)
cat("El rango intercuartílico (IQR) de la concentración mineral es:", iqr_conc_mineral, "\n")
## El rango intercuartílico (IQR) de la concentración mineral es: 7.55
# Cargar las librerías necesarias
library(ggplot2)

# Crear un histograma para la Concentración Mineral (%)
ggplot(df, aes(x = `Concentración_Mineral`)) +
  geom_histogram(binwidth = 1, color = "black", fill = "blue") +
  labs(title = "Histograma de la Concentración Mineral (%)", x = "Concentración Mineral (%)", y = "Frecuencia") +
  theme_minimal()

# Crear un histograma para la Densidad de la Roca (g/cm³)
ggplot(df, aes(x = `Densidad_Roca`)) +
  geom_histogram(binwidth = 0.1, color = "black", fill = "green") +
  labs(title = "Histograma de la Densidad de la Roca (g/cm³)", x = "Densidad de la Roca (g/cm³)", y = "Frecuencia") +
  theme_minimal()

# Crear un histograma para la Profundidad (m)
ggplot(df, aes(x = `Profundidad`)) +
  geom_histogram(binwidth = 25, color = "black", fill = "red") +
  labs(title = "Histograma de la Profundidad (m)", x = "Profundidad (m)", y = "Frecuencia") +
  theme_minimal()

Con este código logramos hacer histogramas que muestran la distribución de tres variables clave: Concentración Mineral (%), Densidad de la Roca (g/cm³) y Profundidad (m). Estos histogramas nos permiten visualizar la frecuencia de cada rango de valores, ayudando a identificar patrones y variabilidades en los datos, lo que es fundamental para entender las características geológicas del área de estudio.