#EJERCICIO 1 #PUNTO 1A #Las empresas grandes y medianas radicadas en una ciudad grande de cierto país, difieren en sus opiniones sobre la restricción del uso del fracking para la extracción de hidrocarburos. Se cree que el 12 % de los empresas grandes están a favor del uso del fracking, mientras que el 10 % de las empresas medianas lo están. Si se pregunta a dos muestras aleatorias, una de 150 empresas grandes y otra de 100 empresas medianas, su opinión al respecto, determine la probabilidad de que el porcentaje de empresas grandes a favor sea al menos 3 % mayor que el de las empresas medianas.

# Definir el tamaño de las muestras
n_empresas_grandes <- 150
n_empresas_medianas <- 100

# Definir las probabilidades de estar a favor del fracking para empresas grandes y medianas
prob_a_favor_grandes <- 0.12
prob_a_favor_medianas <- 0.10

# Número de simulaciones Monte Carlo
num_simulaciones <- 100000

# Inicializar contador para contar los casos en los que el porcentaje de empresas grandes a favor es al menos 3% mayor que el de las empresas medianas
contador <- 0

# Realizar simulaciones Monte Carlo
for (i in 1:num_simulaciones) {
  # Generar muestras aleatorias para empresas grandes y medianas
  muestra_empresas_grandes <- sample(c(0, 1), n_empresas_grandes, replace = TRUE, prob = c(1 - prob_a_favor_grandes, prob_a_favor_grandes))
  muestra_empresas_medianas <- sample(c(0, 1), n_empresas_medianas, replace = TRUE, prob = c(1 - prob_a_favor_medianas, prob_a_favor_medianas))
  
  # Calcular el porcentaje de empresas a favor en cada muestra
  porcentaje_a_favor_grandes <- sum(muestra_empresas_grandes) / n_empresas_grandes * 100
  porcentaje_a_favor_medianas <- sum(muestra_empresas_medianas) / n_empresas_medianas * 100
  
  # Verificar si el porcentaje de empresas grandes a favor es al menos 3% mayor que el de las empresas medianas
  if (porcentaje_a_favor_grandes >= porcentaje_a_favor_medianas + 3) {
    contador <- contador + 1
  }
}

# Calcular la probabilidad solicitada
probabilidad <- contador / num_simulaciones

# Imprimir resultado
print(paste("La probabilidad de que el porcentaje de empresas grandes a favor sea al menos 3% mayor que el de las empresas medianas es:", probabilidad))
## [1] "La probabilidad de que el porcentaje de empresas grandes a favor sea al menos 3% mayor que el de las empresas medianas es: 0.41939"

#PUNTO 1B #Determine si el puntaje promedio en el grado de satisfacción con el trabajo es el mismo en el grupo de profesionales en Geología y el de Sismología. Suponga que los puntajes en el grado de satisfacción con el trabajo en esas dos poblaciones están normalmente distribuidos. Considere los siguientes datos muestrales: prom1=50.11, prom2=39.18; desviación estándar1=54 y desviación estándar2=25; n1=10 y n2=14.

# Datos muestrales
x1 <- 50.11  # media de Geología
x2 <- 39.18  # media de Sismología
S1_sq <- 54  # varianza muestral de Geología
S2_sq <- 25  # varianza muestral de Sismología
n1 <- 10     # tamaño de muestra de Geología
n2 <- 14     # tamaño de muestra de Sismología

# Realizar la prueba de hipótesis
# Establecer las hipótesis nulas y alternativas
# H0: mu1 = mu2 (no hay diferencia en los puntajes promedio)
# Ha: mu1 ≠ mu2 (hay diferencia en los puntajes promedio)

# Nivel de significancia (alfa)
alfa <- 0.05

# Calcular el estadístico de prueba
# Se asume que las varianzas poblacionales son iguales (prueba t de Student para muestras independientes)
t_stat <- (x1 - x2) / sqrt((S1_sq/n1) + (S2_sq/n2))

# Calcular los grados de libertad
df <- n1 + n2 - 2

# Calcular el valor crítico (bilateral)
t_critico <- qt(1 - alfa/2, df)

# Calcular el p-valor
p_valor <- 2 * pt(abs(t_stat), df, lower.tail = FALSE)

