library(ggplot2)
#Duración de Erupciones Volcánicas: Un vulcanólogo desea saber si laduración promedio de las erupciones en un volcán específico es de 10minutos. Para probar esta hipótesis, se observó una muestra aleatoria de 50 erupciones, encontrando que la duración promedio es de 11 minutoscon una desviación estándar de 2.5 minutos.
# Datos del problema
mu <- 10 # Duración promedio hipotética
n <- 50 # Tamaño de la muestra
x_barra <- 11 # Duración promedio observada
sigma <- 2.5 # Desviación estándar observada
# Cálculo del estadístico de prueba (t)
t_statistic <- (x_barra - mu) / (sigma / sqrt(n))
# Cálculo del valor p
p_value <- 2 * pt(abs(t_statistic), df = n - 1)
# Límites críticos
alpha <- 0.05
critical_value <- qt(1 - alpha/2, df = n - 1)
# Gráfica de la distribución t de Student con las dos colas sombreadas
ggplot(data.frame(x = c(-5, 5)), aes(x = x)) +
stat_function(fun = dt, args = list(df = n - 1), color = "blue", size = 1) +
geom_area(aes(x = ifelse(x < -critical_value | x > critical_value, x, NA)), stat = "function", fun = dt, args = list(df = n - 1), fill = "lightblue") +
geom_vline(xintercept = t_statistic, color = "red", linetype = "dashed") +
annotate("text", x = t_statistic + 0.5, y = 0.05, label = paste("t =", round(t_statistic, 2)), color = "red") +
geom_vline(xintercept = c(-critical_value, critical_value), color = "green", linetype = "dashed") +
annotate("text", x = -critical_value - 0.5, y = 0.05, label = paste("-t* =", round(-critical_value, 2)), color = "green") +
annotate("text", x = critical_value + 0.5, y = 0.05, label = paste("t* =", round(critical_value, 2)), color = "green") +
xlim(-5, 5) +
xlab("t") +
ylab("Densidad") +
ggtitle("Distribución t de Student y Prueba de Hipótesis") +
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

# Resultados
cat("Valor de t:", round(t_statistic, 2), "\n")
## Valor de t: 2.83
cat("Valor p:", p_value, "\n")
## Valor p: 1.993241
library(ggplot2)
#Edad de Formaciones Geológicas: Se ha tomado una muestra aleatoria de 100 rocas de una formación geológica, encontrando una edad promedio de 71.8 millones de años. Suponiendo una desviación estándar poblacional de 8.9 millones de años, ¿parecería esto indicar que la edad promedio de la formación es mayor que 70 millones deaños? Utilice un nivel de significancia del 5%.
# Datos del problema
mu <- 70 # Edad promedio hipotética en millones de años (M.A)
n <- 100 # Tamaño de la muestra
x_barra <- 71.8 # Edad promedio observada en millones de años (M.A)
sigma <- 8.9 # Desviación estándar observada en millones de años (M.A)
# Nivel de significancia
alpha <- 0.05
# Valor crítico
valor_critico <- qnorm(1 - alpha, mean = 0, sd = 1)
# Cálculo del estadístico de prueba (Z)
Z <- (x_barra - mu) / (sigma / sqrt(n))
# Cálculo del valor p (cola derecha)
p_value <- 1 - pnorm(Z)
# Gráfica de la distribución normal estándar
ggplot(data.frame(x = c(-5, 5)), aes(x = x)) +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1), color = "blue", size = 1) +
geom_area(aes(x = ifelse(x > Z, x, NA)), stat = "function", fun = dnorm, args = list(mean = 0, sd = 1), fill = "lightblue") +
geom_vline(xintercept = Z, color = "red", linetype = "dashed") +
annotate("text", x = Z + 0.5, y = 0.1, label = paste("Z =", round(Z, 2)), color = "red") +
geom_vline(xintercept = valor_critico, color = "green", linetype = "dashed") +
annotate("text", x = valor_critico + 0.2, y = 0.1, label = paste("Valor crítico =", round(valor_critico, 2)), color = "green") +
xlim(-5, 5) +
xlab("Z") +
ylab("Densidad") +
ggtitle("Distribución Normal y Prueba de Hipótesis") +
theme_minimal()

