Librerias

In [ ]:
# Importa las bibliotecas necesarias
    import numpy as np
    import pandas as pd
    from scipy.stats import f_oneway
    from scipy.stats import ttest_rel
    from statsmodels.stats.anova import AnovaRM
    

1. Prueba T Student para datos relacionados y no relacionados.

¿Que es?: La prueba t para muestras relacionadas, también conocida como t de Student para muestras pareadas, se utiliza para comparar las medias de dos conjuntos de datos relacionados. En el ejemplo, se compara un conjunto de datos antes de un tratamiento con otro conjunto después del tratamiento.

¿Para qué sirve?: Esta prueba es útil cuando estás interesado en determinar si hay una diferencia significativa entre las medias de dos conjuntos de datos relacionados. Puede ser aplicada en situaciones donde las mediciones se realizan en los mismos individuos o elementos en diferentes momentos.

¿Cuándo debe utilizarse?: Deberías utilizar la prueba t para muestras relacionadas cuando tengas dos conjuntos de datos emparejados y estés interesado en evaluar si hay evidencia estadística de que hay una diferencia significativa entre las medias de las dos poblaciones.

Hipótesis de una cola (unilateral):1. Hipótesis de una cola (unilateral):

  • (H_0): No hay diferencia entre las medias $ \mu_1 - \mu_2 = 0\ $.
  • (H_1): Hay una diferencia significativa y direccional $\mu_1 - \mu_2 > 0$ o $\mu_1 - \mu_2 < 0$

Hipótesis de dos colas (bilateral):

  • (H_0): No hay diferencia entre las medias $\mu_1 - \mu_2 = 0$.
  • (H_1): Hay una diferencia significativa $\mu_1 - \mu_2 \neq 0$.

Cuando:

  • Se están comparando dos conjuntos de datos relacionados, como mediciones antes y después de un tratamiento.
In [ ]:
# Genera dos conjuntos de datos relacionados (antes y después de un tratamiento, por ejemplo)
    antes_tratamiento = np.array([25, 28, 30, 35, 27])
    despues_tratamiento = np.array([22, 30, 32, 38, 29])
    
    # Realiza la prueba t para muestras relacionadas
    statistic, p_valor = ttest_rel(antes_tratamiento, despues_tratamiento)
    
    # Imprime los resultados
    print("Estadístico de prueba t:", statistic)
    print("Valor p:", p_valor)
    
    # Interpreta los resultados
    if p_valor < 0.05:
        print("Hay evidencia estadística para rechazar la hipótesis nula.")
    else:
        print("No hay suficiente evidencia para rechazar la hipótesis nula.")
    
Estadístico de prueba t: -1.1239029738980326
    Valor p: 0.323940830991843
    No hay suficiente evidencia para rechazar la hipótesis nula.
    

2. Prueba F. ANOVA una vía.

¿Qué es?: El análisis de varianza (ANOVA) y la prueba F se utilizan para comparar las medias de más de dos grupos. En el ejemplo, se tienen tres grupos diferentes ('grupo1', 'grupo2', 'grupo3') y se realiza una prueba F para determinar si hay diferencias significativas entre las medias.

¿Para qué sirve?: El ANOVA es útil cuando se tienen varios grupos y se desea saber si al menos uno de ellos tiene una media significativamente diferente. La prueba F se utiliza para evaluar si las varianzas entre los grupos son significativamente diferentes.

¿Cuándo debe utilizarse?: Deberías utilizar ANOVA y la prueba F cuando tengas más de dos grupos y desees evaluar si hay diferencias significativas entre al menos dos de ellos. Si el resultado de ANOVA indica que hay diferencias significativas, se pueden realizar pruebas post hoc para identificar qué grupos difieren entre sí.

Hipótesis de una cola (unilateral):

  • (H_0): No hay diferencia entre las medias de los grupos $\mu_1 = \mu_2 = \mu_3$.
  • (H_1): Al menos un grupo tiene una media mayor o menor $\mu_1 > \mu_2 > \mu_3$ o $\mu_1 < \mu_2 < \mu_3$.

