Come dimostrare che la classificazione Elo o il ranking della pagina hanno un significato per il mio set?


13

Ho un set di giocatori. Giocano l'uno contro l'altro (a coppie). Le coppie di giocatori vengono scelte casualmente. In qualsiasi partita, un giocatore vince e un altro perde. I giocatori giocano tra loro un numero limitato di giochi (alcuni giocatori giocano più giochi, altri meno). Quindi, ho dei dati (chi vince contro chi e quante volte). Ora presumo che ogni giocatore abbia una classifica che determina la probabilità di vincere.

Voglio verificare se questa ipotesi è in realtà la verità. Ovviamente, posso usare il sistema di classificazione Elo o l' algoritmo PageRank per calcolare una valutazione per ogni giocatore. Ma calcolando le valutazioni non provo che esse (valutazioni) esistano effettivamente o che significhino qualcosa.

In altre parole, voglio avere un modo per dimostrare (o verificare) che i giocatori abbiano punti di forza diversi. Come posso farlo?

AGGIUNTO

Per essere più precisi, ho 8 giocatori e solo 18 partite. Quindi, ci sono molte coppie di giocatori che non hanno giocato l'una contro l'altra e ci sono molte coppie che hanno giocato solo una volta l'una con l'altra. Di conseguenza, non posso stimare la probabilità di una vittoria per una determinata coppia di giocatori. Vedo anche, ad esempio, che c'è un giocatore che ha vinto 6 volte in 6 partite. Ma forse è solo una coincidenza.


Vuoi testare l'ipotesi nulla che tutti i giocatori abbiano la stessa forza o verificare l'adattamento di un modello di forza del giocatore?
onestop il

@onestop: Tutti i giocatori con la stessa forza sarebbero molto improbabili, no? Perché lo suggerisci come ipotesi?
endolith,

Risposte:


10

Hai bisogno di un modello di probabilità.

L'idea alla base di un sistema di classificazione è che un singolo numero caratterizza adeguatamente l'abilità di un giocatore. Potremmo chiamare questo numero la loro "forza" (perché "rango" significa già qualcosa di specifico nelle statistiche). Vorremmo prevedere che il giocatore A batterà il giocatore B quando la forza (A) supera la forza (B). Ma questa affermazione è troppo debole perché (a) non è quantitativa e (b) non tiene conto della possibilità che un giocatore più debole possa occasionalmente battere un giocatore più forte. Possiamo superare entrambi i problemi supponendo che la probabilità che A batte B dipende solo dalla differenza nei loro punti di forza. Se è così, allora possiamo ri-esprimere tutti i punti di forza è necessario in modo che la differenza nei punti di forza sia uguale alle probabilità del registro di una vittoria.

In particolare, questo modello è

logit(Pr(A beats B))=λAλB

dove, per definizione, è la probabilità del log e ho scritto λ A per la forza del giocatore A, ecc.logit(p)=log(p)log(1p)λA

Questo modello ha tanti parametri quanti sono i giocatori (ma c'è un grado in meno di libertà, perché può identificare solo i punti di forza relativi , quindi fisseremmo uno dei parametri a un valore arbitrario). È una specie di modello lineare generalizzato (nella famiglia Binomial, con collegamento logit).

I parametri possono essere stimati con la massima verosimiglianza . La stessa teoria fornisce un mezzo per erigere intervalli di confidenza attorno alle stime dei parametri e per testare le ipotesi (come se il giocatore più forte, secondo le stime, sia significativamente più forte del giocatore più debole stimato).

In particolare, la probabilità di un set di giochi è il prodotto

all gamesexp(λwinnerλloser)1+exp(λwinnerλloser).

λ


In questo particolare problema ci sono 18 giochi e 7 parametri gratuiti. In generale ci sono troppi parametri: c'è così tanta flessibilità che i parametri possono essere variati abbastanza liberamente senza cambiare molto la massima probabilità. Pertanto, è probabile che l'applicazione del macchinario ML provi l'ovvio, il che significa che probabilmente non ci sono dati sufficienti per avere fiducia nelle stime di resistenza.


2
sA=exp(λA)ABsA/(sA+sB). (3) Se si gioca un torneo round-robin completo (che non è il caso qui), le classifiche dei punti di forza coincideranno esattamente con la percentuale di vincita di ciascun giocatore. (4) La bontà di adattamento è correlata ai flussi sul grafico con i giocatori come nodi e i giochi come bordi.
cardinale

(cont.) Lester R. Ford, Jr. ha anche un articolo che discute un algoritmo di adattamento basato su questa idea in un Amer. Pezzo di matematica mensile del 1957 scritto in onore di suo padre.
cardinale

4

Se vuoi testare l'ipotesi nulla che ogni giocatore abbia la stessa probabilità di vincere o perdere ogni partita, penso che tu voglia un test di simmetria della tabella di contingenza formata tabulando i vincitori contro i perdenti.

Imposta i dati in modo da disporre di due variabili, "vincitore" e "perdente" contenenti l'ID del vincitore e del perdente per ogni partita, ovvero ogni "osservazione" è una partita. È quindi possibile costruire una tabella di contingenza del vincitore contro il perdente. La tua ipotesi nulla è che ti aspetti che questo tavolo sia simmetrico (in media su tornei ripetuti). Nel tuo caso, otterrai un tavolo 8 × 8 in cui la maggior parte delle voci sono zero (corrispondente a giocatori che non si sono mai incontrati), vale a dire. la tabella sarà molto scarsa, quindi sarà quasi sicuramente necessario un test "esatto" piuttosto che uno basato sugli asintotici.

Un test così esatto è disponibile in Stata con il comando di simmetria . In questo caso, la sintassi sarebbe:

symmetry winner loser, exact

Senza dubbio è implementato anche in altri pacchetti statistici con cui ho meno familiarità.


(+1) È divertente, mi sono appena reso conto che questo comando Stata potrebbe essere usato per test di trasmissione / disequilibrio in genetica :) Ho discusso dei pacchetti R in una risposta precedente, stats.stackexchange.com/questions/5171/… .
chl

