1. Suponga que el espacio muestral es la población de adultos en una pequeña ciudad que cumplen con los requisitos para obtener un grado en la universidad. Se clasifican de acuerdo con su sexo y situación laboral. La información se presenta en la tabla siguiente. Si uno de los individuos se seleccionara al azar para que realice un viaje a través del país para promover las ventajas de establecer industrias nuevas en la ciudad, ¿Encontrar la probabilidad de que el elegido sea un hombre sabiendo que tiene empleo?

# Crear tabla como data frame
tabla_df <- data.frame(
  Sexo = c("Hombre", "Mujer"),
  Empleado = c(460, 140),
  Desempleado = c(40, 260)
)

# Mostrar tabla
library(knitr)
kable(tabla_df, caption = "Tabla 1. Distribución por sexo y situación laboral")
Tabla 1. Distribución por sexo y situación laboral
Sexo Empleado Desempleado
Hombre 460 40
Mujer 140 260
# Calcular probabilidad de que sea hombre sabiendo que tiene empleo
hombres_empleados <- tabla_df$Empleado[tabla_df$Sexo == "Hombre"]
total_empleados <- sum(tabla_df$Empleado)
probabilidad <- hombres_empleados / total_empleados

# Preparar datos para gráfico circular
empleados_df <- data.frame(
  Sexo = tabla_df$Sexo,
  Cantidad = tabla_df$Empleado
)

# Crear gráfico circular
library(ggplot2)
ggplot(empleados_df, aes(x = "", y = Cantidad, fill = Sexo)) +
  geom_col(width = 1) +
  coord_polar(theta = "y") +
  labs(
    title = "Distribución de sexo entre empleados",
    x = NULL, y = NULL
  ) +
  theme_void() +
  theme(legend.position = "right")

La probabilidad de que el elegido sea hombre sabiendo que tiene empleo es: 0.7667

2. A un grupo de mil sujetos se les pasó un test de inteligencia y se midió su rendimiento académico (RA). Los resultados se resumen en la siguiente tabla: Se definen los sucesos: A: Ser superior en inteligencia; B: Ser apto en rendimiento. ¿Cuál es la probabilidad de que ó no es apto en rendimiento o es inferior en inteligencia?

# Crear la tabla como matriz
tabla <- matrix(c(400, 100,
                  200, 300),
                nrow = 2, byrow = TRUE)

# Asignar nombres a filas y columnas
rownames(tabla) <- c("No Aptos", "Aptos")
colnames(tabla) <- c("Inferiores", "Superiores")

# Mostrar la tabla bien formateada
library(knitr)
kable(tabla, caption = "Tabla 2. Rendimiento académico vs. nivel de inteligencia")
Tabla 2. Rendimiento académico vs. nivel de inteligencia
Inferiores Superiores
No Aptos 400 100
Aptos 200 300
# Calcular totales
total <- sum(tabla)

# P(no apto)
p_no_apto <- sum(tabla["No Aptos", ]) / total

# P(inferior inteligencia)
p_inferior <- sum(tabla[, "Inferiores"]) / total

# P(no apto ∩ inferior)
p_interseccion <- tabla["No Aptos", "Inferiores"] / total

# P(¬B ∪ ¬A) = P(¬B) + P(¬A) - P(¬B ∩ ¬A)
resultado <- p_no_apto + p_inferior - p_interseccion

# -----------------------------
# Crear gráfico representativo
# -----------------------------

# Convertir matriz a data frame
tabla_df <- as.data.frame(tabla)
tabla_df$Rendimiento <- rownames(tabla_df)

# Reorganizar a formato largo
library(tidyr)
library(ggplot2)

tabla_largo <- pivot_longer(
  tabla_df,
  cols = c("Inferiores", "Superiores"),
  names_to = "Inteligencia",
  values_to = "Cantidad"
)

# Gráfico de barras apiladas
ggplot(tabla_largo, aes(x = Inteligencia, y = Cantidad, fill = Rendimiento)) +
  geom_col() +
  labs(
    title = "Distribución de rendimiento académico según nivel de inteligencia",
    x = "Nivel de inteligencia",
    y = "Cantidad de estudiantes",
    fill = "Rendimiento"
  ) +
  theme_minimal()

La probabilidad de que no sea apto o tenga inteligencia inferior es: 0.7

