Jak rozpoznać, czy dobre wyniki występują w seriach?

10

Rozwiązuję kostki Rubika jako hobby. Rejestruję czas, jaki zajęło mi rozwiązanie kostki za pomocą jakiegoś oprogramowania, więc teraz mam dane z tysięcy rozwiązań. Dane są w zasadzie długą listą liczb reprezentujących czas potrzebny na każde kolejne rozwiązanie (np. 22.11, 20.66, 21.00, 18.74, ...)

Czas potrzebny na rozwiązanie kostki w naturalny sposób różni się w zależności od rozwiązania, więc są dobre i złe rozwiązania.

Chcę wiedzieć, czy „robi mi się gorąco” - czy dobre rozwiązania pojawiają się w seriach. Na przykład, jeśli miałem kilka kolejnych dobrych ułożeń, czy bardziej prawdopodobne jest, że moje następne ułożenie będzie dobre?

Jaki rodzaj analizy byłby odpowiedni? Mogę wymyślić kilka konkretnych rzeczy do zrobienia, na przykład traktując rozwiązania jako proces Markowa i widząc, jak dobrze jedno rozwiązanie przewiduje następne i porównując z danymi losowymi, widząc, jak długo najdłuższe serie kolejnych rozwiązań poniżej mediany dla ostatniego 100 jest i porównuje to z oczekiwanymi danymi losowymi itp. Nie jestem pewien, jak wnikliwe byłyby te testy, i zastanawiam się, czy istnieją jakieś dobrze rozwinięte podejścia do tego rodzaju problemu.

Mark Eichenlaub
źródło

Odpowiedzi:

8

Test serii wydaje się być możliwym kandydatem, gdzie „run” jest to, co nazywa się „smuga”. Wymaga to dychotomicznych danych, więc każde oznaczenie musielibyście oznaczyć jako „zły” vs. „dobry” według pewnego progu - na przykład mediany czasu, jak sugerowałeś. Hipotezą zerową jest to, że „dobre” i „złe” rozwiązują się na przemian losowo. Jednostronna alternatywna hipoteza odpowiadająca twojej intuicji jest taka, że ​​„dobre” rozwiązania grupują się w długie pasma, sugerując, że jest mniej przebiegów niż oczekiwano z danymi losowymi. Statystyka testowa to liczba przebiegów. W 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 

Gdy masz tylko kilka obserwacji, możesz obliczyć dokładne prawdopodobieństwa dla każdej liczby przebiegów w ramach hipotezy zerowej. W przeciwnym razie rozkład „liczby przebiegów” można aproksymować standardowym rozkładem normalnym.

