Con Mi Profe: Julio Hurtado Marquez; EMAIL_TAREAS:

1 📊 PRUEBAS DE HIPÓTESIS APLICADAS - CIENCIAS DE LA SALUD, PSICOLOGÍA, COMUNICACIÓN, NEGOCIOS, ADMINISTRACIÓN E INGENIERÍA

📊 PRUEBAS DE HIPÓTESIS APLICADAS

Ciencias de la Salud • Psicología • Comunicación Social • Negocios • Administración • Ingeniería


1.1 ÍNDICE DE CONTENIDOS

Sección Título
1 Prueba de Hipótesis para la Media Muestral (1 muestra)
2 Prueba de Hipótesis para Diferencia de Medias (2 muestras independientes)
3 Prueba de Hipótesis para Diferencia de Medias (muestras pareadas)
4 Prueba de Hipótesis para una Proporción
5 Prueba de Hipótesis para Diferencia de Proporciones
6 Prueba de Hipótesis para la Varianza
7 Prueba de Hipótesis para el Cociente de Varianzas

1.2 01. PRUEBA DE HIPÓTESIS PARA LA MEDIA MUESTRAL (1 MUESTRA)

1.2.1 Aplicación 1: Ciencias de la Salud - Presión arterial sistólica

📝 Contexto: Un médico cardiólogo sospecha que la presión arterial sistólica promedio de sus pacientes hipertensos es superior a 130 mmHg, el umbral clínico de preocupación. Toma una muestra de 25 pacientes.

🔢 Datos: Muestra de 25 pacientes: media = 135 mmHg, desviación estándar = 8 mmHg. (σ desconocido, usar t de Student)

📐 Solución analítica:

  1. Hipótesis:

    • H₀: μ ≤ 130 mmHg (presión no es preocupante)
    • H₁: μ > 130 mmHg (presión es preocupante)
  2. Nivel de significancia: α = 0.05

  3. Estadístico de prueba:

    • SE = s/√n = 8/√25 = 8/5 = 1.6
    • t = (135 - 130) / 1.6 = 5 / 1.6 = 3.125
    • gl = 24
  4. Valor crítico: t₀.₀₅,₂₄ = 1.711

  5. Regla de decisión: Rechazar H₀ si t > 1.711

  6. Decisión: t = 3.125 > 1.711 → Se rechaza H₀

  7. Conclusión: La presión arterial promedio de los pacientes es significativamente superior a 130 mmHg, requiriendo intervención médica.

📊 Región de rechazo (R):

# Región crítica en R
library(ggplot2)
x <- seq(-4, 6, length=200)
y <- dt(x, df=24)
t_critico <- qt(0.95, df=24)
t_obs <- 3.125

ggplot(data.frame(x=x, y=y), aes(x=x, y=y)) +
  geom_line(color="blue", size=1.2) +
  geom_area(data=subset(data.frame(x=x, y=y), x>t_critico), aes(y=y), fill="red", alpha=0.5) +
  geom_vline(xintercept=t_critico, linetype="dashed", color="red", size=1) +
  geom_vline(xintercept=t_obs, color="green", size=1.5) +
  annotate("text", x=t_critico+0.5, y=0.05, label=paste("t crítico =", round(t_critico,3)), color="red") +
  annotate("text", x=t_obs+0.5, y=0.1, label=paste("t observado =", round(t_obs,3)), color="green") +
  labs(title="Región de rechazo - Prueba t unilateral superior", x="Estadístico t", y="Densidad") +
  theme_minimal()

Solución en R:

set.seed(123)
pacientes <- rnorm(25, mean = 135, sd = 8)
t.test(pacientes, mu = 130, alternative = "greater")

Solución en Python:

import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt

np.random.seed(123)
pacientes = np.random.normal(135, 8, 25)

t_stat, p_valor = stats.ttest_1samp(pacientes, 130, alternative='greater')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

# Región de rechazo
x = np.linspace(-4, 6, 200)
y = stats.t.pdf(x, df=24)
t_critico = stats.t.ppf(0.95, df=24)

plt.figure(figsize=(10,6))
plt.plot(x, y, 'b-', linewidth=2)
plt.fill_between(x[x>t_critico], 0, y[x>t_critico], color='red', alpha=0.5)
plt.axvline(x=t_critico, color='red', linestyle='--', linewidth=1.5, label=f't crítico = {t_critico:.3f}')
plt.axvline(x=t_stat, color='green', linewidth=2, label=f't observado = {t_stat:.3f}')
plt.title('Región de rechazo - Prueba t unilateral superior')
plt.xlabel('Estadístico t')
plt.ylabel('Densidad')
plt.legend()
plt.show()

1.2.2 Aplicación 2: Psicología - Tiempo de reacción

📝 Contexto: Un psicólogo cognitivo afirma que el tiempo de reacción promedio ante un estímulo visual es de 0.25 segundos. Sospecha que ha aumentado. Toma una muestra de 30 sujetos.

🔢 Datos: Muestra: media = 0.27 s, desviación estándar = 0.04 s.

📐 Solución analítica:

  1. Hipótesis: H₀: μ ≤ 0.25; H₁: μ > 0.25

  2. Estadístico de prueba:

    • SE = 0.04/√30 = 0.04/5.477 = 0.0073
    • t = (0.27 - 0.25) / 0.0073 = 2.74
    • gl = 29
  3. Valor crítico: t₀.₀₅,₂₉ = 1.699

  4. Decisión: t = 2.74 > 1.699 → Se rechaza H₀

  5. Conclusión: El tiempo de reacción promedio ha aumentado significativamente.