3.Se aplica un insecticida a tres larvas y al cabo de 24 horas se observan si estan muertas o vivas. La probabilidad de encontrar dos larvas muertas y una viva es:

# Crear data frame con las combinaciones
larvas_df <- data.frame(
  Combinacion = 1:8,
  Estado = c("M M M", "M M V", "M V M", "M V V", 
             "V M M", "V M V", "V V M", "V V V"),
  Muertas = c(3, 2, 2, 1, 2, 1, 1, 0),
  Vivas = c(0, 1, 1, 2, 1, 2, 2, 3),
  Probabilidad = rep(0.5^3, 8)  # todas las combinaciones tienen igual prob
)

# Marcar las combinaciones con exactamente 2 muertas y 1 viva
larvas_df$Resaltado <- ifelse(larvas_df$Muertas == 2 & larvas_df$Vivas == 1, "Sí", "No")

# Mostrar tabla
knitr::kable(larvas_df, caption = "Tabla 4. Combinaciones posibles de resultados en 3 larvas")
Tabla 4. Combinaciones posibles de resultados en 3 larvas
Combinacion Estado Muertas Vivas Probabilidad Resaltado
1 M M M 3 0 0.125 No
2 M M V 2 1 0.125 Sí
3 M V M 2 1 0.125 Sí
4 M V V 1 2 0.125 No
5 V M M 2 1 0.125 Sí
6 V M V 1 2 0.125 No
7 V V M 1 2 0.125 No
8 V V V 0 3 0.125 No
# Graficar combinaciones
library(ggplot2)
ggplot(larvas_df, aes(x = Estado, y = Probabilidad, fill = Resaltado)) +
  geom_bar(stat = "identity") +
  labs(title = "Probabilidad de combinaciones (M = Muerta, V = Viva)",
       x = "Combinación", y = "Probabilidad") +
  scale_fill_manual(values = c("No" = "gray", "Sí" = "tomato")) +
  theme_minimal()

La probabilidad de encontrar 2 larvas estén muertas y 1 viva es: 0.375

4. Para un estudiante que cursa las materias de estadistica y Precálculo, estiman que la probabilidad de aprobar precalculo es igual al 40%. Además la probabilidad de aprobar por lo menos un curso es igual al 60% y que sólo tiene un 10% de probabilidad de ambos cursos. ¿Cual es la probabilidad de que pase la materia de Estadistica?

# Definir las probabilidades
p_precalculo <- 0.4
p_union <- 0.6
p_ambas <- 0.1
p_estadistica <- p_union - p_precalculo + p_ambas

# Crear tabla de resumen
prob_df <- data.frame(
  Evento = c("Aprueba Precálculo", 
             "Aprueba Estadística", 
             "Aprueba al menos uno", 
             "Aprueba ambos"),
  Probabilidad = c(p_precalculo, p_estadistica, p_union, p_ambas)
)

# Mostrar tabla formateada
knitr::kable(prob_df, caption = "Tabla 3. Probabilidades del ejercicio")
Tabla 3. Probabilidades del ejercicio
Evento Probabilidad
Aprueba Precálculo 0.4
Aprueba Estadística 0.3
Aprueba al menos uno 0.6
Aprueba ambos 0.1
# Graficar (si usas HTML como salida)
library(ggplot2)
ggplot(prob_df, aes(x = Evento, y = Probabilidad, fill = Evento)) +
  geom_bar(stat = "identity") +
  labs(title = "Probabilidades de eventos", y = "Probabilidad") +
  theme_minimal() +
  theme(legend.position = "none")

La probabilidad de que pase la materia de Estadistica es 0.3

5. Supóngase que se tiene una caja de fusibles que contiene 20 piezas, de las cuales 5 están defectuosas. Si se seleccionan 2 al azar y se sacan de la caja en una sucesión sin reemplazo del primero, ¿Cual es la probabilidad de que ambos fusibles resulten defectuosos?

# Datos del problema
total <- 20
defectuosos <- 5

# Probabilidad de que ambos fusibles sean defectuosos (sin reemplazo)
p1 <- defectuosos / total
p2 <- (defectuosos - 1) / (total - 1)
probabilidad_ambos <- p1 * p2

# Crear tabla comparativa
fusibles_df <- data.frame(
  Evento = c("1er fusible defectuoso", "2do fusible defectuoso dado el 1ro", "Ambos defectuosos"),
  Probabilidad = c(p1, p2, probabilidad_ambos)
)

