Come si fa a sapere se le buone prestazioni arrivano in serie?


10

Risolvo i cubi di Rubik come hobby. Annoto il tempo impiegato per risolvere il cubo utilizzando alcuni software, quindi ora ho i dati di migliaia di soluzioni. I dati sono sostanzialmente un lungo elenco di numeri che rappresentano il tempo impiegato da ciascuna risoluzione sequenziale (ad es. 22.11, 20.66, 21.00, 18.74, ...)

Il tempo necessario per risolvere il cubo varia in modo naturale da una soluzione all'altra, quindi ci sono buone soluzioni e cattive soluzioni.

Voglio sapere se "mi surriscaldo" - se i buoni risolutori si presentano a strisce. Ad esempio, se ho appena avuto alcuni buoni consecutivi, è più probabile che la mia prossima soluzione sia buona?

Quale tipo di analisi sarebbe appropriata? Mi vengono in mente alcune cose specifiche da fare, ad esempio trattare i risolventi come un processo di Markov e vedere quanto bene una soluzione prevede il prossimo e confrontarli con dati casuali, vedere per quanto tempo le strisce più lunghe di risoluzioni consecutive sotto la mediana per l'ultimo 100 sono e in confronto a ciò che ci si aspetterebbe da dati casuali, ecc. Non sono sicuro di quanto siano approfonditi questi test e mi chiedo se ci siano approcci ben sviluppati a questo tipo di problema.

Risposte:


8

Il Wald-Wolfowitz Runs Test sembra essere un possibile candidato, in cui una "corsa" è quella che hai definito una "serie". Richiede dati dicotomici, quindi dovresti etichettare ogni soluzione come "cattiva" o "buona" secondo una certa soglia, come il tempo mediano come hai suggerito. L'ipotesi nulla è che le soluzioni "buone" e "cattive" si alternino casualmente. Un'ipotesi alternativa unilaterale corrispondente alla tua intuizione è che il "buono" risolve un gruppo insieme in lunghe strisce, il che implica che ci sono meno corse del previsto con dati casuali. La statistica test è il numero di esecuzioni. In 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 

Quando hai solo poche osservazioni, puoi calcolare le probabilità esatte per ogni numero di esecuzioni secondo l'ipotesi nulla. Altrimenti, la distribuzione del "numero di esecuzioni" può essere approssimata da una distribuzione 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

Il valore p è per l'ipotesi alternativa unilaterale che i "buoni" risolvono si presentano in strisce.


3
Bella risposta. Tuttavia, sarei riluttante a convertire una variabile continua in una binaria. Molta variabilità significativa andrebbe persa.
Jeromy Anglim,

@jeromy - questo è un buon punto in generale, ma sembrerebbe per questa domanda specifica, il binning non getta via molte informazioni - specialmente perché "buono" e "cattivo" sono definiti solo come una dicotomia nella domanda, non come un continuo.
Probislogic,

@probabilityislogic Comprendo che @mark potrebbe aver reso operativo il tempo di soluzione come "buono" o "cattivo" in base a quale parte di una certa soglia si trova il tempo di soluzione. Tuttavia, ovunque si trovi la soglia, sicuramente è un po 'arbitraria. Se la soglia fosse di 5 minuti, sicuramente 5 minuti e 1 secondo non differirebbero molto da 4 minuti e 59 secondi in "bontà". Immagino che "buono" e "cattivo" siano categorie sfocate rispetto al tempo di completamento continuo.
Jeromy Anglim,

Ma ogni definizione di "buono" e "cattivo" è arbitraria, a causa della natura relativa di quelle parole. Sia che lasci che "i dati" risolvano l'ambiguità, sia che tu lo risolva da solo, non lo rende più o meno ambiguo. E può darsi che sia giustificata una distinzione così marcata, se hai bisogno di meno di 5 minuti per qualificarti per la finale in una competizione. Sono sicuro che il giudice non sarà influenzato da argomenti del genere "ma mancavano solo 2 secondi al di fuori del tempo di qualificazione"
Probislogic,

5

Alcuni pensieri:

  • Traccia la distribuzione dei tempi. La mia ipotesi è che saranno inclinati positivamente, in modo che alcuni tempi di soluzione siano molto lenti. In tal caso, potresti prendere in considerazione un registro o qualche altra trasformazione dei tempi di soluzione.

  • Crea un diagramma a dispersione di prova sull'asse xe il tempo di soluzione (oppure registra il tempo di soluzione sull'asse y). Questo dovrebbe darti una comprensione intuitiva dei dati. Potrebbe anche rivelare altri tipi di tendenze oltre alla "striscia calda".

  • Valuta se c'è un effetto di apprendimento nel tempo. Con la maggior parte dei puzzle, si diventa più veloci con la pratica. La trama dovrebbe aiutare a rivelare se questo è il caso. Un tale effetto è diverso da un effetto "hot strreak". Condurrà alla correlazione tra le prove perché quando si apprende per la prima volta, le prove lente si verificheranno con altre prove lente e man mano che si acquisisce esperienza, si verificheranno prove più veloci con prove più veloci.

  • Considera la tua definizione concettuale di "hot strreaks". Ad esempio, si applica solo alle prove che sono prossime nel tempo o riguardano la vicinanza dell'ordine. Supponi di aver risolto rapidamente il cubo martedì e poi di aver fatto una pausa e il venerdì successivo lo hai risolto rapidamente. È una serie calda o conta solo se lo fai lo stesso giorno?

  • Ci sono altri effetti che potrebbero essere distinti da un effetto hot strreak? Ad esempio, l'ora del giorno in cui risolvi il puzzle (ad esempio, la fatica), il grado in cui stai davvero provando duro? eccetera.

  • Una volta compresi gli effetti sistematici alternativi, è possibile sviluppare un modello che includa il maggior numero possibile di essi. È possibile tracciare il residuo sull'asse y e provare sull'asse x. Quindi è possibile vedere se ci sono autocorrelazioni nei residui nel modello. Questa auto-correlazione fornirebbe alcune prove di striature calde. Tuttavia, un'interpretazione alternativa è che c'è qualche altro effetto sistematico che non hai escluso.


+1 per parte sistematica. Penso che in questo caso sia la migliore spiegazione delle variazioni nelle prestazioni.
mpiktas,

2
potrebbe voler esaminare come i ricercatori hanno studiato questa domanda. Un classico è Gilovich, T., Vallone, R. & Tversky, A., La mano calda nel basket: sulla percezione errata di sequenze casuali. Cognitive Psychology 17, 295-314 (1985).
dmk38,

2

Calcola correlogramma per il tuo processo. Se il tuo processo è gaussiano (dall'aspetto del tuo campione lo è) puoi stabilire i limiti inferiore / superiore (B) e verificare se le correlazioni a un determinato ritardo sono significative. L'autocorrelazione positiva al ritardo 1 indicherebbe l'esistenza di "strisce di fortuna".


2
L'autocorrelazione positiva può anche derivare da altri effetti sistematici come un processo di apprendimento. Penso che sia importante rimuovere tali effetti prima di interpretare l'auto-correlazione come prova di una "serie calda".
Jeromy Anglim,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.