# Imprimir resultados
cat("Estadístico de prueba t:", t_stat, "\n")
## Estadístico de prueba t: 4.077418
cat("Valor crítico t:", t_critico, "\n")
## Valor crítico t: 2.073873
cat("P-valor:", p_valor, "\n")
## P-valor: 0.000499369
# Decisión basada en el valor crítico
if (abs(t_stat) > t_critico) {
  cat("Se rechaza la hipótesis nula. Hay evidencia suficiente para concluir que hay diferencia en los puntajes promedio.\n")
} else {
  cat("No se rechaza la hipótesis nula. No hay suficiente evidencia para concluir que hay diferencia en los puntajes promedio.\n")
}
## Se rechaza la hipótesis nula. Hay evidencia suficiente para concluir que hay diferencia en los puntajes promedio.
# Decisión basada en el p-valor
if (p_valor < alfa) {
  cat("Se rechaza la hipótesis nula. Hay evidencia suficiente para concluir que hay diferencia en los puntajes promedio.\n")
} else {
  cat("No se rechaza la hipótesis nula. No hay suficiente evidencia para concluir que hay diferencia en los puntajes promedio.\n")
}
## Se rechaza la hipótesis nula. Hay evidencia suficiente para concluir que hay diferencia en los puntajes promedio.

#EJERCICIO 2 #Se dice que un sismógrafo está fuera de control si la varianza de los movimientos detectados es igual a 1.5. Si de una muestra aleatoria de 25 mediciones obtenidas por el sismógrafo se tiene que x1=75 y x2=273.72.

# Datos de las mediciones
x1 <- 75
x2 <- 273.72

# Número de mediciones
n <- 2

# Calcular la varianza muestral
varianza_muestral <- ((x1 - mean(c(x1, x2)))^2 + (x2 - mean(c(x1, x2)))^2) / (n - 1)

# Nivel de significancia (alfa)
alfa <- 0.05

# Establecer la hipótesis nula y alternativa
# H0: La varianza es igual a 1.5
# Ha: La varianza no es igual a 1.5

# Estadístico de prueba
estadistico_prueba <- varianza_muestral

# Valor crítico (bilateral) para alfa = 0.05
valor_critico <- qchisq(1 - alfa/2, df = n - 1)

# P-value
p_valor <- 1 - pchisq(estadistico_prueba, df = n - 1)

# Imprimir resultados
cat("Varianza muestral:", varianza_muestral, "\n")
## Varianza muestral: 19744.82
cat("Estadístico de prueba:", estadistico_prueba, "\n")
## Estadístico de prueba: 19744.82
cat("Valor crítico:", valor_critico, "\n")
## Valor crítico: 5.023886
cat("P-value:", p_valor, "\n")
## P-value: 0
# Decisión basada en el valor crítico
if (estadistico_prueba > valor_critico) {
  cat("Se rechaza la hipótesis nula. La varianza no es igual a 1.5.\n")
} else {
  cat("No se rechaza la hipótesis nula. No hay suficiente evidencia para concluir que la varianza no es igual a 1.5.\n")
}
## Se rechaza la hipótesis nula. La varianza no es igual a 1.5.
# Decisión basada en el p-valor
if (p_valor < alfa) {
  cat("Se rechaza la hipótesis nula. La varianza no es igual a 1.5.\n")
} else {
  cat("No se rechaza la hipótesis nula. No hay suficiente evidencia para concluir que la varianza no es igual a 1.5.\n")
}
## Se rechaza la hipótesis nula. La varianza no es igual a 1.5.

##Suponga que el diámetro a la altura del pecho (pulg) de árboles de un tipo está normalmente distribuido con µ = 8.0 y σ = 2.8. (a) ¿Cuál es la probabilidad de que el diámetro de un árbol seleccionado al azar será por lo menos de 10 pulg? (b) ¿Qué valor c es tal que el intervalo (8.8 − c, 8.8+c) incluya 98 % de todos los valores de diámetro?. ¿Podemos concluir que el sismógrafo está fuera de control?. Suponga que los movimientos detectados por esta máquina están normalmente distribuidos.

# Cargar la biblioteca necesaria para las funciones de distribución normal
library(stats)

# Datos del problema
mu <- 8.0      # media del diámetro de los árboles
sigma <- 2.8   # desviación estándar del diámetro de los árboles
x <- 10        # valor del diámetro para el cual se calculará la probabilidad
pct <- 98      # porcentaje para el cual se calculará el intervalo de confianza
x1 <- 75       # primera medición del sismógrafo
x2 <- 273.72   # segunda medición del sismógrafo
n <- 25        # tamaño de la muestra