# Mostrar tabla sin ##
knitr::kable(fusibles_df, caption = "Tabla 6. Probabilidades de defectuosidad sin reemplazo")
Tabla 6. Probabilidades de defectuosidad sin reemplazo
Evento Probabilidad
1er fusible defectuoso 0.2500000
2do fusible defectuoso dado el 1ro 0.2105263
Ambos defectuosos 0.0526316
# Graficar
library(ggplot2)
ggplot(fusibles_df, aes(x = Evento, y = Probabilidad, fill = Evento)) +
  geom_col() +
  labs(title = "Probabilidades de selección de fusibles defectuosos",
       y = "Probabilidad") +
  theme_minimal() +
  theme(legend.position = "none")

6. Un niño guarda tres cajas con chocolatinas, en la primera tiene dos chocolatinas negras y una blanca, en la segunda dos negras y dos blancas y en la tercera dos blancas y una negra. En un despiste suyo, su hermana pequeña le ha cogido una chocolatina blanca. La probabilidad de que la haya cogido de la primera caja?

# Probabilidades por caja
p_blanca_C1 <- 1/3
p_blanca_C2 <- 2/4
p_blanca_C3 <- 2/3

p_C1 <- 1/3
p_C2 <- 1/3
p_C3 <- 1/3

# Probabilidad total de sacar blanca
p_blanca <- p_C1 * p_blanca_C1 + p_C2 * p_blanca_C2 + p_C3 * p_blanca_C3

# Bayes: P(Caja 1 | Blanca)
p_C1_dado_blanca <- (p_blanca_C1 * p_C1) / p_blanca

# Crear tabla con nombres simples y claros
cajas_df <- data.frame(
  Caja = c("Caja 1", "Caja 2", "Caja 3"),
  Probabilidad_Caja = c(p_C1, p_C2, p_C3),
  Probabilidad_Blanca = c(p_blanca_C1, p_blanca_C2, p_blanca_C3),
  Probabilidad_Conjunta = c(p_C1 * p_blanca_C1, p_C2 * p_blanca_C2, p_C3 * p_blanca_C3)
)

# Mostrar tabla limpia
knitr::kable(cajas_df,
             digits = 3,
             caption = "Tabla 7. Probabilidades por caja y combinadas con chocolatina blanca")
Tabla 7. Probabilidades por caja y combinadas con chocolatina blanca
Caja Probabilidad_Caja Probabilidad_Blanca Probabilidad_Conjunta
Caja 1 0.333 0.333 0.111
Caja 2 0.333 0.500 0.167
Caja 3 0.333 0.667 0.222
# Graficar usando nombres simples
library(ggplot2)
ggplot(cajas_df, aes(x = Caja, y = Probabilidad_Blanca, fill = Caja)) +
  geom_col() +
  labs(title = "Probabilidad de sacar una chocolatina blanca en cada caja",
       y = "Probabilidad de blanca", x = "Caja") +
  theme_minimal() +
  theme(legend.position = "none")

La probabilidad de que la chocolatina blanca haya salido de la caja 1 es: 0.222

7. Supongamos que tenemos una moneda A que cae en cara con probabilidad s y una moneda B que cae en cara con probabilidad t. Si cada moneda se tira de manera alternada, empezando con la moneda A. La probabilidad de que la primera cara se obtenga con la moneda A es.

# Probabilidades de cara para cada moneda
s <- 0.4  # Probabilidad de que la moneda A caiga en cara
t <- 0.6  # Probabilidad de que la moneda B caiga en cara

# Calcular probabilidad con fórmula de serie geométrica
probabilidad <- s / (1 - (1 - s) * (1 - t)^2)

# Crear tabla con parámetros y resultado
monedas_df <- data.frame(
  Variable = c("P(cara con A)", "P(cara con B)", "P(primera cara con A)"),
  Valor = c(s, t, round(probabilidad, 3))
)

# Mostrar tabla limpia
knitr::kable(monedas_df, caption = "Tabla 8. Probabilidades asociadas a monedas A y B")
Tabla 8. Probabilidades asociadas a monedas A y B
Variable Valor
P(cara con A) 0.400
P(cara con B) 0.600
P(primera cara con A) 0.442
# Gráfico comparativo
library(ggplot2)
ggplot(monedas_df, aes(x = Variable, y = Valor, fill = Variable)) +
  geom_col() +
  labs(title = "Probabilidad de obtener cara", y = "Probabilidad", x = "") +
  theme_minimal() +
  theme(legend.position = "none")

