Regressione logistica: massimizzare i veri positivi - i falsi positivi


9

Ho un modello di regressione logistica (adatto tramite glmnet in R con regolarizzazione della rete elastica) e vorrei massimizzare la differenza tra veri positivi e falsi positivi. Per fare ciò, mi è venuta in mente la seguente procedura:

  1. Adatta il modello di regressione logistica standard
  2. Utilizzando la soglia di previsione come 0,5, identificare tutte le previsioni positive
  3. Assegna il peso 1 per le osservazioni previste in modo positivo, 0 per tutti gli altri
  4. Adatta modello di regressione logistica ponderata

Quali sarebbero i difetti di questo approccio? Quale sarebbe il modo corretto di procedere con questo problema?

Il motivo per voler massimizzare la differenza tra il numero di veri positivi e falsi negativi è dovuto al design della mia applicazione. Come parte di un progetto di classe, sto costruendo un partecipante autonomo in un mercato online: se il mio modello prevede che può comprare qualcosa e venderlo in seguito a un prezzo più alto, fa un'offerta. Vorrei attenermi alla regressione logistica e produrre risultati binari (vincere, perdere) in base a costi fissi e incrementi del prezzo unitario (guadagno o perdita dello stesso importo su ogni transazione). Un falso positivo mi fa male perché significa che compro qualcosa e non riesco a venderlo a un prezzo più alto. Tuttavia, un falso negativo non mi fa male (solo in termini di costo opportunità) perché significa solo se non avessi comprato, ma se avessi avuto, avrei fatto soldi. Allo stesso modo,

Concordo sul fatto che il cut-off 0,5 sia completamente arbitrario e quando ho ottimizzato il modello dal passaggio 1 sulla soglia di previsione che produce la differenza più alta tra positivi / falsi positivi, risulta essere più vicino a 0,4. Penso che ciò sia dovuto alla natura distorta dei miei dati - il rapporto tra negativi e positivi è di circa 1: 3.

In questo momento, sto seguendo i seguenti passi:

  1. Dividi i dati in allenamento / test
  2. Adatta il modello all'allenamento, fai previsioni nel set di test e calcola la differenza tra positivi / falsi positivi
  3. Adatta il modello completo, fai previsioni nel set di test e calcola la differenza tra positivi / falsi positivi

La differenza tra positivi / falsi positivi è minore nel passaggio 3 rispetto al passaggio 2, nonostante il set di allenamento sia un sottoinsieme del set completo. Dal momento che non mi importa se il modello in # 3 ha più veri negativi e meno falsi negativi, c'è qualcosa che posso fare senza alterare la funzione di probabilità stessa?


Prima di chiedere quali sarebbero i difetti di questo approccio, forse dovresti scrivere perché questo approccio dovrebbe funzionare, secondo te. Perché pensi che i passaggi 2-4 migliorino il risultato?
user31264,

Inoltre, ho ragione che alla fine lasci cadere il modello dal passaggio 1 e usi solo il modello dal passaggio 4?
user31264,

Sì, stavo pianificando di utilizzare il modello fornito con l'intero set di dati, ma non ha senso farlo perché sta eseguendo una performance insufficiente rispetto al modello fornito con il set di addestramento.
tmakino,

2
Non ho una fonte su questo in questo momento ... ma sei consapevole di poter ottimizzare un modello di regressione logistica per massimizzare l'area sotto la curva (caratteristica operativa del ricevitore) (o AUC)? Non c'è bisogno di reinventare la ruota.
AdamO,

2
Quello che non capisco del tutto è il motivo per cui non hai incluso nel tuo modello nulla del prezzo futuro previsto, né hai incluso l'entità del profitto / perdita nell'ottimizzazione. Sicuramente una decisione di "acquisto" che porta ad una perdita del 99% è molto peggio di una decisione di "acquisto" che porta ad una perdita dell'1%, anche se entrambi sono falsi positivi.
Probislogic,

Risposte:


24

Sembra che tu non voglia affatto la regressione logistica. Quello che dici è "Vorrei massimizzare la differenza tra veri positivi e falsi positivi". Questa è una buona funzione oggettiva, ma non è una regressione logistica. Vediamo di cosa si tratta.

Innanzitutto, qualche notazione. La variabile dipendente sarà : Y iYi

Yi={1Purchase i was profitable0Purchase i was un-profitable

XiβXiβ>0iXiβ>01Xiβ>0=1

iYi=11Xiβ>0=1iYi=01Xiβ>0=1β

maxβi=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0

Questa non è una funzione obiettivo particolarmente familiare per stimare un modello di risposta discreta, ma sopporta con me mentre faccio una piccola algebra sulla funzione obiettivo:

i=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0+i=1N1i=1N1+i=1NYii=1NYi=i=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)i=1N1+i=1NYi

