Una regressione logistica è distorta quando la variabile di risultato viene suddivisa tra il 5% e il 95%?


10

Sto costruendo un modello di propensione usando la regressione logistica per un client di utilità. La mia preoccupazione è che sul totale del campione i miei conti "cattivi" siano solo del 5%, e il resto è tutto buono. Sto predicendo "cattivo".

  • Il risultato sarà biassato?
  • Qual è la 'proporzione da cattiva a buona' ottimale per costruire un buon modello?

Penso che sia sempre meglio avere il 50% delle merci e il 50% dei danni secondo la regola empirica. L'uscita dal modello non deve essere distorta sul campione.

Risposte:


7

Non sono d'accordo con le altre risposte nei commenti, quindi è giusto dare le mie. Sia la risposta (conti buoni / cattivi) e le covariate.XYX

Per la regressione logistica, il modello è il seguente:

log(p(Y=1|X=X)p(Y=0|X=X))=α+Σio=1KXioβio

Pensa a come potrebbero essere raccolti i dati:

  • È possibile selezionare le osservazioni in modo casuale da un'ipotetica "popolazione"
  • È possibile selezionare i dati in base a e vedere quali valori di verificano.YXY

Entrambi sono a posto per il modello di cui sopra, come si sta solo modellando la distribuzione di . Questi sarebbero chiamati uno studio prospettico .Y|X

In alternativa:

  • È possibile selezionare le osservazioni in base a (diciamo 100 di ciascuna) e vedere la prevalenza relativa di (ovvero si sta stratificando su ). Questo si chiama studio retrospettivo o caso-controllo .X YYXY

(Potresti anche selezionare i dati basati su e alcune variabili di : questo sarebbe uno studio stratificato di controllo caso, ed è molto più complicato con cui lavorare, quindi non entrerò qui).XYX

C'è un buon risultato dall'epidemiologia (vedi Prentice e Pyke (1979) ) che per uno studio caso-controllo, le stime di massima verosimiglianza per possono essere trovate dalla regressione logistica, che sta usando il modello prospettico per i dati retrospettivi.β

Quindi, come è rilevante per il tuo problema?