Solución en R:

set.seed(456)
tiempos <- rnorm(30, mean = 0.27, sd = 0.04)
t.test(tiempos, mu = 0.25, alternative = "greater")

Solución en Python:

np.random.seed(456)
tiempos = np.random.normal(0.27, 0.04, 30)
t_stat, p_valor = stats.ttest_1samp(tiempos, 0.25, alternative='greater')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.2.3 Aplicación 3: Comunicación Social - Tiempo de lectura de noticias

📝 Contexto: Un periódico digital afirma que sus lectores pasan en promedio 5 minutos por artículo. El editor cree que es menor. Encuesta a 40 lectores.

🔢 Datos: Muestra: media = 4.5 min, desviación estándar = 1.2 min.

📐 Solución analítica (unilateral inferior):

  1. Hipótesis: H₀: μ ≥ 5; H₁: μ < 5

  2. Estadístico de prueba:

    • SE = 1.2/√40 = 1.2/6.325 = 0.19
    • t = (4.5 - 5) / 0.19 = -2.63
    • gl = 39
  3. Valor crítico: t₀.₀₅,₃₉ = -1.685

  4. Decisión: t = -2.63 < -1.685 → Se rechaza H₀

  5. Conclusión: El tiempo de lectura promedio es significativamente menor a 5 minutos.

Solución en R:

set.seed(789)
lectura <- rnorm(40, mean = 4.5, sd = 1.2)
t.test(lectura, mu = 5, alternative = "less")

Solución en Python:

np.random.seed(789)
lectura = np.random.normal(4.5, 1.2, 40)
t_stat, p_valor = stats.ttest_1samp(lectura, 5, alternative='less')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.2.4 Aplicación 4: Negocios - Satisfacción del cliente

📝 Contexto: Una empresa afirma que su puntuación de satisfacción es 8.5/10. El gerente sospecha que es diferente. Encuesta a 50 clientes.

🔢 Datos: Muestra: media = 8.2, desviación estándar = 1.0.

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: μ = 8.5; H₁: μ ≠ 8.5

  2. Estadístico de prueba:

    • SE = 1.0/√50 = 1.0/7.071 = 0.141
    • t = (8.2 - 8.5) / 0.141 = -2.13
    • gl = 49
  3. Valor crítico: t₀.₀₂₅,₄₉ = ±2.01

  4. Decisión: |t| = 2.13 > 2.01 → Se rechaza H₀

  5. Conclusión: La satisfacción promedio es significativamente diferente de 8.5.

Solución en R:

set.seed(101)
satisfaccion <- rnorm(50, mean = 8.2, sd = 1.0)
t.test(satisfaccion, mu = 8.5)

Solución en Python:

np.random.seed(101)
satisfaccion = np.random.normal(8.2, 1.0, 50)
t_stat, p_valor = stats.ttest_1samp(satisfaccion, 8.5)
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.2.5 Aplicación 5: Ingeniería - Resistencia de materiales

📝 Contexto: Una fábrica produce varillas que deben tener resistencia promedio de 500 MPa. El ingeniero sospecha que es menor. Prueba 32 varillas.

🔢 Datos: Muestra: media = 485 MPa, desviación estándar = 25 MPa.

📐 Solución analítica (unilateral inferior):

  1. Hipótesis: H₀: μ ≥ 500; H₁: μ < 500

  2. Estadístico de prueba:

    • SE = 25/√32 = 25/5.657 = 4.42
    • t = (485 - 500) / 4.42 = -3.39
    • gl = 31
  3. Valor crítico: t₀.₀₅,₃₁ = -1.696

  4. Decisión: t = -3.39 < -1.696 → Se rechaza H₀

  5. Conclusión: La resistencia promedio es significativamente menor al estándar.

Solución en R:

set.seed(202)
varillas <- rnorm(32, mean = 485, sd = 25)
t.test(varillas, mu = 500, alternative = "less")

Solución en Python:

np.random.seed(202)
varillas = np.random.normal(485, 25, 32)
t_stat, p_valor = stats.ttest_1samp(varillas, 500, alternative='less')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.3 02. PRUEBA DE HIPÓTESIS PARA DIFERENCIA DE MEDIAS (2 MUESTRAS INDEPENDIENTES)

1.3.1 Aplicación 1: Ciencias de la Salud - Comparación de tratamientos

📝 Contexto: Un médico compara dos tratamientos para reducir el colesterol. Grupo A (n=30) recibe medicamento, Grupo B (n=32) recibe placebo.

🔢 Datos: Grupo A: media = 180 mg/dL, sd = 15; Grupo B: media = 195 mg/dL, sd = 18.

📐 Solución analítica (Welch, varianzas desiguales):

  1. Hipótesis: H₀: μ_A = μ_B; H₁: μ_A < μ_B

  2. Estadístico de prueba:

    • SE = √(15²/30 + 18²/32) = √(225/30 + 324/32) = √(7.5 + 10.125) = √17.625 = 4.20
    • t = (180 - 195) / 4.20 = -3.57
    • gl (Welch) ≈ 58
  3. Valor crítico: t₀.₀₅,₅₈ = -1.672

  4. Decisión: t = -3.57 < -1.672 → Se rechaza H₀

  5. Conclusión: El tratamiento reduce significativamente el colesterol.

