top of page

Rachas

Prueba de rachas y aleatoriedad

Rachas, prueba de rachas y criterios

Rachas, prueba de rachas y criterios

Rachas

Una racha (Run) es una secuencia de datos que tienen la misma característica; la secuencia es precedida y seguida por datos con una característica diferente o por ningún dato en absoluto. Una racha es en consecuencia, una secuencia consecutiva de observaciones en una serie de datos que comparten una característica común.


Ejemplo:

En una serie de datos compuesta por valores positivos y negativos, una racha sería una secuencia de valores que son todos positivos o todos negativos sin interrupción.

Imaginemos la siguiente secuencia de resultados: +,+,−,+,−,−,−. Aquí, podemos identificar las rachas de la siguiente manera:

  • Primer racha: +,+ (dos valores positivos consecutivos)

  • Segunda racha: − (un valor negativo)

  • Tercera racha: + (un valor positivo)

  • Cuarta racha: −,−,− (tres valores negativos consecutivos)

En este caso, existen 4 rachas en la secuencia. Cada cambio de signo marca el fin de una racha y el comienzo de una nueva.


Prueba de rachas

La prueba de rachas (o prueba de rachas aleatorias, runs test o tuns test for randomness) es una prueba estadística que evalúa si una secuencia de observaciones está ordenada de manera aleatoria o si existe algún tipo de patrón o tendencia. Se usa comúnmente en estadística no paramétrica para secuencias binarias, pero también puede aplicarse a datos ordinales o categóricos. La prueba de rachas utiliza el número de rachas en una secuencia de datos muestrales para probar la aleatoriedad del orden de los datos.


La prueba de rachas responde preguntas como:

  • ¿Los eventos en una secuencia ocurren al azar?

  • ¿Existen patrones de agrupamiento en los datos?

Principio fundamental de la prueba de rachas

El principio fundamental de la prueba de rachas puede establecerse brevemente como sigue:


Rechace la aleatoriedad si el número de rachas es muy bajo o muy alto.


  • Ejemplo: La secuencia de género MMMMMHHHHH no es aleatoria pues- to que tiene sólo dos rachas, es decir, el número de rachas es muy bajo.

  • Ejemplo: La secuencia de género MHMHMHMHMH no es aleatoria puesto que existen 10 rachas, lo cual se considera un número muy alto.

Los criterios exactos para determinar si un número de rachas es muy alto o muy bajo se encuentran en el recuadro de la figura, que resume los elementos clave de la prueba de rachas para detectar aleatoriedad. 

Es importante señalar que la prueba de rachas para detectar aleatoriedad se basa en el orden en el que se presentan los datos; no está basada en la frecuencia de los datos. Por ejemplo, una secuencia de 3 hombres y 20 mujeres podría parecer aleatoria, pero la prueba de rachas no se ocupa del problema de si 3 hombres y 20 mujeres constituyen una muestra sesgada (con un número desproporcionadamente mayor de mujeres)


Requisitos

  1. Los datos muestrales están acomodados de acuerdo con algún esquema de orden, por ejemplo, el orden en el que se obtuvieron los valores muestrales.

  2. Cada valor de los datos se puede categorizar en una de dos categorías separadas

  3. (como hombre y mujer).

Procedimiento de la Prueba de Rachas

Para realizar una prueba de rachas, sigue estos pasos:


 1. Conteo de rachas e hipótesis

  • Identificar y contar las rachas en la secuencia de datos. 

  • Definir las Hipótesis:

    • Hipótesis nula (H₀): La secuencia de datos es aleatoria.

    • Hipótesis alternativa (H₁): La secuencia de datos no es aleatoria.


2. Calculo del estadístico de prueba

Sea n1 el número de elementos del primer tipo (por ejemplo, valores positivos) y n2 el número de elementos del segundo tipo (por ejemplo, valores negativos).

La cantidad esperada de rachas, E(R), en una secuencia aleatoria viene dada por:

E(R) = {{2 n1 n2} / {n1 +n2}} + 1


La varianza de la cantidad de rachas, Var(R), es: 

Var(R) = {2 n1 n2 (2 n1 n2 − n1 − n2)} / {(n1 + n2)² (n1 + n2 − 1)}


