Come faccio a scegliere la metrica migliore per misurare la mia calibrazione?


10

Programmo e realizzo uno sviluppo test-driven. Dopo aver apportato una modifica al mio codice, eseguo i test. A volte ci riescono ea volte falliscono. Prima di eseguire un test, scrivo un numero compreso tra 0,01 e 0,99 per la mia convinzione che il test avrà esito positivo.

Voglio sapere se sto migliorando nel prevedere se il mio test avrà esito positivo o negativo. Sarebbe anche bello se riuscissi a capire se sono più bravo a prevedere se il test avrà successo il lunedì o il venerdì. Se la mia capacità di prevedere il successo del test è correlata ad altre metriche che seguo, voglio sapere.

Questo mi lascia con il compito di scegliere la metrica giusta. Nel Superforcasting Philip Tetlock propone di utilizzare il punteggio di Brier per misurare il grado di calibrazione degli esperti. Un'altra metrica che è stata proposta in letteratura è la regola del punteggio logaritmico . Ci sono anche altri possibili candidati.

Come faccio a decidere quale metrica utilizzare? C'è un argomento per favorire una regola di punteggio rispetto alle altre?


1
Una potenziale fonte di difficoltà nel misurare i cambiamenti nelle tue abilità di previsione è che la difficoltà di fondo del problema di previsione può cambiare. I cambiamenti nelle tue abilità possono essere indistinguibili da quelli in difficoltà.
Matthew Gunn,

Risposte:


1

Presumo che tu stia facendo unit test per il tuo codice.

Un'idea che mi viene in mente, che forse non farebbe esattamente quello che vuoi, è usare un modello lineare.

Il vantaggio di farlo è che puoi creare un mucchio di altre variabili che puoi includere nell'analisi.

Diciamo che hai un vettore che include il risultato dei tuoi test e un altro vettore x che include le tue previsioni del risultato.YX

Ora puoi semplicemente adattare il modello lineare

yio=un'+BXio+ε

e trova il valore di , maggiore è il valore di b indicherebbe che le tue previsioni stanno migliorando.BB

La cosa che rende piacevole questo approccio è che ora puoi iniziare ad aggiungere un sacco di altre variabili per vedere se ciò crea un modello migliore e tali variabili possono aiutare a fare previsioni migliori. Le variabili potrebbero essere un indicatore per il giorno della settimana, ad esempio per lunedì sarebbe sempre 1 e zero per tutti gli altri giorni. Se includi quella variabile nel modello, otterrai:

yio=un'+un'Lunedi+BXio+ε

un'Lunedi

È inoltre possibile creare una nuova variabile in cui assegnare un punteggio per valutare la difficoltà dell'attività eseguita. Se hai il controllo della versione, potresti ad esempio usare il numero di righe di codice come difficoltà, cioè più codice scrivi, più è probabile che qualcosa si rompa.

Altre variabili potrebbero essere, il numero di tazze di caffè quel giorno, l'indicatore per le prossime scadenze, il che significa che c'è più stress per finire le cose ecc.

Puoi anche utilizzare una variabile temporale per vedere se le tue previsioni stanno migliorando. Inoltre, quanto tempo hai dedicato all'attività o quante sessioni hai trascorso su di essa, se stavi facendo una soluzione rapida e potrebbe essere sciatta ecc.

Alla fine hai un modello di previsione, in cui puoi provare a prevedere la probabilità di successo. Se riesci a creare questo, allora forse non devi nemmeno fare le tue previsioni, puoi semplicemente usare tutte le variabili e avere una buona idea sul fatto che le cose funzioneranno.

Il fatto è che volevi un solo numero. In tal caso, puoi utilizzare il modello semplice che ho presentato all'inizio e semplicemente usare la pendenza e ripetere i calcoli per ciascun periodo, quindi puoi vedere se c'è una tendenza in quel punteggio nel tempo.

Spero che sia di aiuto.


1
BYXun'BBBun'

@IWS Grazie per l'input, sono d'accordo con te nella misura in cui desideri che un singolo valore valuti le tue prestazioni, quindi omettere l'intercettazione è una buona idea. Se vuoi provare a interpretare ulteriormente i dati (e ne hai abbastanza), allora potrebbe essere una buona idea aggiungere l'intercetta e confrontare i modelli.
Gumeo,

1

Sebbene questa sia lungi dall'essere una risposta e più un riferimento, potrebbe essere una buona idea controllare Steyerberg E - Epidemiology 2012 .

In questo articolo Steyerberg e colleghi spiegano diversi modi per controllare le prestazioni del modello di previsione per i modelli con esiti binari (esiti positivi o negativi). La calibrazione è solo una di queste misure. A seconda che si desideri avere una probabilità accurata , una classificazione accurata o una riclassificazione accurata, è possibile che si desideri utilizzare diverse misure delle prestazioni del modello. Anche se questo manoscritto riguarda i modelli da utilizzare nella ricerca biomedica, ritengo che potrebbero essere applicabili anche ad altre situazioni (le vostre).

Più specifici per la tua situazione, le metriche di calibrazione sono davvero difficili da interpretare perché riassumono (cioè nella media) la calibrazione sull'intera gamma di possibili previsioni. Di conseguenza, potresti avere un buon punteggio di riepilogo della calibrazione, mentre le tue previsioni erano fuori in una gamma importante di probabilità previste (ad esempio potresti avere un punteggio brier basso (= buono), mentre la previsione per il successo è fuori sopra o sotto un certo probabilità prevista) o viceversa (un punteggio di riepilogo scarso, mentre le previsioni sono ben calibrate nell'area critica). Pertanto suggerirei di pensare se esiste una gamma così critica di probabilità di successo prevista nel tuo caso. In tal caso, utilizzare le misure appropriate (ad es. Indici di riclassificazione). In caso contrario (nel senso che sei interessato alla calibrazione generale), usa brier,

Per concludere, una qualsiasi delle misure di riepilogo della calibrazione richiede il primo passo per tracciare le probabilità previste rispetto alla probabilità osservata (vedere la risposta di Outlier per esempio come). Successivamente, è possibile calcolare la misura di riepilogo, ma la scelta della misura di riepilogo dovrebbe riflettere l'obiettivo di prevedere, in primo luogo, il successo di un fallimento.


0

Ho realizzato un modello di previsione su dati sparsi ed è una grande sfida ottenere la calibrazione del modello in questi casi. Ti dirò quello che ho fatto, puoi ottenere aiuto da quello.

Ho fatto 20 bin per la probabilità prevista e ho cercato di tracciare la probabilità media e la probabilità effettiva di successo. Per la probabilità media prevista, ho preso la media dell'intervallo del cestino. Per la probabilità effettiva media, ho calcolato il conteggio effettivo dei fallimenti e dei risultati nei bin, da cui ho ottenuto la probabilità effettiva (mediana) di successo nel cestino. Per ridurre l'impatto dei valori anomali, ho rimosso i dati superiore e inferiore del 5% prima di rilevare la probabilità mediana effettiva in ciascun contenitore.

Una volta ottenuti questi, potrei facilmente tracciare i dati.


Sarebbe bene sottolineare che questo è il primo passo per calcolare il test di bontà di adattamento di Hosmer-Lemeshow.
jwimberley,
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.