Hipótesis de dos colas (bilateral):

  • (H_0): No hay diferencia entre las medias de los grupos $\mu_1 = \mu_2 = \mu_3.$
  • (H_1): Al menos un grupo tiene una media diferente $\mu_1 \neq \mu_2 \neq \mu_3.$

Cuando:

  • Se están comparando tres o más grupos independientes.
In [ ]:
# Genera tres conjuntos de datos para el ejemplo (puedes adaptar esto según tus datos)
    grupo1 = np.array([30, 35, 28, 32, 38])
    grupo2 = np.array([25, 27, 30, 34, 29])
    grupo3 = np.array([22, 26, 24, 28, 30])
    
    # Realiza la prueba de ANOVA
    estadistico_anova, p_valor_anova = f_oneway(grupo1, grupo2, grupo3)
    
    # Imprime los resultados
    print("Estadístico de prueba ANOVA:", estadistico_anova)
    print("Valor p ANOVA:", p_valor_anova)
    
    # Interpreta los resultados
    if p_valor_anova < 0.05:
        print("Hay evidencia estadística para rechazar la hipótesis nula.")
    else:
        print("No hay suficiente evidencia para rechazar la hipótesis nula.")
    
Estadístico de prueba ANOVA: 4.391420911528148
    Valor p ANOVA: 0.0370559441269642
    Hay evidencia estadística para rechazar la hipótesis nula.
    

3. Prueba F. ANOVA 2 vías.

¿Qué es?: El análisis de varianza de doble vía (ANOVA de doble vía) y la prueba F se utilizan para comparar las medias cuando hay dos factores o variables independientes. En el ejemplo, se tienen dos factores ('Tratamiento' y 'Género').

¿Para qué sirve?: El ANOVA de doble vía es útil cuando deseas evaluar la influencia de dos factores simultáneamente en la variabilidad de los datos. Permite determinar si hay interacciones significativas entre los factores y cómo afectan a la variable de interés.

¿Cuándo debe utilizarse?: Deberías utilizar el ANOVA de doble vía cuando tengas dos factores que crees que pueden influir en la variable de interés y desees examinar cómo interactúan entre sí. Esta prueba es apropiada cuando los datos se pueden clasificar en dos dimensiones, por ejemplo, tratamientos y género en el ejemplo proporcionado.

Hipótesis de una cola (unilateral) para cada factor:

  • (H_0): No hay efecto principal del factor o interacción.
  • (H_1): Hay un efecto principal significativo o interacción $\mu_1 > \mu_2$ o $\mu_1 < \mu_2.$

Hipótesis de dos colas (bilateral) para cada factor:

  • (H_0): No hay efecto principal del factor o interacción.
  • (H_1): Hay un efecto principal significativo o interacción $\mu_1 \neq \mu_2.$

Cuando:

  • Se están evaluando dos factores que podrían influir en la variable de interés, y se desea examinar cómo interactúan entre sí.
In [ ]:
# Genera datos de ejemplo con dos factores: 'Tratamiento' y 'Género'
    np.random.seed(42)
    
    # Crear un DataFrame con datos de ejemplo
    datos = pd.DataFrame({
        'Tratamiento': np.repeat(['A', 'B', 'C'], 20),
        'Género': np.tile(['Hombre', 'Mujer'], 30),
        'Resultado': np.random.normal(loc=50, scale=10, size=60)
    })
    
    # Agrega los datos para manejar múltiples observaciones por sujeto y celda
    datos_agregados = datos.groupby(['Tratamiento', 'Género']).agg({'Resultado': 'mean'}).reset_index()
    
    # Realiza un ANOVA de doble vía usando scipy.stats
    modelo_anova_scipy = AnovaRM(data=datos_agregados, depvar='Resultado', subject='Género', within=['Tratamiento'])
    resultado_anova_scipy = modelo_anova_scipy.fit()
    
    # Imprime los resultados usando scipy.stats
    print("ANOVA de doble vía usando scipy.stats:")
    print(resultado_anova_scipy)
    
ANOVA de doble vía usando scipy.stats:
                     Anova
    ========================================
                F Value Num DF Den DF Pr > F
    ----------------------------------------
    Tratamiento  2.3387 2.0000 2.0000 0.2995
    ========================================