Solución en R:

set.seed(111)
tratamiento <- rnorm(30, mean = 180, sd = 15)
placebo <- rnorm(32, mean = 195, sd = 18)
t.test(tratamiento, placebo, alternative = "less")

Solución en Python:

np.random.seed(111)
tratamiento = np.random.normal(180, 15, 30)
placebo = np.random.normal(195, 18, 32)
t_stat, p_valor = stats.ttest_ind(tratamiento, placebo, alternative='less')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.3.2 Aplicación 2: Psicología - Efecto de estímulo auditivo

📝 Contexto: Un psicólogo estudia si la música clásica mejora el rendimiento en tareas cognitivas. Grupo control (n=25) en silencio, grupo experimental (n=28) con música.

🔢 Datos: Control: media = 72, sd = 8; Música: media = 78, sd = 7.

📐 Solución analítica (unilateral superior):

  1. Hipótesis: H₀: μ_música ≤ μ_control; H₁: μ_música > μ_control

  2. Estadístico de prueba:

    • SE = √(8²/25 + 7²/28) = √(64/25 + 49/28) = √(2.56 + 1.75) = √4.31 = 2.08
    • t = (78 - 72) / 2.08 = 2.88
    • gl ≈ 50
  3. Valor crítico: t₀.₀₅,₅₀ = 1.676

  4. Decisión: t = 2.88 > 1.676 → Se rechaza H₀

  5. Conclusión: La música clásica mejora significativamente el rendimiento cognitivo.

Solución en R:

set.seed(222)
control <- rnorm(25, mean = 72, sd = 8)
musica <- rnorm(28, mean = 78, sd = 7)
t.test(musica, control, alternative = "greater")

Solución en Python:

np.random.seed(222)
control = np.random.normal(72, 8, 25)
musica = np.random.normal(78, 7, 28)
t_stat, p_valor = stats.ttest_ind(musica, control, alternative='greater')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.3.3 Aplicación 3: Comunicación Social - Engagement en redes

📝 Contexto: Un community manager compara el engagement de publicaciones con y sin video. Grupo video (n=35) y grupo imagen (n=38).

🔢 Datos: Video: media = 1200 likes, sd = 150; Imagen: media = 1050 likes, sd = 140.

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: μ_video = μ_imagen; H₁: μ_video ≠ μ_imagen

  2. Estadístico de prueba:

    • SE = √(150²/35 + 140²/38) = √(22500/35 + 19600/38) = √(642.86 + 515.79) = √1158.65 = 34.04
    • t = (1200 - 1050) / 34.04 = 4.41
    • gl ≈ 70
  3. Valor crítico: t₀.₀₂₅,₇₀ = ±1.994

  4. Decisión: |t| = 4.41 > 1.994 → Se rechaza H₀

  5. Conclusión: Las publicaciones con video generan significativamente más engagement.

Solución en R:

set.seed(333)
video <- rnorm(35, mean = 1200, sd = 150)
imagen <- rnorm(38, mean = 1050, sd = 140)
t.test(video, imagen)

Solución en Python:

np.random.seed(333)
video = np.random.normal(1200, 150, 35)
imagen = np.random.normal(1050, 140, 38)
t_stat, p_valor = stats.ttest_ind(video, imagen)
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.3.4 Aplicación 4: Negocios - Productividad en oficinas

📝 Contexto: Un gerente compara la productividad entre oficina abierta (n=40) y oficina privada (n=35).

🔢 Datos: Abierta: media = 75 tareas/día, sd = 10; Privada: media = 80 tareas/día, sd = 8.

📐 Solución analítica (varianzas iguales asumidas):

  1. Hipótesis: H₀: μ_abierta ≥ μ_privada; H₁: μ_abierta < μ_privada

  2. Varianza combinada:

    • s_p² = [(39×100 + 34×64) / 73] = (3900 + 2176)/73 = 6076/73 = 83.23
    • s_p = 9.12
  3. Estadístico de prueba:

    • SE = 9.12 × √(1/40 + 1/35) = 9.12 × √(0.025 + 0.0286) = 9.12 × √0.0536 = 9.12 × 0.2315 = 2.11
    • t = (75 - 80) / 2.11 = -2.37
    • gl = 73
  4. Valor crítico: t₀.₀₅,₇₃ = -1.666

  5. Decisión: t = -2.37 < -1.666 → Se rechaza H₀

  6. Conclusión: La oficina privada es más productiva.

Solución en R:

set.seed(444)
abierta <- rnorm(40, mean = 75, sd = 10)
privada <- rnorm(35, mean = 80, sd = 8)
t.test(abierta, privada, alternative = "less", var.equal = TRUE)

Solución en Python:

np.random.seed(444)
abierta = np.random.normal(75, 10, 40)
privada = np.random.normal(80, 8, 35)
t_stat, p_valor = stats.ttest_ind(abierta, privada, alternative='less', equal_var=True)
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.3.5 Aplicación 5: Ingeniería - Resistencia de dos aleaciones

📝 Contexto: Un ingeniero compara la resistencia de dos aleaciones para determinar cuál es superior.

🔢 Datos: Aleación A (n=20): media = 450 MPa, sd = 25; Aleación B (n=22): media = 470 MPa, sd = 30.

