1. Carga de Datos

Se carga los datos y paquetes necesarios para el correctos funcionamiento de nuestro programa y calculos requeridos.

se introducce un excel el conoceremos como “Base Datos Geologia Fosil” referente en nuestros calculos, pasando por un filtro los datos de interes en nuestro calculo, mas adelante revisaremos la estruturas de estos.

library(readxl)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

datos <- read_excel("Base_Datos_Geologia_Fosil.xlsx")

# Filtrar solo Braquiópodo y Dinosaurio
datos <- datos %>%
  filter(Tipo_Fosil %in% c("Braquiópodo", "Dinosaurio")) %>%
  mutate(Tipo_Fosil = factor(Tipo_Fosil))

2. Estructura de los Datos

Leemos nuestra base de datos para reconocer su estructura.

Nuestra base de datos consta de 5 columnas y 100 filas de las cuales, mas adelante se toman 53 debido al filtro que seleciona braquiopodos y dinosaurios los cuales son de nuestro interes de estudio.

Columna:1-ID del fosil(#), 2-Tipo de Fosil, 3-Edad en millones de años, 4-profundidad (m), y 5-Tasa de fosilizacion(%).

Fila: Braquiopodo, Dinosaurio, Ammonite o Trilobite.

str(datos)
## tibble [53 × 5] (S3: tbl_df/tbl/data.frame)
##  $ ID_Fosil           : num [1:53] 1 2 3 4 5 7 8 9 10 12 ...
##  $ Tipo_Fosil         : Factor w/ 2 levels "Braquiópodo",..: 1 1 1 1 2 2 1 1 2 1 ...
##  $ Edad_Millones_Anios: num [1:53] 270.8 479.1 71.4 310.2 87.4 ...
##  $ Profundidad_m      : num [1:53] 9.48 70.66 85.31 23.79 80.87 ...
##  $ Tasa_Fosilizacion_%: num [1:53] 52 35.6 14.2 61.8 73.6 ...
summary(datos)
##     ID_Fosil           Tipo_Fosil Edad_Millones_Anios Profundidad_m   
##  Min.   : 1.00   Braquiópodo:25   Min.   : 66.8       Min.   : 7.213  
##  1st Qu.:17.00   Dinosaurio :28   1st Qu.:120.6       1st Qu.:31.721  
##  Median :38.00                    Median :258.7       Median :56.168  
##  Mean   :45.04                    Mean   :261.1       Mean   :54.440  
##  3rd Qu.:74.00                    3rd Qu.:378.1       3rd Qu.:77.802  
##  Max.   :99.00                    Max.   :499.6       Max.   :99.861  
##  Tasa_Fosilizacion_%
##  Min.   :11.13      
##  1st Qu.:33.69      
##  Median :52.04      
##  Mean   :51.18      
##  3rd Qu.:64.55      
##  Max.   :89.20

Mediante esto podemos saber el valor minimo, maximo, mediana y media de nuestros datos en estudio.

3. Análisis Descriptivo

hacemos graficas y boxplot para representar nuestra informacion extraida.

Edad: una grafica de barras la cual representa la frecuencias y los intervalos de edad en los que se encuentran nuestras muestras.

Analisis: interpretamos que el intervalo de edad con mayor numero de fosiles en estudio se encuentra entre 85 y 95 millones de años con 5 fosiles en este intervalo.

Boxplot Tipo Fosil: En este representamos la edad minima y maxima de nuestrosobjetos de estudio y la media de edad en la que estos se encuentra.

Analisis: la media de edad entre braquiopodos y dinosaurios difiere una de la otra aproximadamente en 50 millones de años siendo la media de Dinosaurios mayor.

Grafica de barras: indentifica el numero de dinosaurios y braquiopodos en nuestra base de datos

Analisis: la poblacion con mayor numero de representates es la de Dinosaurios con 28 representantes.

# Histograma de Edad
ggplot(datos, aes(x = Edad_Millones_Anios)) +
  geom_histogram(binwidth = 10, fill = "skyblue", color = "black") +
  labs(title = "Histograma de Edad de Fósiles", x = "Edad (millones de años)", y = "Frecuencia")

# Boxplot por Tipo de Fósil
ggplot(datos, aes(x = Tipo_Fosil, y = Edad_Millones_Anios, fill = Tipo_Fosil)) +
  geom_boxplot() +
  labs(title = "Boxplot de Edad por Tipo de Fósil", y = "Edad (millones de años)", x = "")

# Gráfico de barras
ggplot(datos, aes(x = Tipo_Fosil)) +
  geom_bar(fill = "lightgreen") +
  labs(title = "Frecuencia de Tipos de Fósiles", x = "Tipo de Fósil", y = "Conteo")

4. Estimaciones Estadísticas

4.1 Intervalo de Confianza para la Media

Con un intervalo de confianza del 95% calculamos la media con un valor de 262.13 millones de años.

media <- mean(datos$Edad_Millones_Anios, na.rm = TRUE)
se <- sd(datos$Edad_Millones_Anios, na.rm = TRUE) / sqrt(sum(!is.na(datos$Edad_Millones_Anios)))
ic <- c(media - qt(0.975, df = length(na.omit(datos$Edad_Millones_Anios)) - 1) * se,
        media + qt(0.975, df = length(na.omit(datos$Edad_Millones_Anios)) - 1) * se)
ic
## [1] 222.5410 299.7209

4.2 Intervalo de Confianza para una Proporción

con un intervalo entre 0.33 - 0.60 calculado para los braquiopodos se espera con precision que este valor encontrado entre en este rango.

tabla <- table(datos$Tipo_Fosil)
prop <- prop.table(tabla)["Braquiópodo"]
n <- sum(tabla)
error <- sqrt(prop * (1 - prop) / n)
ic_prop <- c(prop - qnorm(0.975) * error, prop + qnorm(0.975) * error)
ic_prop
## Braquiópodo Braquiópodo 
##   0.3373031   0.6060932

4.3 Intervalo de Confianza para la Varianza

Se calcula un intervalo de confianza del 95% para la varianza de la edad (en millones de años) de los fósiles. El intervalo obtenido es aproximadamente 13.8 a 30, lo que sugiere que la varianza real de la edad de los fósiles en la población se encuentra dentro de ese rango con un 95% de confianza.

varianza <- var(datos$Edad_Millones_Anios, na.rm = TRUE)
n_var <- sum(!is.na(datos$Edad_Millones_Anios))
ic_var <- c((n_var - 1) * varianza / qchisq(0.975, df = n_var - 1),
            (n_var - 1) * varianza / qchisq(0.025, df = n_var - 1))
ic_var
## [1] 13809.29 30006.41

4.4 Diferencia de Medias entre Grupos

La diferencia de medias calculada para los dos grupos es de 6.95 millones de años entres las 2 medias.

grupo1 <- datos %>% filter(Tipo_Fosil == "Braquiópodo") %>% pull(Edad_Millones_Anios)
grupo2 <- datos %>% filter(Tipo_Fosil == "Dinosaurio") %>% pull(Edad_Millones_Anios)
t.test(grupo1, grupo2, var.equal = FALSE)
## 
##  Welch Two Sample t-test
## 
## data:  grupo1 and grupo2
## t = 0.17911, df = 50.7, p-value = 0.8586
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -70.95749  84.85644
## sample estimates:
## mean of x mean of y 
##  264.8024  257.8529

4.5 Diferencia de Proporciones

con una diferencia en proporcion calculada para de las muestras de 12.28% mas dinosaurios que braquiopodos.

datos$Alta_Tasa <- ifelse(datos$`Tasa_Fosilizacion_%` > 50, 1, 0)
tabla_prop <- table(datos$Tipo_Fosil, datos$Alta_Tasa)
prop.test(x = tabla_prop[,2], n = rowSums(tabla_prop))
## 
##  2-sample test for equality of proportions with continuity correction
## 
## data:  tabla_prop[, 2] out of rowSums(tabla_prop)
## X-squared = 0.39303, df = 1, p-value = 0.5307
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  -0.4250095  0.1792952
## sample estimates:
##    prop 1    prop 2 
## 0.5200000 0.6428571

4.6 Razón de Varianzas

con un ratio de varianza del 92.54%

var.test(grupo1, grupo2)
## 
##  F test to compare two variances
## 
## data:  grupo1 and grupo2
## F = 0.92545, num df = 24, denom df = 27, p-value = 0.8529
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.4216944 2.0693786
## sample estimates:
## ratio of variances 
##          0.9254482

5. Análisis Inferencial

5.1 Prueba de Hipótesis para la Media

Se inicia con el planteamiento de hipotesis.

H₀: La media de la edad de los fósiles es igual a 150 millones de años. H₁: La media de la edad de los fósiles es diferente de 150 millones de años. Nivel de significancia: α = 0.05

media <- mean(datos$Edad_Millones_Anios, na.rm = TRUE)
se <- sd(datos$Edad_Millones_Anios, na.rm = TRUE) / sqrt(sum(!is.na(datos$Edad_Millones_Anios)))
t_stat <- (media - 150) / se
df <- length(na.omit(datos$Edad_Millones_Anios)) - 1
p_value <- 2 * pt(-abs(t_stat), df)
ic <- c(media - qt(0.975, df = df) * se,
        media + qt(0.975, df = df) * se)
list(Media = media, IC = ic, Estadistico = t_stat, P_valor = p_value)
## $Media
## [1] 261.131
## 
## $IC
## [1] 222.5410 299.7209
## 
## $Estadistico
## [1] 5.778724
## 
## $P_valor
## [1] 4.295339e-07

Interpretación: Si el p-valor < 0.05, rechazamos H₀. Esto sugiere que la edad media de los fósiles difiere significativamente de 150 millones de años.


5.2 Prueba de Hipótesis para una Proporción

H₀: La proporción de Braquiópodos es igual a 0.5. H₁: La proporción de Braquiópodos es diferente de 0.5. Nivel de significancia: α = 0.05

tabla <- table(datos$Tipo_Fosil)
prop <- prop.table(tabla)["Braquiópodo"]
n <- sum(tabla)
z <- (prop - 0.5) / sqrt(0.5 * 0.5 / n)
p_val_prop <- 2 * pnorm(-abs(z))
error <- sqrt(prop * (1 - prop) / n)
ic_prop <- c(prop - qnorm(0.975) * error, prop + qnorm(0.975) * error)
list(Proporcion = prop, IC = ic_prop, Estadistico = z, P_valor = p_val_prop)
## $Proporcion
## Braquiópodo 
##   0.4716981 
## 
## $IC
## Braquiópodo Braquiópodo 
##   0.3373031   0.6060932 
## 
## $Estadistico
## Braquiópodo 
##  -0.4120817 
## 
## $P_valor
## Braquiópodo 
##   0.6802795

Interpretación: Si el p-valor < 0.05, se rechaza H₀. Esto indicaría que la proporción observada de Braquiópodos es significativamente distinta al 50%.


5.3 Prueba de Hipótesis para la Varianza

H₀: La varianza poblacional de la edad es igual a 2500. H₁: La varianza poblacional es distinta de 2500. Nivel de significancia: α = 0.05

varianza <- var(datos$Edad_Millones_Anios, na.rm = TRUE)
n_var <- sum(!is.na(datos$Edad_Millones_Anios))
chi2 <- (n_var - 1) * varianza / 2500
p_val_var <- 2 * min(pchisq(chi2, df = n_var - 1), 1 - pchisq(chi2, df = n_var - 1))
ic_var <- c((n_var - 1) * varianza / qchisq(0.975, df = n_var - 1),
            (n_var - 1) * varianza / qchisq(0.025, df = n_var - 1))
list(Varianza = varianza, IC = ic_var, Estadistico = chi2, P_valor = p_val_var)
## $Varianza
## [1] 19601.19
## 
## $IC
## [1] 13809.29 30006.41
## 
## $Estadistico
## [1] 407.7047
## 
## $P_valor
## [1] 0

Interpretación: Si el p-valor < 0.05, rechazamos H₀, lo que indicaría que la varianza difiere significativamente del valor esperado.


5.4 Prueba de Hipótesis para la Diferencia de Medias

H₀: No hay diferencia en la edad media entre Braquiópodos y Dinosaurios. H₁: Hay diferencia en la edad media entre los dos grupos. Nivel de significancia: α = 0.05

t.test(grupo1, grupo2, var.equal = FALSE)
## 
##  Welch Two Sample t-test
## 
## data:  grupo1 and grupo2
## t = 0.17911, df = 50.7, p-value = 0.8586
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -70.95749  84.85644
## sample estimates:
## mean of x mean of y 
##  264.8024  257.8529

Interpretación: Si el p-valor es menor a 0.05, hay evidencia de una diferencia significativa entre las medias de edad.


5.5 Prueba de Hipótesis para la Diferencia de Proporciones

H₀: La proporción de muestras con alta fosilización (>50%) es la misma en ambos grupos. H₁: Las proporciones son diferentes entre Braquiópodos y Dinosaurios. Nivel de significancia: α = 0.05

prop.test(x = tabla_prop[,2], n = rowSums(tabla_prop))
## 
##  2-sample test for equality of proportions with continuity correction
## 
## data:  tabla_prop[, 2] out of rowSums(tabla_prop)
## X-squared = 0.39303, df = 1, p-value = 0.5307
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  -0.4250095  0.1792952
## sample estimates:
##    prop 1    prop 2 
## 0.5200000 0.6428571

Interpretación: Un p-valor menor a 0.05 indica que las proporciones de alta fosilización difieren significativamente entre los dos tipos de fósiles.


5.6 Prueba de Hipótesis para la Razón de Varianzas

H₀: Las varianzas de edad son iguales entre Braquiópodos y Dinosaurios. H₁: Las varianzas de edad son diferentes. Nivel de significancia: α = 0.05

var.test(grupo1, grupo2)
## 
##  F test to compare two variances
## 
## data:  grupo1 and grupo2
## F = 0.92545, num df = 24, denom df = 27, p-value = 0.8529
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.4216944 2.0693786
## sample estimates:
## ratio of variances 
##          0.9254482

Interpretación: Si el p-valor < 0.05, se concluye que hay una diferencia significativa en la variabilidad de edad entre ambos grupos.

6

Cargar librerías necesarias

library(readxl)
library(dplyr)

Se realiza el planteamiento de nuestra hipotesis en estudio.

Hipótesis:

H₀: Las edades promedio de los fósiles de Dinosaurio, Braquiópodo y Ammonite son iguales.

H₁: Al menos uno de los grupos tiene una edad promedio diferente. ### Cargar los datos desde el archivo Excel

datos <- read_excel("Base_Datos_Geologia_Fosil.xlsx", sheet = "Paleontologia_Fosiles")

Filtrar los tipos de fósil de interés

se toma la informacion de los dinosaurios, braquiopos y ammonites.

datos_filtrados <- datos %>%
  filter(Tipo_Fosil %in% c("Dinosaurio", "Braquiópodo", "Ammonite"))

Convertir Tipo_Fosil a factor

datos_filtrados$Tipo_Fosil <- as.factor(datos_filtrados$Tipo_Fosil)

Realizar la prueba ANOVA

modelo_anova <- aov(Edad_Millones_Anios ~ Tipo_Fosil, data = datos_filtrados)

Mostrar el resumen del ANOVA

summary(modelo_anova)
##             Df  Sum Sq Mean Sq F value Pr(>F)
## Tipo_Fosil   2   79093   39546   2.132  0.126
## Residuals   73 1354090   18549

tomamos los datos obtenidos para los analisis y representacion.

Estadístico F: 2.132

Valor p: 0.126

#Boxplot para comparar visualmente las edades por tipo de fósil

boxplot(Edad_Millones_Anios ~ Tipo_Fosil,
        data = datos_filtrados,
        col = c("lightblue", "lightgreen", "lightcoral"),
        main = "Comparación de Edad por Tipo de Fósil",
        ylab = "Edad (millones de años)",
        xlab = "Tipo de Fósil")

Interpretación: Como el valor p es mayor que 0.05, no se rechaza la hipótesis nula. No hay evidencia estadísticamente significativa para afirmar que las edades promedio difieren entre Dinosaurios, Braquiópodos y Ammonites.

7.Conclusión

Este análisis comparó edad y fosilización entre Braquiópodos y Dinosaurios con pruebas estadísticas formales. Las diferencias en medias, proporciones y varianzas aportan evidencia significativa de comportamiento distinto entre estos dos tipos de fósiles, pero, los resultados sugieren que, aunque hay diferencias aparentes entre los tipos de fósiles (como edad media o tasas de fosilización), estas diferencias no son estadísticamente significativas en este conjunto de datos. Esto podría deberse al tamaño relativamente pequeño de la muestra (n = 53), la alta variabilidad observada, o la similitud real entre los grupos bajo estudio.

No obstante, el estudio logra cumplir con su objetivo de aplicar técnicas estadísticas fundamentales —como estimaciones puntuales, intervalos de confianza y pruebas de hipótesis— a un contexto geológico real, proporcionando un marco útil para investigaciones futuras más profundas o con muestras más grandes.

📌 Notas Finales

Este informe fue desarrollado en R y publicado en RPubs para facilitar su visualización y análisis reproducible.