In effetti, il TDT è un'applicazione discussa nella guida di Stata che ho collegato sopra. È anche il contesto in cui mi sono imbattuto per la prima volta in questo test. Grazie per il link a quella precedente Q - sembra che fossi occupato con altre Q quando è stato pubblicato.
onestop il

Sebbene la domanda faccia riferimento al test di ipotesi, la sua scelta di enfasi è sulla bontà della domanda di adattamento: una singola forza numerica (scalare) modella efficacemente i risultati delle partite tra i giocatori?
whuber

1

Hai controllato alcune delle pubblicazioni di Mark Glickman? Quelli sembrano rilevanti. http://www.glicko.net/

Implicito nella deviazione standard delle classificazioni è un valore atteso di un gioco. (Questa deviazione standard è fissata su un numero specifico nell'Elo di base e variabile nel sistema Glicko). Dico valore atteso piuttosto che la probabilità di una vittoria a causa di pareggi. Le cose chiave da capire su qualunque rating Elo tu abbia sono il presupposto di distribuzione sottostante (normale o logistico, per esempio) e la deviazione standard assunta.

La versione logistica delle formule Elo suggerisce che il valore atteso di una differenza di valutazione di 110 punti è .653, ad esempio il giocatore A con 1330 e il giocatore B con 1220.

http://it.wikipedia.org/wiki/Elo_rating_system (OK, questo è un riferimento a Wikipedia ma ho già speso troppo tempo per questa risposta.)

Quindi ora abbiamo un valore atteso per ogni gioco in base alla valutazione di ciascun giocatore e un risultato basato sul gioco.

A questo punto, la prossima cosa che farei sarebbe quella di verificarlo graficamente organizzando le lacune dal più basso al più alto e sommando i risultati attesi ed effettivi. Quindi, per le prime 5 partite potremmo avere punti totali di 2 e punti previsti di 1,5. Per le prime 10 partite, potremmo avere punti totali di 8 e punti previsti di 8.8, ecc.

Rappresentando graficamente queste due linee in modo cumulativo (come faresti per un test di Kolmogorov-Smirnov) puoi vedere se i valori cumulativi previsti ed effettivi si tracciano reciprocamente bene o male. È probabile che qualcun altro possa fornire un test più formale.


1

Probabilmente l'esempio più famoso per testare quanto sia accurato il metodo di stima nel sistema di classificazione sono stati i voti di scacchi - Elo contro la concorrenza del resto del mondo su Kaggle , la cui struttura era la seguente:

I concorrenti allenano i loro sistemi di valutazione utilizzando un set di dati di allenamento di oltre 65.000 risultati recenti per 8.631 migliori giocatori. I partecipanti usano quindi il loro metodo per prevedere l'esito di ulteriori 7.809 partite.

Il vincitore è stato Elo ++ .

Sembra essere un buon schema di prova per le tue esigenze, teoricamente, anche se 18 partite non sono una buona base di prova. Puoi anche controllare le differenze tra i risultati per vari algoritmi (ecco un confronto tra ranking , il nostro sistema di ranking e i più noti, tra cui Elo , Glicko e Trueskill ).


0

Volete verificare l'ipotesi che la probabilità di un risultato dipenda dal matchup. H0, quindi, è che ogni gioco è essenzialmente un lancio della moneta.

Un semplice test per questo sarebbe calcolare la percentuale di volte in cui vincerà il giocatore con più partite precedenti e confrontarlo con la funzione di distribuzione cumulativa binomiale. Ciò dovrebbe mostrare l'esistenza di un qualche tipo di effetto.

Se sei interessato alla qualità del sistema di classificazione Elo per il tuo gioco, un metodo semplice sarebbe quello di eseguire una valutazione incrociata di 10 volte sulle prestazioni predittive del modello Elo (che in realtà presuppone che i risultati non siano iid, ma io ' lo ignorerò) e confrontandolo con un lancio della moneta.


Per essere più specifici. Ho 8 giocatori e solo 18 partite. Quindi, ci sono molte coppie di giocatori che non hanno giocato l'una con l'altra e ci sono molte coppie che hanno giocato solo l'una con l'altra. Di conseguenza, non posso stimare la probabilità di vincita per una determinata coppia di giocatori. Vedo anche, ad esempio, che c'è un giocatore che ha vinto 6 volte in 6 partite. Ma potrebbe essere solo una coincidenza.
Roman
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.