📐 Solución analítica (unilateral superior):

  1. Hipótesis: H₀: μ_B ≤ μ_A; H₁: μ_B > μ_A

  2. Estadístico de prueba:

    • SE = √(25²/20 + 30²/22) = √(625/20 + 900/22) = √(31.25 + 40.91) = √72.16 = 8.49
    • t = (470 - 450) / 8.49 = 2.36
    • gl ≈ 39
  3. Valor crítico: t₀.₀₅,₃₉ = 1.686

  4. Decisión: t = 2.36 > 1.686 → Se rechaza H₀

  5. Conclusión: La Aleación B es significativamente más resistente.

Solución en R:

set.seed(555)
aleacion_A <- rnorm(20, mean = 450, sd = 25)
aleacion_B <- rnorm(22, mean = 470, sd = 30)
t.test(aleacion_B, aleacion_A, alternative = "greater")

Solución en Python:

np.random.seed(555)
aleacion_A = np.random.normal(450, 25, 20)
aleacion_B = np.random.normal(470, 30, 22)
t_stat, p_valor = stats.ttest_ind(aleacion_B, aleacion_A, alternative='greater')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.4 03. PRUEBA DE HIPÓTESIS PARA DIFERENCIA DE MEDIAS (MUESTRAS PAREADAS)

1.4.1 Aplicación 1: Ciencias de la Salud - Efecto de medicamento (antes/después)

📝 Contexto: Un médico evalúa la efectividad de un medicamento para reducir la presión arterial en 20 pacientes.

🔢 Datos: Diferencia (antes - después): media = 12 mmHg, sd = 5 mmHg.

📐 Solución analítica:

  1. Hipótesis: H₀: μ_d ≤ 0; H₁: μ_d > 0

  2. Estadístico de prueba:

    • SE = 5/√20 = 5/4.472 = 1.118
    • t = 12 / 1.118 = 10.73
    • gl = 19
  3. Valor crítico: t₀.₀₅,₁₉ = 1.729

  4. Decisión: t = 10.73 > 1.729 → Se rechaza H₀

  5. Conclusión: El medicamento reduce significativamente la presión arterial.

Solución en R:

set.seed(666)
antes <- rnorm(20, mean = 140, sd = 12)
despues <- antes - rnorm(20, mean = 12, sd = 5)
t.test(antes, despues, paired = TRUE, alternative = "greater")

Solución en Python:

np.random.seed(666)
antes = np.random.normal(140, 12, 20)
despues = antes - np.random.normal(12, 5, 20)
t_stat, p_valor = stats.ttest_rel(antes, despues, alternative='greater')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.4.2 Aplicación 2: Psicología - Terapia cognitivo-conductual

📝 Contexto: Un psicólogo evalúa la efectividad de la terapia cognitivo-conductual en 15 pacientes con ansiedad.

🔢 Datos: Diferencia (post - pre): media = -15 puntos en escala de ansiedad, sd = 6 puntos.

📐 Solución analítica (unilateral inferior):

  1. Hipótesis: H₀: μ_d ≥ 0; H₁: μ_d < 0

  2. Estadístico de prueba:

    • SE = 6/√15 = 6/3.873 = 1.55
    • t = (-15) / 1.55 = -9.68
    • gl = 14
  3. Valor crítico: t₀.₀₅,₁₄ = -1.761

  4. Decisión: t = -9.68 < -1.761 → Se rechaza H₀

  5. Conclusión: La terapia reduce significativamente la ansiedad.

Solución en R:

set.seed(777)
pre <- rnorm(15, mean = 65, sd = 10)
post <- pre - rnorm(15, mean = 15, sd = 6)
t.test(pre, post, paired = TRUE, alternative = "greater")

Solución en Python:

np.random.seed(777)
pre = np.random.normal(65, 10, 15)
post = pre - np.random.normal(15, 6, 15)
t_stat, p_valor = stats.ttest_rel(pre, post, alternative='greater')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.4.3 Aplicación 3: Comunicación Social - Campaña de marketing

📝 Contexto: Un community manager evalúa el impacto de una campaña en el engagement de 12 cuentas.

🔢 Datos: Diferencia (después - antes): media = 350 likes, sd = 80 likes.

📐 Solución analítica:

  1. Hipótesis: H₀: μ_d ≤ 0; H₁: μ_d > 0

  2. Estadístico de prueba:

    • SE = 80/√12 = 80/3.464 = 23.09
    • t = 350 / 23.09 = 15.16
    • gl = 11
  3. Valor crítico: t₀.₀₅,₁₁ = 1.796

  4. Decisión: t = 15.16 > 1.796 → Se rechaza H₀

  5. Conclusión: La campaña aumentó significativamente el engagement.

Solución en R:

set.seed(888)
antes <- rnorm(12, mean = 500, sd = 100)
despues <- antes + rnorm(12, mean = 350, sd = 80)
t.test(despues, antes, paired = TRUE, alternative = "greater")

Solución en Python:

np.random.seed(888)
antes = np.random.normal(500, 100, 12)
despues = antes + np.random.normal(350, 80, 12)
t_stat, p_valor = stats.ttest_rel(despues, antes, alternative='greater')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.4.4 Aplicación 4: Negocios - Capacitación de empleados

📝 Contexto: Un gerente evalúa la efectividad de una capacitación en 18 empleados midiendo productividad antes/después.

🔢 Datos: Diferencia (después - antes): media = 5 unidades, sd = 2 unidades.

