Se ho preso l'intero set di dati e ho diviso il numero totale di palline che hanno tirato fuori un battitore per il numero totale di palline lanciate, vedo che avrei la probabilità media che un lanciatore tiri fuori un battitore - sarà circa 0,03 (si spera Non ho già sbagliato?)
Sfortunatamente, questo non è già esattamente quello che stai cercando.
Supponiamo di avere un singolo giocatore di bocce e due battitori: Don Bradman e io. (So molto poco sul cricket, quindi se sto facendo qualcosa di diverso qui, fammi sapere.) I giochi vanno qualcosa come:
- Don va a pipistrello, ed è fuori sulla 99a ciotola.
- Vado a pipistrello e vado subito fuori.
- Don va a pipistrello, ed è fuori sulla 99a ciotola.
- Vado a pipistrello e vado subito fuori.
In questo caso, ci sono quattro outs su 200 ciotole, quindi la probabilità marginale di un bowler di ottenere un battitore è stimata come 4/200 = 2%. Ma in realtà, la probabilità del Don di uscire è più simile all'1%, mentre la mia è al 100%. Quindi se scegli un battitore e un lanciatore a caso, la probabilità che questo lanciatore tiri fuori questo battitore questa volta è più simile a (probabilità del 50% che hai scelto Don) * (probabilità dell'1% che esce) + (probabilità del 50% che hai scelto me) * (100% di probabilità che esca) = 50,05%. Ma se scegli un pitch a caso, allora c'è una probabilità del 2% che esca. Quindi devi pensare attentamente a quale di questi modelli di campionamento stai pensando.
Comunque, la tua proposta non è pazza. Più simbolicamente, sia il lanciatore e il battitore; lasciare che la probabilità che ottiene fuori. Quindi stai dicendo:bmf(b,m)bm
f(b,m)=Em′[f(b,m′)]Eb′[f(b′,m)]Eb′,m′[f(b′,m′)].
Questo ha la proprietà desiderata che:
è altrettanto coerente se si prendono mezzi solo su o .
Eb,m[f(b,m)]=Eb,m′[f(b,m′)]Eb′,m[f(b′,m)]Eb′,m′[f(b′,m′)]=Eb,m[f(b,m)];
bm
Nota che in questo caso possiamo assegnare
Il tuo presupposto è che puoi osservare e ragionevolmente bene dai dati. Finché (a) hai abbastanza giochi [che fai] e (b) tutti i giocatori si giocano l'un l'altro con frequenze ragionevolmente simili, allora va bene.
C:=Eb,m[f(b,m)]g(b):=Em[f(b,m)]/C−−√h(m):=Eb[f(b,m)]/C−−√so that f(b,m)=g(b)h(m).
g(b)h(m)
Per approfondire un po '(b): immagina di avere i dati di un sacco di giochi professionali e un sacco di giochi con i miei amici. Se non ci sono sovrapposizioni, forse sto davvero bene rispetto ai miei amici, quindi forse pensi che io sia molto meglio del peggior giocatore professionista. Questo è ovviamente falso, ma non hai dati per confutare ciò. Se hai un po 'di sovrapposizione, dove una volta ho giocato contro un giocatore professionista e sono stato distrutto, i dati supportano il posizionamento di me e dei miei amici come peggiori dei professionisti, ma il tuo metodo non lo spiegherebbe. Tecnicamente, il problema qui è che stai supponendo di avere un buon campione per esempio , ma la tua distribuzione è distorta.Eb′[f(b′,m)]b′
Ovviamente i tuoi dati non sembreranno così male, ma a seconda della struttura della lega o di qualsiasi altra cosa, potrebbero avere alcuni elementi di quel problema.
Puoi provare a aggirarlo con un approccio diverso. Il modello proposto per è in realtà un'istanza di modelli di fattorizzazione a matrice di basso rango comuni nel filtraggio collaborativo , come nel problema di Netflix . Qui, scegli la funzione e di dimensione e rappresenti . Puoi interpretare come complessare il tuo modello da un singolo punteggio di "qualità" ad avere punteggi lungo più dimensioni: forse alcuni giocatori di bocce fanno meglio contro alcuni tipi di battitori. (Ciò è stato fatto ad es. Per i giochi NBA .)fg(b)h(m)rf(b,m)=g(b)Th(m)r>1
Il motivo per cui sono chiamati fattorizzazione a matrice è perché se crei una matrice con tante righe quanti sono i lanciatori e tante colonne quanti i battitori, puoi scrivere questo comeF
⎡⎣⎢⎢⎢⎢⎢f(b1,m1)f(b2,m1)⋮f(bN,m1)f(b1,m2)f(b2,m2)⋮f(bN,m2)……⋱…f(b1,mM)f(b2,mM)⋮f(bN,mM)⎤⎦⎥⎥⎥⎥⎥F=⎡⎣⎢⎢g(b1)⋮g(bN)⎤⎦⎥⎥G⎡⎣⎢⎢h(m1)⋮h(mM)⎤⎦⎥⎥THT
dove hai scomposto un Matrix in un una e un uno .
N×MFN×rGM×rH
Certo, non puoi osservare direttamente. Il solito modello è che puoi osservare casualmente voci rumorose di ; nel tuo caso, si arriva a osservare un pareggio da una distribuzione binomiale con un numero casuale di prove per ogni voce di .FFF
Potresti costruire un modello di probabilità come, diciamo:
Gik∼N(0,σ2G)Hjk∼N(0,σ2H)Fij=GTiHjRij∼Binomial(nij,Fij)
dove sono osservati e , e avresti probabilmente messo alcuni hyperpriors su / e fatto l'inferenza, ad esempio a
Stan .
nijRijσGσH
Questo non è un modello perfetto: per uno, ignora che è correlato ai punteggi (come ho già detto nella prima sezione) e, cosa più importante, non a essere in (probabilmente useresti un sigmoid logistico o simile per farlo). Un articolo correlato, con priori più complessi per e (ma che non utilizza la probabilità binomiale) è: Salakhutdinov e Mnih, fattorizzazione a matrice probabilistica bayesiana usando la catena di Markov Monte Carlo , ICML 2008. ( doi / pdf dell'autore )nFij[0,1]GH