Comment pouvez-vous savoir si les bonnes performances sont consécutives?

10

Je résous les cubes de Rubik comme passe-temps. J'enregistre le temps qu'il m'a fallu pour résoudre le cube en utilisant un logiciel, et maintenant j'ai des données de milliers de résolutions. Les données sont essentiellement une longue liste de nombres représentant le temps pris par chaque résolution séquentielle (par exemple 22.11, 20.66, 21.00, 18.74, ...)

Le temps qu'il me faut pour résoudre le cube varie naturellement quelque peu de résoudre à résoudre, donc il y a de bonnes résolutions et de mauvaises résolutions.

Je veux savoir si je "deviens chaud" - si les bonnes résolutions arrivent par séquences. Par exemple, si je viens d'avoir quelques bonnes résolutions consécutives, est-il plus probable que ma prochaine résolution soit bonne?

Quel type d'analyse serait approprié? Je peux penser à quelques choses spécifiques à faire, par exemple, traiter les résolutions comme un processus de Markov et voir dans quelle mesure une résolution prédit la suivante et la comparer à des données aléatoires, voir combien de temps les plus longues séquences de résolutions consécutives sont inférieures à la médiane pour la dernière 100 le sont et par rapport à ce qui serait attendu dans des données aléatoires, etc. Je ne suis pas sûr de la perspicacité de ces tests, et je me demande s'il existe des approches bien développées pour ce type de problème.

Mark Eichenlaub
la source

Réponses:

8

Le test des courses de Wald-Wolfowitz semble être un candidat possible, où une "course" est ce que vous avez appelé une "séquence". Cela nécessite des données dichotomiques, vous devez donc étiqueter chaque résolution comme "mauvaise" vs "bonne" selon un certain seuil - comme le temps médian comme vous l'avez suggéré. L'hypothèse nulle est que les «bonnes» et les «mauvaises» résolutions alternent de manière aléatoire. Une hypothèse alternative unilatérale correspondant à votre intuition est que le «bon» résout les agrégats en longues séquences, ce qui implique qu'il y a moins de séries que prévu avec des données aléatoires. La statistique de test est le nombre d'exécutions. Dans R:

> N      <- 200                          # number of solves
> DV     <- round(runif(N, 15, 30), 1)   # simulate some uniform data
> thresh <- median(DV)                   # threshold for binary classification

# do the binary classification
> DVfac <- cut(DV, breaks=c(-Inf, thresh, Inf), labels=c("good", "bad"))
> Nj    <- table(DVfac)                  # number of "good" and "bad" solves
> n1    <- Nj[1]                         # number of "good" solves
> n2    <- Nj[2]                         # number of "bad" solves
> (runs <- rle(as.character(DVfac)))     # analysis of runs
Run Length Encoding
lengths: int [1:92] 2 1 2 4 1 4 3 4 2 5 ...
values : chr [1:92] "bad" "good" "bad" "good" "bad" "good" "bad" ...

> (nRuns <- length(runs$lengths))        # test statistic: observed number of runs
[1] 92

# theoretical maximum of runs for given n1, n2
> (rMax <- ifelse(n1 == n2, N, 2*min(n1, n2) + 1))
199 

Lorsque vous n'avez que quelques observations, vous pouvez calculer les probabilités exactes pour chaque nombre d'exécutions sous l'hypothèse nulle. Sinon, la distribution du "nombre d'exécutions" peut être approximée par une distribution normale standard.

> (muR  <- 1 + ((2*n1*n2) / N))                     # expected value
100.99 

> varR  <- (2*n1*n2*(2*n1*n2 - N)) / (N^2 * (N-1))  # theoretical variance
> rZ    <- (nRuns-muR) / sqrt(varR)                 # z-score
> (pVal <- pnorm(rZ, mean=0, sd=1))                 # one-sided p-value
0.1012055

La valeur de p correspond à l'hypothèse alternative unilatérale selon laquelle les «bonnes» résolutions sont consécutives.