> (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

Wartość p jest dla jednostronnej alternatywnej hipotezy, że „dobre” rozwiązania występują w seriach.

karakal
źródło
3
Świetna odpowiedź. Nie chciałbym jednak przekształcać zmiennej ciągłej w zmienną binarną. Wiele znaczącej zmienności zostałoby utraconych.
Jeromy Anglim
@jeromy - ogólnie jest to dobry punkt, ale wydaje się, że w przypadku tego konkretnego pytania binning nie wyrzuca wielu informacji - zwłaszcza, że ​​„dobre” i „złe” jest zdefiniowane jako dychotomia w pytaniu, a nie jako kontinuum.
probabilityislogic
@probabilityislogic Rozumiem, że @mark mógł mieć zoperacjonalizowany czas rozwiązania jako „dobry” lub „zły” w zależności od tego, po której stronie pewnego progu znajduje się czas rozwiązania. Jednak wszędzie tam, gdzie znajduje się próg, z pewnością jest to trochę arbitralne. Gdyby próg wynosił 5 minut, z pewnością 5 minut i 1 sekunda nie różniłyby się znacznie od 4 minut i 59 sekund w „dobroci”. Wyobrażam sobie, że „dobre” i „złe” są kategoriami rozmytymi w stosunku do ciągłego czasu ukończenia.
Jeromy Anglim
Ale każda definicja „dobra” i „zła” jest arbitralna - ze względu na względny charakter tych słów. Niezależnie od tego, czy pozwolisz „danym” rozwiązać dwuznaczność, czy też rozwiążesz je sam, nie czyni to mniej więcej dwuznacznym. Możliwe, że takie ostre rozróżnienie jest uzasadnione - jeśli potrzebujesz mniej niż 5 minut, aby zakwalifikować się do finału w zawodach. Jestem pewien, że sędziowie nie będą zachwyceni tego rodzaju argumentami „ale minęły tylko 2 sekundy poza czasem kwalifikacyjnym”
probabilityislogic
5

Kilka myśli:

  • Narysuj rozkład czasów. Domyślam się, że zostaną one wypaczone, tak że niektóre czasy rozwiązania są naprawdę wolne. W takim przypadku możesz rozważyć log lub inną transformację czasów rozwiązania.

  • Utwórz wykres rozproszenia próby na osi x i czasie rozwiązania (lub rejestruj czas rozwiązania na osi y). Powinno to zapewnić intuicyjne zrozumienie danych. Może także ujawniać inne trendy oprócz „gorącej passy”.

  • Zastanów się, czy z czasem pojawia się efekt uczenia się. W przypadku większości łamigłówek ćwiczenie staje się szybsze. Fabuła powinna pomóc w ujawnieniu, czy tak jest. Taki efekt różni się od efektu „gorącej smugi”. Doprowadzi to do korelacji między próbami, ponieważ gdy uczysz się po raz pierwszy, powolne próby będą współwystępować z innymi powolnymi próbami, a gdy zdobędziesz więcej doświadczenia, szybsze próby będą występować jednocześnie z szybszymi próbami.

  • Rozważ swoją koncepcyjną definicję „gorących pasm”. Na przykład, czy dotyczy to tylko prób zbliżonych w czasie lub dotyczących bliskości zamówienia. Powiedzmy, że szybko rozwiązałeś kostkę we wtorek, a potem miałeś przerwę, aw następny piątek rozwiązałeś ją szybko. Czy to gorąca passa, czy liczy się tylko wtedy, gdy robisz to tego samego dnia?

  • Czy są inne efekty, które mogą różnić się od efektu gorącej serii? Np. Pora dnia, w której rozwiązujesz zagadkę (np. Zmęczenie), stopień, w jakim tak naprawdę się starasz? itp.

  • Po zrozumieniu alternatywnych efektów systematycznych można opracować model, który obejmuje ich jak najwięcej. Możesz wykreślić pozostałość na osi y i wypróbować na osi x. Następnie można sprawdzić, czy w resztkach w modelu występują autokorelacje. Ta autokorelacja dostarczy pewnych dowodów gorących smug. Jednak alternatywną interpretacją jest to, że istnieje jakiś inny systematyczny efekt, którego nie wykluczyłeś.

Jeromy Anglim
źródło
+1 za część systematyczną. Myślę, że w tym przypadku jest to najlepsze wytłumaczenie różnic w wydajności.
mpiktas
2
warto przyjrzeć się, jak badacze zbadali to pytanie. Klasykiem jest Gilovich, T., Vallone, R. i Tversky, A., Gorąca ręka w koszykówce: o błędnym postrzeganiu losowych sekwencji. Cognitive Psychology 17, 295-314 (1985).
dmk38
2

Oblicz korelogram dla swojego procesu. Jeśli proces ma charakter gaussowski (na podstawie wyglądu próbki), możesz ustalić dolne / górne granice (B) i sprawdzić, czy korelacje przy danym opóźnieniu są znaczące. Dodatnia autokorelacja z opóźnieniem 1 wskazywałaby na istnienie „pasm szczęścia”.


źródło
2
Pozytywna autokorelacja może również wynikać z innych systematycznych efektów, takich jak proces uczenia się. Myślę, że ważne jest usunięcie takich efektów przed zinterpretowaniem autokorelacji jako dowodu „gorącej passy”.
Jeromy Anglim,