Bene, significa che se sei in grado di raccogliere più dati, potresti semplicemente guardare gli account danneggiati e comunque utilizzare la regressione logistica per stimare i (ma dovresti regolare per tenere conto dell'over- rappresentazione). Diciamo che costa $ 1 per ogni account extra, quindi questo potrebbe essere più conveniente quindi semplicemente guardando tutti gli account. αβioα

D'altra parte, se disponi già di TUTTI i dati possibili, non ha senso stratificarti: elimineresti semplicemente i dati (fornendo stime peggiori) e rimarrai con il problema di provare a stimare .α


Questo è vero solo se hai abbastanza dati per rappresentare adeguatamente la classe di minoranza (che di solito è il problema in cui c'è uno squilibrio di grande classe - il problema è lo squilibrio di per sé, ma che non hai abbastanza campioni dalla minoranza classe). In tal caso, la ponderazione differenziale basata sulle validazioni incrociate delle classi positive e negative, l'aggiustamento dell'alfa o l'adeguamento moltiplicativo (tutti gli IIRC equivalenti) sarebbe una buona idea per rafforzare la classe di minoranza. Stratificare i dati sarebbe un equivalente economico e allegro.
Dikran Marsupial,

@Dikran: Non vedo come nulla di tutto ciò non sia vero in quel caso: non devi rappresentare la classe di minoranza, devi solo rappresentare la differenza relativa alla maggioranza. Se non disponi di dati sufficienti per questo, gettare via le osservazioni della maggioranza non ti aiuterà.
Simon Byrne,

@Simon, ho concordato con te che la stratificazione non è una buona idea a meno che tu non voglia regolare l'alfa, ridimensionare gli schemi o regolare l'output del modello. Come ho detto, il problema con lo squilibrio di classe non è lo squilibrio di per sé, ma che non vi sono dati sufficienti per la classe di minoranza per definire adeguatamente la "differenza relativa rispetto alla maggioranza". Quando ciò accade, in media distorce l'output verso la classe di maggioranza, e quindi è utile fare qualcosa per compensare tale distorsione. La stratificazione è un modo per farlo, ma non quasi il migliore.
Dikran Marsupial,

@Simon, BTW grazie per il riferimento Prentice e Pyke, sembra utile.
Dikran Marsupial,

1
@Dikran: potrebbe essere distorto per altri modelli, ma NON per la regressione logistica, questo è il punto.
Simon Byrne,

3

Asintoticamente, il rapporto tra modelli positivi e negativi è essenzialmente irrilevante. Il problema sorge principalmente quando si hanno troppi pochi campioni della classe di minoranza per descriverne adeguatamente la distribuzione statistica. L'ampliamento del set di dati risolve generalmente il problema (laddove possibile).

Se ciò non è possibile, la cosa migliore da fare è ricampionare i dati per ottenere un set di dati bilanciato e quindi applicare una regolazione moltiplicativa all'output del classificatore per compensare la differenza tra set di addestramento e frequenze operative relative della classe. Sebbene sia possibile calcolare il fattore di regolazione ottimale (asintoticamente), in pratica è meglio ottimizzare la correzione usando la convalida incrociata (poiché si tratta di un caso pratico finito piuttosto che di un caso asintotico).

In questo tipo di situazione, utilizzo spesso un comitato di modelli, in cui ognuno è addestrato su tutti i modelli di minoranza e su un diverso campione casuale dei modelli di maggioranza della stessa dimensione dei modelli di minoranza. Ciò protegge dalla sfortuna nella selezione di un singolo sottoinsieme dei modelli di maggioranza.


2
Ma è pertinente alla regressione logistica? Non abbiamo bisogno di descrivere la distribuzione statistica di entrambe le classi, ma solo i relativi rapporti di probabilità (vedi il mio commento a @Henry).
Simon Byrne,

In un esempio univariato forse, ma se hai più di una variabile esplicativa, allora hai bisogno di informazioni sulla distribuzione dei modelli per orientare correttamente il "discriminante".
Dikran Marsupial,

Non sarebbe meglio applicare la regolazione moltiplicativa nello spazio delle probabilità del registro prima dell'applicazione della funzione logistica?
rm999,

IIRC, la regolazione ottimale dal punto di vista assintitico è quella di moltiplicarsi per il rapporto tra le frequenze di classe operative e quelle di addestramento, questo si basa sulla regola di Bayes, quindi viene applicato alle probabilità piuttosto che al rapporto log-odds. Tuttavia, poiché stiamo solo cercando di correggere una defficienza matematicamente intrattabile nella stima, probabilmente non importa troppo come viene effettuato l'adeguamento, in realtà è solo un "fattore di fondente".
Dikran Marsupial,

@Dikran: non capisco cosa intendi per orientare correttamente il "discriminante". Anche nel caso multivariato, la regressione logistica sta ancora calcolando i relativi rapporti di probabilità.
Simon Byrne,

1

In teoria, sarai in grado di discriminare meglio se le proporzioni di "buono" e "cattivo" hanno dimensioni approssimativamente simili. Potresti essere in grado di muoverti verso questo obiettivo tramite campionamento stratificato, sovracampionamento di casi negativi e quindi re-ponderazione per tornare alle proporzioni reali in seguito.

Questo comporta alcuni rischi. In particolare, è probabile che il tuo modello stia etichettando gli individui come "potenzialmente cattivi" - presumibilmente quelli che potrebbero non pagare le bollette quando dovute. È importante che l'impatto degli errori nel fare ciò sia adeguatamente riconosciuto: in particolare quanti "buoni clienti" saranno etichettati "potenzialmente cattivi" dal modello, e avrai meno probabilità di sbagliare la ponderazione se non hai distorto il tuo modello per campionamento stratificato.


In realtà, non penso che ciò sia vero per la regressione logistica: il parametro odds ratio (che esegue la discriminazione) è invariante alla stratificazione sulla variabile di risposta. Questo è il motivo per cui può essere utilizzato per studi caso-controllo.
Simon Byrne,

@Simon: Non sono in disaccordo con il tuo commento sul rapporto di probabilità, ma ho visto che le persone non riescono a riportare questo alle conseguenze per la popolazione correttamente dopo il campionamento stratificato quando lo avevano fatto in altri casi. Ad esempio, se scopri che le persone per le quali il fattore A è vero hanno il doppio delle probabilità di essere "cattive" rispetto a quelle senza il fattore A, ciò non dovrebbe cambiare con il campionamento stratificato, ma se vuoi sapere quale percentuale della popolazione sarà influenzato inutilmente se si prendono di mira quelli con fattore A, è necessario ponderare attentamente le informazioni dei campioni.
Henry,

scusa, non era un po 'in disaccordo. È stato il primo bit: una conseguenza dell'invarianza è che una volta che hai i dati, non ha senso stratificare, stai semplicemente gettando via i dati. (la storia è diversa quando si tratta del costo della raccolta dei dati, quindi dell'esistenza di studi caso-controllo).
Simon Byrne,

@Simon: Quando dici "studio caso-controllo", intendi che in origine prevedi di prendere un campione di casi "cattivi" e un campione di casi "buoni"? Con una percentuale maggiore di casi "cattivi" rispetto alla piccola percentuale nella popolazione? In tal caso, questo è ciò che intendevo per "campionamento stratificato, sovracampionamento di casi negativi" nella mia risposta.
Henry,

Sì, è esattamente quello che volevo dire anche io. La domanda sembrava indicare che avevano già dei dati, quindi non avrebbe senso stratificarsi.
Simon Byrne,

0

yiopiopio

yio~Bernoulli(pio)
pio=logit-1(un'+B1X1+...+BnXn)
logit-1=exp(X)1+exp(X)

Ora importa che hai una bassa percentuale di fallimenti (conti errati)? Non proprio, fintanto che i dati del campione sono bilanciati, come già indicato da alcune persone. Tuttavia, se i tuoi dati non sono bilanciati, ottenere più dati potrebbe essere quasi inutile se ci sono alcuni effetti di selezione che non stai prendendo in considerazione. In questo caso, dovresti usare la corrispondenza, ma la mancanza di equilibrio potrebbe rendere la corrispondenza piuttosto inutile. Un'altra strategia sta cercando di trovare un esperimento naturale, in modo da poter utilizzare il design della disconinuità della variabile strumentale o della regressione.

Infine, ma non meno importante, se hai un campione bilanciato o non ci sono errori di selezione, potresti essere preoccupato dal fatto che il cattivo account è raro. Non credo che il 5% sia raro, ma per ogni evenienza, dai un'occhiata al documento di Gary King sulla gestione di un raro evento logistico. Nel pacchetto Zelig, in R, è possibile eseguire una logistica di eventi rari.


0

Va bene, quindi lavoro nel rilevamento delle frodi, quindi questo tipo di problema non è nuovo per me. Penso che la comunità dell'apprendimento automatico abbia molto da dire sui dati sbilanciati (come nelle classi sono sbilanciati). Quindi ci sono un paio di strategie facili e morte che penso siano già state menzionate, e un paio di idee chiare e in qualche modo là fuori. Non farò nemmeno finta di sapere cosa significhi per gli asintotici per il tuo problema, ma sembra sempre che mi dia risultati ragionevoli nella regressione logistica. Potrebbe esserci un documento lì dentro da qualche parte, non sono sicuro però.

Ecco le tue opzioni come la vedo io:

  1. Sovracampionare la classe di minoranza. Ciò equivale a campionare la classe di minoranza con la sostituzione fino a quando non si ottiene lo stesso numero di osservazioni della classe di maggioranza. Ci sono modi fantasiosi per farlo in modo da fare cose come il jitter dei valori di osservazione, in modo da avere valori vicini all'originale ma non copie perfette, ecc.
  2. Sottovalutazione, è qui che si prende un sottocampione della classe di maggioranza. Di nuovo modi fantasiosi per farlo in modo da rimuovere i campioni di maggioranza che sono i più vicini ai campioni di minoranza, usando gli algoritmi del vicino più vicino e così via.
  3. Ripesare le classi. Per la regressione logistica questo è quello che faccio. In sostanza, state cambiando la funzione di perdita per penalizzare un caso di minoranza classificato erroneamente molto più pesantemente di una classe di maggioranza classificata erroneamente. Ma poi tecnicamente non stai facendo la massima probabilità.
  4. Simulare dati. Ci sono molte idee chiare con cui ho giocato qui. È possibile utilizzare SMOTE per generare dati, reti generative contraddittorie, autoencoder utilizzando la parte generativa, stimatori della densità del kernel per disegnare nuovi campioni.

In ogni caso, ho usato tutti questi metodi, ma trovo che il più semplice sia solo quello di ripensare il problema della regressione logistica. Una cosa che puoi fare per controllare il tuo modello è prendere:

-Intercept/beta

Questo dovrebbe essere il limite di decisione (probabilità del 50% di essere in una delle classi) su un dato ceteris paribus variabile . Se non ha senso, ad esempio il limite di decisione è un numero negativo su una variabile che è strettamente positivo, allora hai una distorsione nella tua regressione logistica che deve essere corretta.

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.