# Resultados
cat("Valor de Z:", round(Z, 2), "\n")
## Valor de Z: 2.02
cat("Valor p:", p_value, "\n")
## Valor p: 0.02156381
# Interpretación del resultado
if (p_value < alpha) {
cat("Como el valor p es menor que", alpha, ", rechazamos la hipótesis nula. Parece que la edad promedio de la formación es mayor que 70 millones de años.")
} else {
cat("Como el valor p es mayor o igual que", alpha, ", no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que la edad promedio de la formación sea mayor que 70 millones de años.")
}
## Como el valor p es menor que 0.05 , rechazamos la hipótesis nula. Parece que la edad promedio de la formación es mayor que 70 millones de años.
# Edad de los Minerales en una Mina: Supongamos que un geólogo desea determinar si la media de la edad de los minerales en una mina específica es mayor a 40 millones de años. Para esto, se analiza una muestra aleatoria de 50 minerales, obteniendo una media muestral de 42 millones de años y una desviación estándar de 5 millones de años.
mu <- 40 # Edad promedio hipotética en millones de años (M.A)
n <- 50 # Tamaño de la muestra
x_barra <- 42 # Edad promedio observada en millones de años (M.A)
sigma <- 5 # Desviación estándar observada en millones de años (M.A)
# Nivel de significancia
alpha <- 0.05
# Valor crítico
valor_critico <- qnorm(1 - alpha, mean = 0, sd = 1)
# Cálculo del estadístico de prueba (Z)
Z <- (x_barra - mu) / (sigma / sqrt(n))
# Cálculo del valor p (cola derecha)
p_value <- 1 - pnorm(Z)
# Gráfica de la distribución normal estándar
ggplot(data.frame(x = c(-5, 5)), aes(x = x)) +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1), color = "blue", size = 1) +
geom_area(aes(x = ifelse(x > Z, x, NA)), stat = "function", fun = dnorm, args = list(mean = 0, sd = 1), fill = "lightblue") +
geom_vline(xintercept = Z, color = "red", linetype = "dashed") +
annotate("text", x = Z + 0.5, y = 0.1, label = paste("Z =", round(Z, 2)), color = "red") +
geom_vline(xintercept = valor_critico, color = "green", linetype = "dashed") +
annotate("text", x = valor_critico + 0.2, y = 0.1, label = paste("Valor crítico =", round(valor_critico, 2)), color = "green") +
xlim(-5, 5) +
xlab("Z") +
ylab("Densidad") +
ggtitle("Distribución Normal y Prueba de Hipótesis") +
theme_minimal()

# Resultados
cat("Valor de Z:", round(Z, 2), "\n")
## Valor de Z: 2.83
cat("Valor p:", p_value, "\n")
## Valor p: 0.002338867
# Interpretación del resultado
if (p_value < alpha) {
cat("Como el valor p es menor que", alpha, ", rechazamos la hipótesis nula. Parece que la media de la edad de los minerales es mayor que 40 millones de años.")
} else {
cat("Como el valor p es mayor o igual que", alpha, ", no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que la media de la edad de los minerales sea mayor que 40 millones de años.")
}
## Como el valor p es menor que 0.05 , rechazamos la hipótesis nula. Parece que la media de la edad de los minerales es mayor que 40 millones de años.
#Apoyo a una Ley de Protección Ambiental: Supongamos que un legislador ha prometido que al menos el 50% de los votantes apoyará su propuesta de ley para la protección ambiental. Un encuestador desea determinar si la proporción de votantes que apoyan al legislador es mayor o igual al 50%. Para esto, se encuesta a 1000 votantes, encontrando que 550 votantes apoyan la propuesta.
p0 <- 0.5 # Proporción hipotética de votantes que apoyan al legislador
n <- 1000 # Tamaño de la muestra
x <- 550 # Número de votantes que apoyan al legislador
# Nivel de significancia
alpha <- 0.05
# Valor crítico
valor_critico <- qnorm(1 - alpha, mean = 0, sd = 1)
# Cálculo de la proporción muestral
p <- x / n
# Cálculo del estadístico de prueba (Z)
Z <- (p - p0) / sqrt(p0 * (1 - p0) / n)
# Cálculo del valor p (cola derecha)
p_value <- 1 - pnorm(Z)
# Gráfica de la distribución normal estándar
ggplot(data.frame(x = c(-5, 5)), aes(x = x)) +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1), color = "blue", size = 1) +
geom_area(aes(x = ifelse(x > Z, x, NA)), stat = "function", fun = dnorm, args = list(mean = 0, sd = 1), fill = "lightblue") +
geom_vline(xintercept = Z, color = "red", linetype = "dashed") +
annotate("text", x = Z + 0.5, y = 0.1, label = paste("Z =", round(Z, 2)), color = "red") +
geom_vline(xintercept = valor_critico, color = "green", linetype = "dashed") +
annotate("text", x = valor_critico + 0.2, y = 0.1, label = paste("Valor crítico =", round(valor_critico, 2)), color = "green") +
xlim(-5, 5) +
xlab("Z") +
ylab("Densidad") +
ggtitle("Distribución Normal y Prueba de Hipótesis") +
theme_minimal()

