¿Qué es la prueba G?
sobes.tech AI
Respuesta de la IA
La prueba G (o prueba G, prueba χ² de relación de verosimilitud) es una prueba estadística utilizada para verificar hipótesis sobre la distribución de frecuencias en datos categóricos. En el contexto de QA, puede aplicarse para comparar distribuciones de defectos por categorías (por ejemplo, tipo, prioridad) en diferentes compilaciones de productos, entornos de prueba o al comparar resultados de dos enfoques diferentes de prueba, para determinar si existe una diferencia estadísticamente significativa. Es una alternativa a la prueba χ² de Pearson, especialmente útil con muestras pequeñas.
Pasos principales:
- Formulación de las hipótesis nula ($H_0$) y alternativa ($H_1$).
- $H_0$: No hay diferencia estadísticamente significativa en la distribución de frecuencias entre los grupos analizados.
- $H_1$: Existe una diferencia estadísticamente significativa.
- Construcción de la tabla de contingencia con frecuencias observadas.
- Cálculo de las frecuencias esperadas para cada celda de la tabla bajo la hipótesis $H_0$.
- Cálculo de la estadística G mediante la fórmula: $G = 2 \sum_{i} O_i \ln(O_i/E_i)$ donde $O_i$ es la frecuencia observada, $E_i$ la frecuencia esperada.
- Determinación del número de grados de libertad ($df$). Para una tabla de contingencia $R \times C$ ($R$ filas, $C$ columnas): $df = (R-1)(C-1)$.
- Comparación del valor calculado de G con el valor crítico de la tabla G-distribución o uso del valor p. Si G > valor crítico o p < nivel de significancia ($\alpha$), se rechaza $H_0$.
Ejemplo de aplicación en QA:
Comparación de la distribución de tipos de defectos en dos entornos de prueba diferentes.
| Tipo de defecto | Entorno A (Observado) | Entorno B (Observado) |
|---|---|---|
| Funcional | 50 | 30 |
| UI/UX | 20 | 15 |
| Rendimiento | 10 | 5 |
| Total | 80 | 50 |
Luego se calculan las frecuencias esperadas y el valor de G.
Herramientas para el cálculo:
- Python: bibliotecas
scipy.stats. - R: funciones integradas.
- Paquetes estadísticos: SPSS, R, SAS.
# Ejemplo de uso en Python con scipy
import numpy as np
from scipy.stats import chi2_contingency # La prueba G está implementada en chi2_contingency en scipy mediante el parámetro lambda='log-likelihood'
# Tabla de frecuencias observadas (datos de ejemplo)
observed = np.array([[50, 30],
[20, 15],
[10, 5]])
# Realización de la prueba G
# lambda='log-likelihood' indica el uso de la prueba G
g_statistic, p_value, dof, expected = chi2_contingency(observed, lambda_='log-likelihood')
print(f"Estadística G: {g_statistic:.4f}")
print(f"Valor p: {p_value:.4f}")
print(f"Grados de libertad (dof): {dof}")
print("Frecuencias esperadas:")
print(expected)
# Verificación de hipótesis con nivel de significancia 0.05
alpha = 0.05
if p_value < alpha:
print("Resultado: Rechazamos la hipótesis nula - existe una diferencia estadísticamente significativa.")
else:
print("Resultado: No rechazamos la hipótesis nula - no hay diferencia estadísticamente significativa.")