📐 Solución analítica:

  1. Hipótesis: H₀: μ_d ≤ 0; H₁: μ_d > 0

  2. Estadístico de prueba:

    • SE = 2/√18 = 2/4.243 = 0.471
    • t = 5 / 0.471 = 10.62
    • gl = 17
  3. Valor crítico: t₀.₀₅,₁₇ = 1.740

  4. Decisión: t = 10.62 > 1.740 → Se rechaza H₀

  5. Conclusión: La capacitación mejoró significativamente la productividad.

Solución en R:

set.seed(999)
antes <- rnorm(18, mean = 50, sd = 8)
despues <- antes + rnorm(18, mean = 5, sd = 2)
t.test(despues, antes, paired = TRUE, alternative = "greater")

Solución en Python:

np.random.seed(999)
antes = np.random.normal(50, 8, 18)
despues = antes + np.random.normal(5, 2, 18)
t_stat, p_valor = stats.ttest_rel(despues, antes, alternative='greater')
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.4.5 Aplicación 5: Ingeniería - Desgaste de herramientas

📝 Contexto: Un ingeniero evalúa dos métodos de medición de desgaste en 10 herramientas.

🔢 Datos: Diferencia (Método A - Método B): media = 0.05 mm, sd = 0.02 mm.

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: μ_d = 0; H₁: μ_d ≠ 0

  2. Estadístico de prueba:

    • SE = 0.02/√10 = 0.02/3.162 = 0.00632
    • t = 0.05 / 0.00632 = 7.91
    • gl = 9
  3. Valor crítico: t₀.₀₂₅,₉ = ±2.262

  4. Decisión: |t| = 7.91 > 2.262 → Se rechaza H₀

  5. Conclusión: Existe diferencia significativa entre ambos métodos.

Solución en R:

set.seed(1000)
metodo_A <- rnorm(10, mean = 0.50, sd = 0.03)
metodo_B <- metodo_A - rnorm(10, mean = 0.05, sd = 0.02)
t.test(metodo_A, metodo_B, paired = TRUE)

Solución en Python:

np.random.seed(1000)
metodo_A = np.random.normal(0.50, 0.03, 10)
metodo_B = metodo_A - np.random.normal(0.05, 0.02, 10)
t_stat, p_valor = stats.ttest_rel(metodo_A, metodo_B)
print(f"t = {t_stat:.4f}, p = {p_valor:.4f}")

1.5 04. PRUEBA DE HIPÓTESIS PARA UNA PROPORCIÓN

1.5.1 Aplicación 1: Ciencias de la Salud - Eficacia de vacuna

📝 Contexto: Un laboratorio afirma que su vacuna tiene 90% de efectividad. En una muestra de 200 personas, 170 desarrollaron anticuerpos.

🔢 Datos: n = 200, éxitos = 170, p₀ = 0.90, p̂ = 170/200 = 0.85

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: p = 0.90; H₁: p ≠ 0.90

  2. Estadístico de prueba:

    • SE = √(0.90×0.10/200) = √(0.09/200) = √0.00045 = 0.0212
    • z = (0.85 - 0.90) / 0.0212 = -2.36
  3. Valor crítico: z₀.₀₂₅ = ±1.96

  4. Decisión: |z| = 2.36 > 1.96 → Se rechaza H₀

  5. Conclusión: La efectividad es significativamente diferente al 90%.

Solución en R:

prop.test(170, 200, p = 0.90, alternative = "two.sided")

Solución en Python:

from statsmodels.stats.proportion import proportions_ztest
exitos = 170
n = 200
p0 = 0.90
z_stat, p_valor = proportions_ztest(exitos, n, p0, alternative='two-sided')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.5.2 Aplicación 2: Psicología - Preferencia por terapia

📝 Contexto: Un psicólogo cree que más del 60% de los pacientes prefieren terapia online. Encuesta a 150 pacientes, 102 prefieren online.

🔢 Datos: n = 150, éxitos = 102, p₀ = 0.60, p̂ = 102/150 = 0.68

📐 Solución analítica (unilateral superior):

  1. Hipótesis: H₀: p ≤ 0.60; H₁: p > 0.60

  2. Estadístico de prueba:

    • SE = √(0.60×0.40/150) = √(0.24/150) = √0.0016 = 0.04
    • z = (0.68 - 0.60) / 0.04 = 2.0
  3. Valor crítico: z₀.₀₅ = 1.645

  4. Decisión: z = 2.0 > 1.645 → Se rechaza H₀

  5. Conclusión: Más del 60% prefieren terapia online.

Solución en R:

prop.test(102, 150, p = 0.60, alternative = "greater")

Solución en Python:

exitos = 102
n = 150
p0 = 0.60
z_stat, p_valor = proportions_ztest(exitos, n, p0, alternative='larger')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.5.3 Aplicación 3: Comunicación Social - Retención de noticias

📝 Contexto: Un editor afirma que el 75% de los lectores recuerdan una noticia 24h después. Se prueba con 80 lectores, 55 recuerdan.

🔢 Datos: n = 80, éxitos = 55, p₀ = 0.75, p̂ = 55/80 = 0.6875

📐 Solución analítica (unilateral inferior):

  1. Hipótesis: H₀: p ≥ 0.75; H₁: p < 0.75

  2. Estadístico de prueba:

    • SE = √(0.75×0.25/80) = √(0.1875/80) = √0.002344 = 0.0484
    • z = (0.6875 - 0.75) / 0.0484 = -1.29
  3. Valor crítico: z₀.₀₅ = -1.645

  4. Decisión: z = -1.29 > -1.645 → No se rechaza H₀

  5. Conclusión: No hay evidencia suficiente para afirmar que el recuerdo es menor al 75%.