La probabilidad de que la primera cara ocurra con la moneda A es: 0.442

8. Un agente de seguros vende pólizas a cinco personas de la misma edad y que disfrutan de buena salud. Según las tablas actuales, la probabilidad de que una persona en estas condiciones viva 30 años o más es 60%. Hállese la probabilidad de que, transcurridos 30 años todas vivan:

# Probabilidad individual de que una persona viva 30 años
p_viva <- 0.6

# Número de personas
n <- 5

# Probabilidad de que todas vivan (independientes)
p_todas_vivas <- p_viva^n

# Crear tabla resumen
personas_df <- data.frame(
  Concepto = c("Probabilidad de que 1 persona viva 30 años",
               "Probabilidad de que las 5 personas vivan"),
  Valor = c(p_viva, round(p_todas_vivas, 4))
)

# Mostrar tabla formateada
knitr::kable(personas_df, caption = "Tabla 9. Probabilidad individual y conjunta de supervivencia")
Tabla 9. Probabilidad individual y conjunta de supervivencia
Concepto Valor
Probabilidad de que 1 persona viva 30 años 0.6000
Probabilidad de que las 5 personas vivan 0.0778
# Crear un gráfico que muestre cómo varía la probabilidad según el número de personas
grupo <- 1:6
probabilidades <- p_viva ^ grupo
grafico_df <- data.frame(
  Personas = grupo,
  Probabilidad = probabilidades
)

# Gráfico de línea
library(ggplot2)

ggplot(grafico_df, aes(x = Personas, y = Probabilidad)) +
  geom_line(color = "steelblue", linewidth = 1.2) +
  geom_point(size = 3, color = "tomato") +
  labs(
    title = "Probabilidad de que todas vivan según el número de personas",
       x = "Número de personas", y = "Probabilidad conjunta") +
  theme_minimal()

La probabilidad de que las 5 personas vivan después de 30 años es: 0.0778

9. Sean 2 sucesos A y B de los que se sabe que la probabilidad de B es el doble que la de A; que la probabilidad de su unión es doble que la de su intersección; y que la probabilidad de su intersección es de 0,2. ¿Qué suceso es más probable que ocurra sabiendo que ya ha ocurrido el otro?.

# Datos del problema
p_interseccion <- 0.2            # P(A ∩ B)
p_union <- 2 * p_interseccion    # P(A ∪ B)

# Sea P(A) = a, P(B) = 2a
# De la fórmula: P(A) + P(B) - P(A ∩ B) = P(A ∪ B)
# ⇒ P(A) + 2P(A) - 0.2 = 0.4 → 3a = 0.4 + 0.2 = 0.6 → a = 0.2
a <- (p_union + p_interseccion) / 3

# Probabilidades individuales
p_A <- a
p_B <- 2 * a

# Probabilidades condicionales
p_A_dado_B <- p_interseccion / p_B
p_B_dado_A <- p_interseccion / p_A

# Crear tabla resumen
bayes_df <- data.frame(
  Evento = c("P(A)", "P(B)", "P(A ∩ B)", "P(A ∪ B)", "P(A | B)", "P(B | A)"),
  Probabilidad = c(p_A, p_B, p_interseccion, p_union, p_A_dado_B, p_B_dado_A)
)

# Mostrar tabla limpia
knitr::kable(bayes_df, digits = 3, caption = "Tabla 10. Probabilidades individuales y condicionales")
Tabla 10. Probabilidades individuales y condicionales
Evento Probabilidad
P(A) 0.2
P(B) 0.4
P(A ∩ B) 0.2
P(A ∪ B) 0.4
P(A | B) 0.5
P(B | A) 1.0
# Graficar comparativa de condicionales
library(ggplot2)
ggplot(subset(bayes_df, Evento %in% c("P(A | B)", "P(B | A)")),
       aes(x = Evento, y = Probabilidad, fill = Evento)) +
  geom_col() +
  labs(title = "Comparación de probabilidades condicionales",
       y = "Probabilidad", x = "") +
  theme_minimal() +
  theme(legend.position = "none")

Es más probable que ocurra A sabiendo que ocurrió B