# Resultados
cat("Valor de Z:", round(Z, 2), "\n")
## Valor de Z: 3.16
cat("Valor p:", p_value, "\n")
## Valor p: 0.0007827011
# Interpretación del resultado
if (p_value < alpha) {
cat("Como el valor p es menor que", alpha, ", rechazamos la hipótesis nula. Parece que la proporción de votantes que apoyan al legislador es mayor que o igual al 50%.")
} else {
cat("Como el valor p es mayor o igual que", alpha, ", no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que la proporción de votantes que apoyan al legislador sea mayor que o igual al 50%.")
}
## Como el valor p es menor que 0.05 , rechazamos la hipótesis nula. Parece que la proporción de votantes que apoyan al legislador es mayor que o igual al 50%.
# Cancelación de Expediciones Científicas: Un geólogo afirma que el 12% de todas las expediciones científicas son canceladas. Durante un periodo de seis semanas, fueron canceladas 21 de las 200 expediciones programadas. Haga una prueba con un nivel de significancia del 5% para determinar si la verdadera proporción de todas las expediciones que son canceladas es diferente del 12%.
p0 <- 0.12 # Proporción hipotética de expediciones canceladas
n <- 200 # Tamaño de la muestra
x <- 21 # Número de expediciones canceladas
# Nivel de significancia
alpha <- 0.05
# Valor crítico (dos colas)
valor_critico <- qnorm(1 - alpha/2, mean = 0, sd = 1)
# Cálculo de la proporción muestral
p <- x / n
# Cálculo del estadístico de prueba (Z)
Z <- (p - p0) / sqrt(p0 * (1 - p0) / n)
# Cálculo del valor p (dos colas)
p_value <- 2 * (1 - pnorm(abs(Z)))
# Gráfica de la distribución normal estándar
ggplot(data.frame(x = c(-5, 5)), aes(x = x)) +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1), color = "blue", size = 1) +
geom_area(aes(x = ifelse(x < -abs(Z) | x > abs(Z), x, NA)), stat = "function", fun = dnorm, args = list(mean = 0, sd = 1), fill = "lightblue") +
geom_vline(xintercept = Z, color = "red", linetype = "dashed") +
geom_vline(xintercept = c(-abs(valor_critico), abs(valor_critico)), color = "green", linetype = "dashed") +
annotate("text", x = Z + 0.5, y = 0.1, label = paste("Z =", round(Z, 2)), color = "red") +
annotate("text", x = abs(valor_critico) + 0.2, y = 0.1, label = paste("Valor crítico =", round(abs(valor_critico), 2)), color = "green") +
xlim(-5, 5) +
xlab("Z") +
ylab("Densidad") +
ggtitle("Distribución Normal y Prueba de Hipótesis") +
theme_minimal()