Solución en R:

prop.test(55, 80, p = 0.75, alternative = "less")

Solución en Python:

exitos = 55
n = 80
p0 = 0.75
z_stat, p_valor = proportions_ztest(exitos, n, p0, alternative='smaller')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.5.4 Aplicación 4: Negocios - Conversión de ventas

📝 Contexto: Un negocio afirma que su tasa de conversión es del 10%. Se analizan 500 visitas, 65 compras.

🔢 Datos: n = 500, éxitos = 65, p₀ = 0.10, p̂ = 65/500 = 0.13

📐 Solución analítica (unilateral superior):

  1. Hipótesis: H₀: p ≤ 0.10; H₁: p > 0.10

  2. Estadístico de prueba:

    • SE = √(0.10×0.90/500) = √(0.09/500) = √0.00018 = 0.01342
    • z = (0.13 - 0.10) / 0.01342 = 2.24
  3. Valor crítico: z₀.₀₅ = 1.645

  4. Decisión: z = 2.24 > 1.645 → Se rechaza H₀

  5. Conclusión: La tasa de conversión es superior al 10%.

Solución en R:

prop.test(65, 500, p = 0.10, alternative = "greater")

Solución en Python:

exitos = 65
n = 500
p0 = 0.10
z_stat, p_valor = proportions_ztest(exitos, n, p0, alternative='larger')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.5.5 Aplicación 5: Ingeniería - Defectos en producción

📝 Contexto: Un ingeniero afirma que la tasa de defectos es del 5%. Se inspeccionan 300 productos, 10 defectuosos.

🔢 Datos: n = 300, éxitos = 10, p₀ = 0.05, p̂ = 10/300 = 0.0333

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: p = 0.05; H₁: p ≠ 0.05

  2. Estadístico de prueba:

    • SE = √(0.05×0.95/300) = √(0.0475/300) = √0.0001583 = 0.01258
    • z = (0.0333 - 0.05) / 0.01258 = -1.33
  3. Valor crítico: z₀.₀₂₅ = ±1.96

  4. Decisión: |z| = 1.33 < 1.96 → No se rechaza H₀

  5. Conclusión: No hay evidencia suficiente para afirmar que la tasa de defectos difiere del 5%.

Solución en R:

prop.test(10, 300, p = 0.05)

Solución en Python:

exitos = 10
n = 300
p0 = 0.05
z_stat, p_valor = proportions_ztest(exitos, n, p0, alternative='two-sided')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.6 05. PRUEBA DE HIPÓTESIS PARA DIFERENCIA DE PROPORCIONES

1.6.1 Aplicación 1: Ciencias de la Salud - Comparación de vacunas

📝 Contexto: Se comparan dos vacunas: Vacuna A (n=300, 270 protegidos) y Vacuna B (n=320, 300 protegidos).

🔢 Datos: p̂_A = 270/300 = 0.90, p̂_B = 300/320 = 0.9375

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: p_A = p_B; H₁: p_A ≠ p_B

  2. Proporción combinada:

    • p̂ = (270+300)/(300+320) = 570/620 = 0.9194
    • SE = √[p̂(1-p̂)(1/n₁ + 1/n₂)] = √[0.9194×0.0806×(1/300+1/320)] = √[0.0741×(0.00333+0.003125)] = √[0.0741×0.006455] = √0.000478 = 0.02187
  3. Estadístico de prueba:

    • z = (0.90 - 0.9375) / 0.02187 = -1.72
  4. Valor crítico: z₀.₀₂₅ = ±1.96

  5. Decisión: |z| = 1.72 < 1.96 → No se rechaza H₀

  6. Conclusión: No hay diferencia significativa entre las vacunas.

Solución en R:

prop.test(c(270, 300), c(300, 320))

Solución en Python:

from statsmodels.stats.proportion import proportions_ztest
exitos = [270, 300]
n = [300, 320]
z_stat, p_valor = proportions_ztest(exitos, n, alternative='two-sided')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.6.2 Aplicación 2: Psicología - Efectividad de terapias

📝 Contexto: Se compara terapia cognitiva (n=120, 90 mejoran) vs farmacológica (n=130, 110 mejoran).

🔢 Datos: p̂_cog = 90/120 = 0.75, p̂_farm = 110/130 = 0.846

📐 Solución analítica (unilateral inferior):

  1. Hipótesis: H₀: p_cog ≥ p_farm; H₁: p_cog < p_farm

  2. Proporción combinada:

    • p̂ = (90+110)/(120+130) = 200/250 = 0.80
    • SE = √[0.80×0.20×(1/120+1/130)] = √[0.16×(0.00833+0.00769)] = √[0.16×0.01602] = √0.002563 = 0.0506
  3. Estadístico de prueba:

    • z = (0.75 - 0.846) / 0.0506 = -1.90
  4. Valor crítico: z₀.₀₅ = -1.645

  5. Decisión: z = -1.90 < -1.645 → Se rechaza H₀

  6. Conclusión: La terapia farmacológica es más efectiva.

Solución en R:

prop.test(c(90, 110), c(120, 130), alternative = "less")

Solución en Python:

exitos = [90, 110]
n = [120, 130]
z_stat, p_valor = proportions_ztest(exitos, n, alternative='smaller')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.6.3 Aplicación 3: Comunicación Social - Engagement por red social