β

maxβi=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)

Ora, quello stimatore ha un nome! È chiamato lo stimatore del punteggio massimo. È un modo molto intuitivo per stimare il parametro di un modello di risposta discreto. Il parametro viene scelto in modo da massimizzare il numero di previsioni corrette. Il primo termine è il numero di veri positivi e il secondo termine è il numero di veri negativi.

βββNNconvergenza. (Kim e Pollard, 1990, Ann of Stat) Infine, non è possibile utilizzare il bootstrap per fare deduzione su di esso. (Abrevaya & Huang, 2005, Econometrica) Ci sono alcuni documenti che usano questo stimatore --- ce n'è uno divertente sulla previsione dei risultati nel torneo di basket NCAA di Caudill, International Journal of Forecasting, aprile 2003, v. 19, iss. 2, pagg. 313-17.

N


βTx>0p>0.5p<=0.5βTx
tmakino,

(continua) definendolo nella funzione di costo (e fissando la soglia di previsione a 0,5), saltando così il passaggio intermedio che ho fatto. Tuttavia, l'AUC esiste già nel pacchetto di regressione che sto usando (glmnet) mentre l'esimatore del punteggio massimo no. Pensi che il mio approccio sia ragionevole dato il mio obiettivo?
tmakino,

1
pXiβ>0β

15

Ci sono molte cose sbagliate in questo approccio, tra cui:

  • Alla ricerca di un taglio per una probabilità continua
  • Utilizzando un cutoff arbitrario di 0,5
  • Supponendo che il costo di un "falso positivo" e un "falso negativo" siano gli stessi per tutti i soggetti
  • Usando pesi che non sono frazionari
  • Utilizzo di pesi stimati
  • Sovrascrivere la stima della massima verosimiglianza
  • Non utilizzare la teoria delle decisioni di Bayes ottimale, che impone che le decisioni ottimali si basino su informazioni complete (non sul fatto che qualcosa superi qualcos'altro) e funzioni di utilità / perdita / costo

1
Grazie, c'è un modo per raggiungere questo obiettivo mentre si attacca alla regressione logistica (cioè senza toccare la funzione di probabilità)?
tmakino,

Dipende da cosa "questo" è. Qual è l'obiettivo finale e come verrà utilizzato il modello?
Frank Harrell,

Ho modificato la mia domanda per fornire dettagli su ciò che sto cercando di ottenere.
tmakino,

1
A meno che non mi manchi qualcosa, nulla che tu abbia aggiunto implicherebbe l'uso di un punto di interruzione. Si noti che una probabilità prevista fornisce il proprio tasso di errore.
Frank Harrell,

8

L'approccio migliore per ottenere ciò che stai cercando di descrivere è probabilmente quello di ottimizzare direttamente i parametri di regressione logistica con una funzione di perdita AUC. Il libro di testo "Metodi statistici in medicina diagnostica" di Zhou descrive questo metodo.

L'AUC (area sotto la curva caratteristica operativa del ricevitore-- o ROC) è approssimativamente interpretata come la probabilità che un "caso" campionato casualmente abbia un valore di marcatore più alto di un "controllo". Questa è una misura della discriminazione del modello, o la sua capacità di classificare correttamente il risultato. Il ROC è una curva nel piano unitario che mostra la sensibilità rispetto a 1 - specificità per tutti i possibili valori di marker (risultati adattati) in un modello di regressione.

Utilizzando la formulazione tradizionale del modello di regressione logistica,

logit Pr(Y=1|X)=α+βX

con rapporti di probabilità di registro per i parametri del modello, è possibile definire approssimativamente una funzione di perdita basata su AUC per ottenere parametri ottimali. A differenza della regressione logistica basata sulla verosimiglianza, la regressione AUC non è regolare e può convergere ai massimi locali nello spazio dei parametri.


1
Avrei pensato che l'AUC non fosse la migliore qui perché c'è una piccola perdita per falso negativo, ma una grande perdita per falso positivo.
Probislogic,

Bene, il vero problema è che OP ha un esito continuo (ROI) e lo sta dichiarando come una perdita / guadagno. Ma scindendo i peli da parte, con la regressione del ROC in generale le regioni di cut-off marcatore "stupide" contano davvero per l'AUC. È possibile utilizzare l'AUC parziale se si prespecifica ciò che conta come valori marker significativi o stupidi e la regressione AUC parziale ha tutte le stesse capacità (e problemi) di prestazione.
AdamO,
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.