# Resultados
cat("Valor de Z:", round(Z, 2), "\n")
## Valor de Z: -0.65
cat("Valor p:", p_value, "\n")
## Valor p: 0.5138909
# Interpretación del resultado
if (p_value < alpha) {
cat("Como el valor p es menor que", alpha, ", rechazamos la hipótesis nula. Parece que la proporción de expediciones canceladas es diferente del 12%.")
} else {
cat("Como el valor p es mayor o igual que", alpha, ", no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que la proporción de expediciones canceladas sea diferente del 12%.")
}
## Como el valor p es mayor o igual que 0.05 , no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que la proporción de expediciones canceladas sea diferente del 12%.
# Diversidad de Fósiles en Diferentes Regiones: De una muestra aleatoria de 203 fósiles encontrados en una región colombiana, 52 eran de una especie particular. De una muestra aleatoria independiente de 270 fósiles encontrados en una región brasilera, 56 eran de la misma especie. Usando un nivel del 5%, contrastar frente a una alternativa bilateral, la hipótesis nula de que las proporciones de fósiles de esta especie en las regiones colombianas y brasileras son iguales.
n_colombia <- 203 # Tamaño de la muestra en Colombia
n_brasil <- 270 # Tamaño de la muestra en Brasil
x_colombia <- 52 # Número de fósiles de la especie particular en Colombia
x_brasil <- 56 # Número de fósiles de la especie particular en Brasil
# Proporciones muestrales
p_colombia <- x_colombia / n_colombia
p_brasil <- x_brasil / n_brasil
# Diferencia de proporciones
p_diff <- p_colombia - p_brasil
# Estimación de la proporción poblacional combinada
p_combinada <- (x_colombia + x_brasil) / (n_colombia + n_brasil)
# Cálculo del error estándar
SE <- sqrt(p_combinada * (1 - p_combinada) * ((1 / n_colombia) + (1 / n_brasil)))
# Cálculo del estadístico de prueba (Z)
Z <- p_diff / SE
# Nivel de significancia
alpha <- 0.05
# Valor crítico (dos colas)
valor_critico <- qnorm(1 - alpha/2, mean = 0, sd = 1)
# Cálculo del valor p (dos colas)
p_value <- 2 * (1 - pnorm(abs(Z)))
# Gráfica de la distribución normal estándar
ggplot(data.frame(x = c(-5, 5)), aes(x = x)) +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1), color = "blue", size = 1) +
geom_area(aes(x = ifelse(x < -abs(Z) | x > abs(Z), x, NA)), stat = "function", fun = dnorm, args = list(mean = 0, sd = 1), fill = "lightblue") +
geom_vline(xintercept = Z, color = "red", linetype = "dashed") +
geom_vline(xintercept = c(-abs(valor_critico), abs(valor_critico)), color = "green", linetype = "dashed") +
annotate("text", x = Z + 0.5, y = 0.1, label = paste("Z =", round(Z, 2)), color = "red") +
annotate("text", x = abs(valor_critico) + 0.2, y = 0.1, label = paste("Valor crítico =", round(abs(valor_critico), 2)), color = "green") +
xlim(-5, 5) +
xlab("Z") +
ylab("Densidad") +
ggtitle("Distribución Normal y Prueba de Hipótesis") +
theme_minimal()