3. Converción del número de rachas observado (R) en una puntuación Z:

  • Cuando el tamaño de muestra es grande (usualmente n1 y n2 > 10 (o n1 + n2 > 20, la distribución del número de rachas R puede aproximarse a una distribución normal, y se calcula la puntuación Z: 

Z = {R − E(R)} / {√Var(R)}

  • Usando la puntuación Z y una tabla de valores críticos de la distribución normal, o un código python se puede decidir si se acepta o rechaza la hipótesis nula.


4. Interpretación:

  • Si el valor de Z es significativo (por ejemplo, fuera del rango crítico en una prueba de significancia típica), se rechaza la hipótesis nula. Esto sugiere que la secuencia no es aleatoria y que existe un patrón en la disposición de los datos.

  • Si el valor de Z no es significativo, no hay evidencia suficiente para rechazar la hipótesis nula; por lo tanto, no se puede concluir que la secuencia tenga un patrón o tendencia.


4.1 Nivel de significancia

Para definir si Z es o no significativo hay que definir primero el nivel de significancia.

  • El nivel de significancia es usaualmente ɑ = 0.05 con lo que el Zcrítico suele ser ±1.96.

4.2 Comparación e interpretación

Si ∣Z∣ > 1.96, se rechaza la hipótesis nula (H₀), lo que sugiere que la secuencia no es aleatoria.
Si ∣Z∣ ≤ 1.96, no se rechaza H₀, indicando que no hay evidencia para concluir que la secuencia no es aleatoria.


Ejemplo

Supongamos que estamos analizando la siguiente secuencia de resultados positivos y negativos:

+,−,+,+,−,−,+,−

  • Paso 1

    • Contar rachas.Rachas: +,−,+,+,−,−,+,− → Total: 6 rachas.

  • Paso 2

    • Calcular el  estadístico de prueba.

      • Contamos los positivos (n1 = 4) y los negativos (n2 = 4).

E(R) = {2 ⋅ 4⋅ 4} / {4+4} + 1 = 5
Var(R) = 2 ⋅ 4 ⋅ 4 (2 ⋅ 4 ⋅ 4 − 4 − 4) / (4 + 4)² (4 + 4 − 1) = 1

  • Paso 3

    • Calcular Z:

Z = 6 − 5 / √1 = 1


  • Paso 4

    • Interpretación:

      • Para un nivel de significancia del 5%, el valor crítico de Z es aproximadamente ±1.96.

      • Como Z = 1 no supera este valor crítico, no rechazamos la hipótesis nula y concluimos que no hay evidencia suficiente para afirmar que la secuencia no es aleatoria.


Aplicaciones y usos de la Prueba de Rachas

La prueba de rachas se aplica en situaciones como:

  1. Control de calidad: Verificar si los defectos en una producción ocurren aleatoriamente o si están agrupados.

  2. Estudios de comportamiento: Analizar si ciertos comportamientos ocurren de manera aleatoria.

  3. Series de tiempo: Determinar si una serie de datos, como precios de acciones, muestra un patrón o es aleatoria.


Ejemplos en python


1. Ejemplo por formulas

Supongamos que estamos analizando la secuencia que resolvimos anteriormente, pero en lugar de hacer los cálculos manuales, hacemos los calculos de las fórmulas en código python. Este código se comparte en jupyter notebook en github y queda como sigue a continuación.


import numpy as np

# Datos del ejemplo

n1 = 4 # Número de '+'

n2 = 4 # Número de '-'

R = 6 # Número de rachas observadas

# Cálculo del número esperado de rachas E(R) y su varianza

E_R = (2 * n1 * n2) / (n1 + n2) + 1

Var_R = (2 * n1 * n2 * (2 * n1 * n2 - n1 - n2)) / ((n1 + n2)**2 * (n1 + n2 - 1))

# Estadístico Z

Z = (R - E_R) / np.sqrt(Var_R)

# Imprimir resultados

print(f"E(R) = {E_R}, Var(R) = {Var_R}, Z = {Z}")


Y los resultados quedan:


E(R) = 5.0, Var(R) = 1.7142857142857142, Z = 0.7637626158259734


Puede verse que los resultados son similares y lo que es más importante no llevan a la misma interpretación y conclusión.


2. Ejemplo por statsmodels

Definimos la secuencia de éxitos (+) y fracasos (-) como 1 y 0, respectivamente:

[1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0]

Podemos resolverlo en python con statsmodels sin necesidad de siquiera contar las rachas:


import numpy as np

from statsmodels.sandbox.stats.runs import runstest_1samp


# Definimos la secuencia de éxitos (+) y fracasos (-) como 1 y 0, respectivamente

data = np.array([1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0])


# Realizamos la prueba de rachas

Z, p_value = runstest_1samp(data, correction=False)


# Resultados

print(f"Estadístico Z: {Z}")

print(f"Valor p: {p_value}")


El resultado es:

Estadístico Z: 0.5108070528032165 Valor p: 0.6094861701154317


Interpretación

  1. ∣Z∣ ≤ 1.96, no se rechaza H₀, indicando que no hay evidencia para concluir que la secuencia no es aleatoria.

  2. El valor p >> 0.05 y esto sugiere que no tenemos suficiente evidencia para rechazar la aleatoriedad.

  3. Los resultados de los dos puntos anteriores son coherentes. Tanto por el estadístico Z como por el valor p la secuencia parece ser aleatoria.

  4. Parece ser que la secuencia de éxitos y fracasos es aleatoria.

bottom of page