📝 Contexto: Comparar proporción de usuarios activos en Instagram (n=400, 300 activos) vs TikTok (n=450, 360 activos).

🔢 Datos: p̂_ig = 300/400 = 0.75, p̂_tt = 360/450 = 0.80

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: p_ig = p_tt; H₁: p_ig ≠ p_tt

  2. Proporción combinada:

    • p̂ = (300+360)/(400+450) = 660/850 = 0.7765
    • SE = √[0.7765×0.2235×(1/400+1/450)] = √[0.1735×(0.0025+0.00222)] = √[0.1735×0.00472] = √0.000819 = 0.0286
  3. Estadístico de prueba:

    • z = (0.75 - 0.80) / 0.0286 = -1.75
  4. Valor crítico: z₀.₀₂₅ = ±1.96

  5. Decisión: |z| = 1.75 < 1.96 → No se rechaza H₀

  6. Conclusión: No hay diferencia significativa entre plataformas.

Solución en R:

prop.test(c(300, 360), c(400, 450))

Solución en Python:

exitos = [300, 360]
n = [400, 450]
z_stat, p_valor = proportions_ztest(exitos, n, alternative='two-sided')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.6.4 Aplicación 4: Negocios - Efectividad de campañas publicitarias

📝 Contexto: Campaña A (n=500, 120 compras) vs Campaña B (n=550, 150 compras).

🔢 Datos: p̂_A = 120/500 = 0.24, p̂_B = 150/550 = 0.2727

📐 Solución analítica (unilateral superior para B):

  1. Hipótesis: H₀: p_B ≤ p_A; H₁: p_B > p_A

  2. Proporción combinada:

    • p̂ = (120+150)/(500+550) = 270/1050 = 0.2571
    • SE = √[0.2571×0.7429×(1/500+1/550)] = √[0.1910×(0.002+0.001818)] = √[0.1910×0.003818] = √0.000729 = 0.0270
  3. Estadístico de prueba:

    • z = (0.2727 - 0.24) / 0.0270 = 1.21
  4. Valor crítico: z₀.₀₅ = 1.645

  5. Decisión: z = 1.21 < 1.645 → No se rechaza H₀

  6. Conclusión: No hay evidencia de que la Campaña B sea mejor.

Solución en R:

prop.test(c(150, 120), c(550, 500), alternative = "greater")

Solución en Python:

exitos = [150, 120]
n = [550, 500]
z_stat, p_valor = proportions_ztest(exitos, n, alternative='larger')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.6.5 Aplicación 5: Ingeniería - Calidad de proveedores

📝 Contexto: Comparar tasa de defectos: Proveedor 1 (n=200, 12 defectos) vs Proveedor 2 (n=250, 20 defectos).

🔢 Datos: p̂₁ = 12/200 = 0.06, p̂₂ = 20/250 = 0.08

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: p₁ = p₂; H₁: p₁ ≠ p₂

  2. Proporción combinada:

    • p̂ = (12+20)/(200+250) = 32/450 = 0.0711
    • SE = √[0.0711×0.9289×(1/200+1/250)] = √[0.0660×(0.005+0.004)] = √[0.0660×0.009] = √0.000594 = 0.0244
  3. Estadístico de prueba:

    • z = (0.06 - 0.08) / 0.0244 = -0.82
  4. Valor crítico: z₀.₀₂₅ = ±1.96

  5. Decisión: |z| = 0.82 < 1.96 → No se rechaza H₀

  6. Conclusión: No hay diferencia significativa en calidad.

Solución en R:

prop.test(c(12, 20), c(200, 250))

Solución en Python:

exitos = [12, 20]
n = [200, 250]
z_stat, p_valor = proportions_ztest(exitos, n, alternative='two-sided')
print(f"z = {z_stat:.4f}, p = {p_valor:.4f}")

1.7 06. PRUEBA DE HIPÓTESIS PARA LA VARIANZA

1.7.1 Aplicación 1: Ciencias de la Salud - Control de calidad en glucómetro

📝 Contexto: Un glucómetro debe tener varianza ≤ 25 (mg/dL)². Muestra de 20 mediciones: varianza = 36 (mg/dL)².

🔢 Datos: n = 20, s² = 36, σ₀² = 25

📐 Solución analítica (unilateral superior):

  1. Hipótesis: H₀: σ² ≤ 25; H₁: σ² > 25

  2. Estadístico de prueba:

    • χ² = (n-1)s²/σ₀² = 19×36/25 = 684/25 = 27.36
    • gl = 19
  3. Valor crítico: χ²₀.₀₅,₁₉ = 30.14

  4. Decisión: χ² = 27.36 < 30.14 → No se rechaza H₀

  5. Conclusión: No hay evidencia de que la varianza exceda el límite.

Solución en R:

library(EnvStats)
varTest(rnorm(20, mean = 100, sd = 6), alternative = "greater", sigma.squared = 25)

Solución en Python:

from scipy.stats import chi2
n = 20
var_muestra = 36
var_poblacional = 25
chi2_stat = (n-1) * var_muestra / var_poblacional
p_valor = 1 - chi2.cdf(chi2_stat, df=n-1)
print(f"χ² = {chi2_stat:.4f}, p = {p_valor:.4f}")

1.7.2 Aplicación 2: Ingeniería - Homogeneidad de resistencia