# Resultados
cat("Valor de Z:", round(Z, 2), "\n")
## Valor de Z: 1.25
cat("Valor p:", p_value, "\n")
## Valor p: 0.2112272
# Interpretación del resultado
if (abs(Z) > valor_critico) {
cat("Como el valor absoluto de Z es mayor que el valor crítico, rechazamos la hipótesis nula. Parece que las proporciones de fósiles de la especie particular en las regiones colombianas y brasileras son diferentes.")
} else {
cat("Como el valor absoluto de Z es menor que el valor crítico, no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que las proporciones de fósiles de la especie particular en las regiones colombianas y brasileras sean diferentes.")
}
## Como el valor absoluto de Z es menor que el valor crítico, no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que las proporciones de fósiles de la especie particular en las regiones colombianas y brasileras sean diferentes.
# Comparación de la Erosión en Dos Tipos de Rocas: Se llevó a cabo un experimento para comparar la erosión de dos tipos de rocas diferentes. Se probaron doce muestras del tipo 1, exponiendo cada una a condiciones climáticas extremas, y se observó la profundidad de la erosión. Del mismo modo, se probaron diez muestras del tipo 2. Las muestras del tipo 1 dieron una erosión promedio de 85 unidades con una desviación estándar muestral de 4, mientras que las muestras del tipo 2 dieron un promedio de 81 y una desviación estándar muestral de 5. ¿Puede concluirse en el nivel de significancia del 5% que la erosión del tipo 1 excede al del tipo 2 por más de 2 unidades? Asuma que las poblaciones son aproximadamente normales con varianzas iguales.
n1 <- 12 # Tamaño de la muestra para el tipo 1
n2 <- 10 # Tamaño de la muestra para el tipo 2
x_barra_1 <- 85 # Erosión promedio para el tipo 1
x_barra_2 <- 81 # Erosión promedio para el tipo 2
s1 <- 4 # Desviación estándar muestral para el tipo 1
s2 <- 5 # Desviación estándar muestral para el tipo 2
# Nivel de significancia
alpha <- 0.05
# Estadístico de prueba t
t_stat <- (x_barra_1 - x_barra_2 - 2) / sqrt((s1^2 / n1) + (s2^2 / n2))
# Grados de libertad
df <- n1 + n2 - 2
# Valor crítico
valor_critico <- qt(1 - alpha, df)
# Valor p (cola derecha)
p_value <- pt(t_stat, df, lower.tail = FALSE)
# Cálculo de la secuencia de valores para la distribución t
t_sequence <- seq(-5, 5, length.out = 1000)
# Cálculo de la densidad de probabilidad para la distribución t
density_t <- dt(t_sequence, df)
# Gráfica de la distribución t de Student
ggplot(data.frame(t = t_sequence, density = density_t), aes(x = t, y = density)) +
geom_line(color = "blue", size = 1) +
geom_vline(xintercept = valor_critico, color = "green", linetype = "dashed") +
geom_text(aes(x = valor_critico + 0.2, y = 0.05, label = paste("Valor crítico =", round(valor_critico, 2))), color = "green", angle = 90, vjust = -0.5) +
geom_vline(xintercept = t_stat, color = "red", linetype = "dashed") +
geom_text(aes(x = t_stat - 0.8, y = 0.05, label = paste("Estadístico t =", round(t_stat, 2))), color = "red", angle = 90, vjust = -0.5) +
xlim(-5, 5) +
xlab("t") +
ylab("Densidad") +
ggtitle("Distribución t de Student y Prueba de Hipótesis") +
theme_minimal()
## Warning in geom_text(aes(x = valor_critico + 0.2, y = 0.05, label = paste("Valor crítico =", : All aesthetics have length 1, but the data has 1000 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
## a single row.
## Warning in geom_text(aes(x = t_stat - 0.8, y = 0.05, label = paste("Estadístico t =", : All aesthetics have length 1, but the data has 1000 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
## a single row.

# Resultados
cat("Valor del estadístico de prueba t:", round(t_stat, 2), "\n")
## Valor del estadístico de prueba t: 1.02
cat("Valor p:", p_value, "\n")
## Valor p: 0.159606
# Interpretación del resultado
if (t_stat > valor_critico) {
cat("Como el estadístico de prueba t es mayor que el valor crítico, rechazamos la hipótesis nula. Parece que la erosión del tipo 1 excede al del tipo 2 por más de 2 unidades.")
} else {
cat("Como el estadístico de prueba t es menor o igual que el valor crítico, no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que la erosión del tipo 1 exceda al del tipo 2 por más de 2 unidades.")
}
## Como el estadístico de prueba t es menor o igual que el valor crítico, no tenemos suficiente evidencia para rechazar la hipótesis nula. No parece que la erosión del tipo 1 exceda al del tipo 2 por más de 2 unidades.