Funzione di costo per la validazione dei modelli di regressione di Poisson


11

Per i dati di conteggio che ho raccolto, utilizzo la regressione di Poisson per creare modelli. Lo faccio usando la glmfunzione in R, dove uso family = "poisson". Per valutare possibili modelli (ho diversi predittori) uso l'AIC. Fin qui tutto bene. Ora voglio eseguire la convalida incrociata. Sono già riuscito a farlo utilizzando la cv.glmfunzione dal bootpacchetto. Dalla documentazione di cv.glmVedo che, ad esempio, per i dati binomiali è necessario utilizzare una funzione di costo specifica per ottenere un errore di previsione significativo. Tuttavia, non ho ancora idea di quale sia la funzione di costo appropriata family = poissone una vasta ricerca di Google non ha prodotto risultati specifici. La mia domanda è che qualcuno ha un po 'di luce su quale funzione di costo è appropriata cv.glmin caso di problemi di poisson.


1
La funzione cv.glmnetnel pacchetto glmnetutilizza type.measure="deviance"per la famiglia Poisson.
rcs,

In senso stretto, la documentazione mostra che ha senso utilizzare una specifica funzione di costo per i dati binari.
Corone,

@corone non sono dati continui, né dati binari. Quindi stavo cercando una funzione di costo appropriata per i dati di conteggio.
Paul Hiemstra,

1
Non credo che la discrezione dei dati faccia una grande differenza qui, a meno che i tuoi conteggi non siano molto piccoli. Il problema riguarda piuttosto la distribuzione dei dati. Per i dati binari la previsione è una probabilità continua tra 0 e 1, ma la risposta è sempre 0 o 1. Nel loro esempio la forza il costo è "giusto" o "sbagliato" e conta il numero di diritti e errori. Sei particolarmente preoccupato per la continuità? Aggiungerò un PS alla mia risposta per indirizzare la continuità
Corone,

Risposte:


12

Supponendo nulla di speciale nel tuo caso particolare, penso che ci sia un buon argomento per usare il default (Mean Square Error) o usare la media dell'errore dei log, o anche l'errore chi-quadrato.

Lo scopo della funzione di costo è quello di esprimere il tuo "turbamento" con le previsioni sbagliate, in particolare quale "torto" ti disturba di più. Ciò è particolarmente importante per le risposte binarie, ma può avere importanza in qualsiasi situazione.

Errore quadratico medio (delle risposte)

C=1ni(YiY^i)2

Utilizzando MSE sei ugualmente sensibile agli errori dall'alto e dal basso e altrettanto sensibile alle previsioni grandi e piccole. Questa è una cosa abbastanza standard da fare, e quindi non credo che sarebbe malvisto nella maggior parte delle situazioni.

Mean Square Error (delle risposte del registro)

C=1nΣio(lnYio-lnY^io)2

Poiché stai lavorando con i dati di conteggio, si potrebbe sostenere che non sei simmetrico né indifferente in termini di dimensioni. Essere fuori da 10 conteggi per una previsione di 10 è molto diverso da una previsione di 1000. Questa è una funzione di costo un po '"canonica", perché hai abbinato i costi alla funzione di collegamento. Ciò garantisce che i costi corrispondano alla distribuzione della varianza assunta nel modello.

Errore Chi-quadrato

C=1nΣio(Yio-Y^io)2Y^io

Un terzo modo sarebbe usare l'errore chi-quadrato. Ciò potrebbe essere particolarmente interessante se si sta confrontando il proprio GLM con altri modelli basati sul conteggio, in particolare se ci sono fattori nel proprio GLM. Simile alle risposte del log degli errori, questo si ridimensionerà con le dimensioni, ma è simmetrico rispetto al conteggio previsto. Stai valutando la bontà di adattamento in base all'errore percentuale.


Sulla discrezione

La domanda cita l'esempio di documentazione in cui hanno una variabile di risposta binaria, quindi utilizzare una diversa funzione di costo. Il problema per una risposta binaria è che il GLM prevede un numero reale compreso tra 0 e 1, anche se la risposta è sempre esattamente 0 o 1. È perfettamente valido affermare che più il numero è vicino alla risposta corretta, migliore è il previsione, ma spesso le persone non lo vogliono. Il ragionamento è che spesso si deve agire come se fosse 0 o 1, e quindi ci vorrà qualcosa di meno di 0,5 come previsione per 0. In tal caso, ha senso semplicemente contare il numero di previsioni "sbagliate". L'argomento qui è che per una domanda Vero / Falso puoi sempre avere ragione o torto - non c'è gradazione di torto.

Y^


Invece di lavorare con l'errore quadrato medio dell'errore quadrato medio della risposta trasformata nel log, potrebbe essere meglio per i GLM utilizzare l'errore quadrato medio ponderato usando i pesi 1 / varianza (dato dallo slot $ weights dell'output glm di R, per poisson = 1 / E (Y)). Questo funziona credo per qualsiasi tipo di GLM.
Tom Wenseleers,
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.