10.Sea la urna U (3B, 3N, 4R). Extraemos tres bolas, una a continuación de la otra. La primera es negra, la segunda no se mira y la tercera es blanca. Hallar la probabilidad de que la segunda sea roja.

# Opción 1: N - R - B
p1 <- (3/10) * (4/9) * (3/8)  # = 0.05

# Opción 2: N - B - B
p2 <- (3/10) * (3/9) * (2/8)  # = 0.025

# Opción 3: N - N - B
p3 <- (3/10) * (2/9) * (3/8)  # = 0.025

# Total de casos compatibles con N1 y B3
p_N1_B3 <- p1 + p2 + p3

# Probabilidad de que la segunda sea roja, dado N1 y B3
p_R2_dado_N1_B3 <- p1 / p_N1_B3

# Crear tabla de combinaciones
urnas_df <- data.frame(
  Secuencia = c("N - R - B", "N - B - B", "N - N - B"),
  Probabilidad = c(p1, p2, p3),
  Segunda_Roja = c("Sí", "No", "No")
)

# Mostrar tabla con 3 cifras
knitr::kable(urnas_df, digits = 3, caption = "Tabla 11. Probabilidades de combinaciones con 1ra negra y 3ra blanca")
Tabla 11. Probabilidades de combinaciones con 1ra negra y 3ra blanca
Secuencia Probabilidad Segunda_Roja
N - R - B 0.050 Sí
N - B - B 0.025 No
N - N - B 0.025 No
# Graficar las tres combinaciones
library(ggplot2)
ggplot(urnas_df, aes(x = Secuencia, y = Probabilidad, fill = Segunda_Roja)) +
  geom_col() +
  scale_fill_manual(values = c("Sí" = "tomato", "No" = "gray")) +
  labs(
    title = "Probabilidades según color de la segunda bola",
    y = "Probabilidad",
    fill = "¿Segunda roja?"
  ) +
  theme_minimal()

La probabilidad de que la segunda bola sea roja, dado que la primera fue negra y la tercera blanca, es: 0.5

11. En un colegio hay dos grupos de 35 alumnos de quinto curso y dos grupos de 30 alumnos de sexto curso. El 50 % de los alumnos de quinto no tienen faltas de ortografía, porcentaje que sube a 70% en los alumnos de sexto. En un concurso de redacción entre alumnos de quinto y sexto se elige una redacción al azar. Si tiene faltas de ortografía, ¿qué probabilidad hay de que sea de un alumno de quinto?.

# Cantidad de alumnos
quinto <- 2 * 35   # 70 alumnos
sexto <- 2 * 30    # 60 alumnos
total <- quinto + sexto  # 130 alumnos

# Probabilidades condicionales
p_faltas_quinto <- 0.5
p_faltas_sexto <- 0.3

# Probabilidades marginales
p_quinto <- quinto / total
p_sexto <- sexto / total

# Probabilidad total de que un alumno tenga faltas
p_faltas <- p_faltas_quinto * p_quinto + p_faltas_sexto * p_sexto

# Teorema de Bayes: P(Quinto | Faltas)
p_quinto_dado_faltas <- (p_faltas_quinto * p_quinto) / p_faltas

# Crear tabla resumen
redaccion_df <- data.frame(
  Grado = c("Quinto", "Sexto"),
  Alumnos = c(quinto, sexto),
  P_Seleccion = c(p_quinto, p_sexto),
  P_Faltas = c(p_faltas_quinto, p_faltas_sexto),
  P_Conjunta = c(p_faltas_quinto * p_quinto, p_faltas_sexto * p_sexto)
)

# Mostrar tabla
knitr::kable(redaccion_df, digits = 4, caption = "Tabla 12. Probabilidades de tener faltas ortográficas por grado")
Tabla 12. Probabilidades de tener faltas ortográficas por grado
Grado Alumnos P_Seleccion P_Faltas P_Conjunta
Quinto 70 0.5385 0.5 0.2692
Sexto 60 0.4615 0.3 0.1385
# Gráfico comparativo de P(faltas | grado)
library(ggplot2)
ggplot(redaccion_df, aes(x = Grado, y = P_Faltas, fill = Grado)) +
  geom_col() +
  labs(
    title = "Probabilidad de tener faltas ortográficas por grado",
    y = "P(faltas | grado)", x = ""
  ) +
  theme_minimal() +
  theme(legend.position = "none")

La probabilidad de que un alumno con faltas sea de quinto es: 0.6604