# (a) Calcular la probabilidad de que el diámetro de un árbol seleccionado al azar sea por lo menos de 10 pulg
prob_a <- 1 - pnorm(x, mean = mu, sd = sigma)
cat("(a) La probabilidad de que el diámetro de un árbol seleccionado al azar sea por lo menos de 10 pulg es:", prob_a, "\n")
## (a) La probabilidad de que el diámetro de un árbol seleccionado al azar sea por lo menos de 10 pulg es: 0.2375253
# (b) Calcular el valor c tal que el intervalo (8.8 − c, 8.8+c) incluya 98 % de todos los valores de diámetro
c_value <- qnorm((100 + pct) / 200, mean = mu, sd = sigma) - mu
cat("(b) El valor c tal que el intervalo (8.8 - c, 8.8 + c) incluya el 98 % de todos los valores de diámetro es:", c_value, "\n")
## (b) El valor c tal que el intervalo (8.8 - c, 8.8 + c) incluya el 98 % de todos los valores de diámetro es: 6.513774
# Probar si el sismógrafo está fuera de control comparando la varianza muestral con el valor dado
# Calcular la varianza muestral
varianza_muestral <- ((x1 - mu)^2 + (x2 - mu)^2) / (n - 1)
cat("La varianza muestral de las mediciones del sismógrafo es:", varianza_muestral, "\n")
## La varianza muestral de las mediciones del sismógrafo es: 3129.005
# Comparar con el valor dado para determinar si el sismógrafo está fuera de control
if (varianza_muestral > 1.5) {
  cat("Dado que la varianza muestral es mayor que 1.5, podemos concluir que el sismógrafo está fuera de control.\n")
} else {
  cat("Dado que la varianza muestral no es mayor que 1.5, no podemos concluir que el sismógrafo esté fuera de control.\n")
}
## Dado que la varianza muestral es mayor que 1.5, podemos concluir que el sismógrafo está fuera de control.

#EJERCICIO 3 #El modelo de profundidad (cm) de la capa de bioturbación en sedimento en una región sugiere la distribución uniforme en el intervalo (a, b). (a) ¿Cuáles son la media y la varianza de la profundidad? (b) ¿Cuál es la función de distribución acumulativa de la profundidad? (c) ¿Cuál es la probabilidad de que la profundidad observada esté dentro de 2 desviaciones estándar?.

# Función para calcular la media de la distribución uniforme
media_uniforme <- function(a, b) {
  return((a + b) / 2)
}

# Función para calcular la varianza de la distribución uniforme
varianza_uniforme <- function(a, b) {
  return(((b - a)^2) / 12)
}

# Función para calcular la función de distribución acumulativa (CDF) de la distribución uniforme
cdf_uniforme <- function(x, a, b) {
  ifelse(x < a, 0,
         ifelse(x >= b, 1,
                (x - a) / (b - a)))
}

# Parámetros del intervalo de la distribución uniforme
a <- 2
b <- 5

# (a) Calcular la media y la varianza
media <- media_uniforme(a, b)
varianza <- varianza_uniforme(a, b)
cat("(a) La media de la distribución uniforme es:", media, "\n")
## (a) La media de la distribución uniforme es: 3.5
cat("    La varianza de la distribución uniforme es:", varianza, "\n")
##     La varianza de la distribución uniforme es: 0.75
# (b) Graficar la función de distribución acumulativa (CDF)
curve(cdf_uniforme(x, a, b), from = a - 1, to = b + 1, xlab = "Profundidad (cm)", ylab = "F(x)", main = "Función de Distribución Acumulativa (CDF)")
abline(h = 0, col = "gray", lty = 2)
abline(h = 1, col = "gray", lty = 2)

# (c) Calcular la probabilidad de que la profundidad observada esté dentro de 2 desviaciones estándar
probabilidad_dentro_2_sd <- cdf_uniforme(b, a, b) - cdf_uniforme(a, a, b)
cat("(c) La probabilidad de que la profundidad observada esté dentro de 2 desviaciones estándar es:", probabilidad_dentro_2_sd, "\n")
## (c) La probabilidad de que la profundidad observada esté dentro de 2 desviaciones estándar es: 1