caracal
la source
3
Très bonne réponse. Cependant, je serais réticent à convertir une variable continue en une variable binaire. Beaucoup de variabilité significative serait perdue.
Jeromy Anglim
@jeromy - c'est un bon point en général, mais il semblerait que pour cette question spécifique, le binning ne jette pas beaucoup d'informations - d'autant plus que "bon" et "mauvais" ne sont définis que comme une dichotomie dans la question, pas comme un continuum.
probabilitéislogic
@probabilityislogic Je comprends que @mark peut avoir opérationnalisé le temps de solution comme "bon" ou "mauvais" en fonction de quel côté d'un certain seuil se situe le temps de solution. Cependant, où que se situe le seuil, il est sûrement un peu arbitraire. Si le seuil était de 5 minutes, sûrement 5 minutes et 1 seconde ne différeraient pas beaucoup de 4 minutes et 59 secondes en "qualité". J'imagine que «bon» et «mauvais» sont des catégories floues par rapport au temps d'achèvement continu.
Jeromy Anglim
Mais toute définition de «bon» et de «mauvais» est arbitraire - en raison de la nature relative de ces mots. Que vous laissiez "les données" résoudre l'ambiguïté, ou que vous le résolviez vous-même, cela ne le rend pas plus ou moins ambigu. Et il se peut qu'une telle distinction soit justifiée - si vous avez besoin de moins de 5 minutes pour vous qualifier pour la finale d'une compétition. Je suis sûr que le juge ne sera pas influencé par des arguments du genre "mais il ne restait que 2 secondes en dehors du temps de qualification"
probabilislogic
5

Quelques réflexions:

  • Tracez la distribution des temps. Je suppose qu'ils seront faussés positivement, de sorte que certains temps de solution sont vraiment lents. Dans ce cas, vous pouvez envisager un journal ou une autre transformation des temps de solution.

  • Créez un nuage de points d'essai sur l'axe x et le temps de solution (ou enregistrez le temps de solution sur l'axe y). Cela devrait vous donner une compréhension intuitive des données. Il peut également révéler d'autres types de tendances en plus de la "séquence chaude".

  • Demandez-vous s'il y a un effet d'apprentissage au fil du temps. Avec la plupart des puzzles, vous vous entraînez plus rapidement. L'intrigue devrait aider à révéler si c'est le cas. Un tel effet est différent d'un effet "hot streak". Cela entraînera une corrélation entre les essais, car lorsque vous apprenez pour la première fois, les essais lents coexisteront avec d'autres essais lents, et à mesure que vous deviendrez plus expérimenté, des essais plus rapides coexisteront avec des essais plus rapides.

  • Réfléchissez à votre définition conceptuelle des "séquences chaudes". Par exemple, cela s'applique-t-il uniquement aux essais qui sont proches dans le temps ou concernent la proximité de l'ordre. Disons que vous avez résolu le cube rapidement mardi, puis que vous avez fait une pause et le vendredi suivant, vous l'avez résolu rapidement. Est-ce une séquence chaude ou cela ne compte-t-il que si vous le faites le même jour?

  • Y a-t-il d'autres effets qui pourraient être distincts d'un effet de séquence chaude? Par exemple, à quel moment de la journée vous résolvez le casse-tête (par exemple, la fatigue), dans quelle mesure vous essayez vraiment de travailler dur? etc.

  • Une fois que les autres effets systématiques ont été compris, vous pouvez développer un modèle qui en inclut autant que possible. Vous pouvez tracer le résidu sur l'axe des y et tester sur l'axe des x. Ensuite, vous pouvez voir s'il existe des auto-corrélations dans les résidus dans le modèle. Cette auto-corrélation fournirait des preuves de séquences chaudes. Cependant, une autre interprétation est qu'il existe un autre effet systématique que vous n'avez pas exclu.

Jeromy Anglim
la source
+1 pour la partie systématique. Je pense que dans ce cas, c'est la meilleure explication des variations de performances.
mpiktas
2
pourrait vouloir voir comment les chercheurs ont étudié cette question. Un classique est Gilovich, T., Vallone, R. & Tversky, A., La main brûlante du basket-ball: sur la perception erronée des séquences aléatoires. Cognitive Psychology 17, 295-314 (1985).
dmk38
2

Calculez le corrélogramme de votre processus. Si votre processus est gaussien (d'après l'apparence de votre échantillon), vous pouvez établir des limites inférieures / supérieures (B) et vérifier si les corrélations à un décalage donné sont significatives. Une autocorrélation positive au décalage 1 indiquerait l'existence de "séquences de chance".


la source
2
L'autocorrélation positive peut également résulter d'autres effets systématiques tels qu'un processus d'apprentissage. Je pense qu'il est important de supprimer ces effets avant d'interpréter l'auto-corrélation comme la preuve d'une "séquence chaude".
Jeromy Anglim