📝 Contexto: Un proceso debe producir varianza ≤ 100 MPa². Muestra de 25 piezas: varianza = 144 MPa².

🔢 Datos: n = 25, s² = 144, σ₀² = 100

📐 Solución analítica (unilateral superior):

  1. Hipótesis: H₀: σ² ≤ 100; H₁: σ² > 100

  2. Estadístico de prueba:

    • χ² = 24×144/100 = 3456/100 = 34.56
    • gl = 24
  3. Valor crítico: χ²₀.₀₅,₂₄ = 36.42

  4. Decisión: χ² = 34.56 < 36.42 → No se rechaza H₀

  5. Conclusión: La varianza está dentro del límite aceptable.

Solución en Python:

n = 25
var_muestra = 144
var_poblacional = 100
chi2_stat = (n-1) * var_muestra / var_poblacional
p_valor = 1 - chi2.cdf(chi2_stat, df=n-1)
print(f"χ² = {chi2_stat:.4f}, p = {p_valor:.4f}")

1.8 07. PRUEBA DE HIPÓTESIS PARA EL COCIENTE DE VARIANZAS

1.8.1 Aplicación 1: Psicología - Comparación de variabilidad en tests

📝 Contexto: Comparar variabilidad en test de ansiedad entre hombres (n=16, var=64) y mujeres (n=20, var=36).

🔢 Datos: s₁² = 64, n₁ = 16; s₂² = 36, n₂ = 20

📐 Solución analítica (bilateral):

  1. Hipótesis: H₀: σ₁²/σ₂² = 1; H₁: σ₁²/σ₂² ≠ 1

  2. Estadístico de prueba:

    • F = s₁²/s₂² = 64/36 = 1.78
    • gl₁ = 15, gl₂ = 19
  3. Valor crítico: F₀.₀₂₅,₁₅,₁₉ = 2.62 (aprox)

  4. Decisión: F = 1.78 < 2.62 → No se rechaza H₀

  5. Conclusión: No hay diferencia significativa en variabilidad.

Solución en R:

var.test(rnorm(16, 50, 8), rnorm(20, 50, 6))

Solución en Python:

from scipy.stats import f
var1 = 64
var2 = 36
n1 = 16
n2 = 20
f_stat = var1 / var2
p_valor = 2 * min(f.cdf(f_stat, n1-1, n2-1), 1 - f.cdf(f_stat, n1-1, n2-1))
print(f"F = {f_stat:.4f}, p = {p_valor:.4f}")

1.9 📋 RESUMEN DE FÓRMULAS

Prueba Estadístico Fórmula
1 muestra (media) t t = (x̄ - μ₀) / (s/√n)
2 muestras indep. t t = (x̄₁ - x̄₂) / √(s₁²/n₁ + s₂²/n₂)
Muestras pareadas t t = d̄ / (sd/√n)
1 proporción z z = (p̂ - p₀) / √(p₀(1-p₀)/n)
2 proporciones z z = (p̂₁ - p̂₂) / √(p̂(1-p̂)(1/n₁+1/n₂))
Varianza χ² χ² = (n-1)s²/σ₀²
Cociente varianzas F F = s₁²/s₂²

1.10 📊 CÓDIGO COMPLETO EN R Y PYTHON PARA CADA PRUEBA

1.10.1 R - Código base para pruebas paramétricas

# 1. Una media
t.test(datos, mu = valor, alternative = "two.sided")

# 2. Dos medias independientes
t.test(grupo1, grupo2, alternative = "two.sided", var.equal = FALSE)

# 3. Muestras pareadas
t.test(antes, despues, paired = TRUE)

# 4. Una proporción
prop.test(exitos, n, p = p0)

# 5. Dos proporciones
prop.test(c(exitos1, exitos2), c(n1, n2))

# 6. Varianza
library(EnvStats)
varTest(datos, sigma.squared = sigma0)

# 7. Cociente de varianzas
var.test(grupo1, grupo2)

1.10.2 Python - Código base para pruebas paramétricas

import numpy as np
import scipy.stats as stats
from statsmodels.stats.proportion import proportions_ztest

# 1. Una media
stats.ttest_1samp(datos, valor)

# 2. Dos medias independientes
stats.ttest_ind(grupo1, grupo2)

# 3. Muestras pareadas
stats.ttest_rel(antes, despues)

# 4. Una proporción
proportions_ztest(exitos, n, p0)

# 5. Dos proporciones
proportions_ztest([exitos1, exitos2], [n1, n2])

# 6. Varianza
chi2_stat = (n-1) * var_muestra / var_poblacional
p_valor = 1 - stats.chi2.cdf(chi2_stat, df=n-1)

# 7. Cociente de varianzas
f_stat = var1 / var2
p_valor = 2 * min(stats.f.cdf(f_stat, n1-1, n2-1), 
                   1 - stats.f.cdf(f_stat, n1-1, n2-1))

📌 RECOMENDACIONES FINALES

• Siempre verificar supuestos de normalidad y homogeneidad de varianzas
• Para n > 30, usar aproximación normal (z) cuando se conoce σ
• Para muestras pequeñas (n < 30), usar t de Student
• Las pruebas paramétricas requieren datos numéricos continuos o al menos intervalares
• El nivel de significancia estándar es α = 0.05, pero ajustar según contexto


📊 Pruebas de Hipótesis Aplicadas | Material educativo para Ciencias de la Salud, Psicología, Comunicación, Negocios, Administración e Ingeniería