Selezione del modello e prestazioni del modello nella regressione logistica


9

Ho una domanda sulla selezione del modello e sulle prestazioni del modello nella regressione logistica. Ho tre modelli basati su tre diverse ipotesi. I primi due modelli (chiamiamoli z e x) hanno solo una variabile esplicativa in ciascun modello, e il terzo (chiamiamolo w) è più complicato. Sto usando AIC per la selezione delle variabili per il modello w e quindi AIC per confrontare quale dei tre modelli che spiegano meglio la variabile dipendente. Ho scoperto che il modello w ha l'AIC più basso e ora voglio fare alcune statistiche sulle prestazioni su quel modello per avere un'idea della potenza predittiva del modello. Dal momento che tutto ciò che so è che questo modello è migliore degli altri due, ma non quanto sia buono.

Da quando ho usato tutti i dati per apprendere il modello (per poter confrontare tutti e tre i modelli) come posso procedere con le prestazioni del modello? Da quello che ho raccolto non posso semplicemente fare una convalida incrociata di k-fold sul modello finale che ho ottenuto dalla selezione del modello usando AIC ma devo iniziare dall'inizio con tutte le variabili esplicative incluse, è corretto? Penserei che sia il modello finale che ho scelto con AIC che voglio sapere quanto funziona bene, ma mi rendo conto che mi sono allenato su tutti i dati in modo che il modello possa essere distorto. Quindi, se dovessi iniziare dall'inizio con tutte le variabili esplicative in tutte le pieghe otterrò diversi modelli finali per alcune pieghe, posso semplicemente scegliere il modello dalla piega che ha dato il miglior potere predittivo e applicarlo al set completo di dati per confrontare AIC con gli altri due modelli (z e x)? O come funziona?

La seconda parte della mia domanda è una domanda di base sulla parametrizzazione eccessiva. Ho 156 punti dati, 52 è 1 il resto è 0. Ho 14 variabili esplicative tra cui scegliere per il modello w, mi rendo conto che non posso includere tutto a causa dell'eccessiva parametrizzazione, ho letto che dovresti usare solo il 10% del gruppo della variabile dipendente con il minor numero di osservazioni che sarebbe solo 5 per me. Sto cercando di rispondere a una domanda in ecologia, va bene selezionare le variabili di partenza che penso spiegano il meglio dipendente semplicemente in base all'ecologia? O come scegliere le variabili esplicative iniziali? Non sembra giusto escludere completamente alcune variabili.

Quindi ho davvero tre domande:

  • Potrebbe essere giusto testare le prestazioni su un modello addestrato sul set di dati completo con validazione incrociata?
  • In caso contrario, come scegliere il modello finale quando si esegue la convalida incrociata?
  • Come faccio a scegliere le variabili di partenza, quindi desidero parametrizzare eccessivamente?

Ci scusiamo per le mie domande disordinate e la mia ignoranza. So che sono state poste domande simili ma mi sento ancora un po 'confuso. Apprezzo qualsiasi pensiero e suggerimento.

Risposte:


7

È vero che è meglio utilizzare un set di dati di prova per convalidare il modello. Tuttavia, puoi ancora dire quanto bene ha funzionato il tuo modello sui tuoi dati, purché tu sia onesto su ciò che hai fatto. Quello che non puoi davvero fare è dire che lo farà bene su altri dati: probabilmente non lo farà. Sfortunatamente, molti articoli pubblicati suggeriscono almeno questa nozione errata.

Tu chiedi

va bene selezionare le variabili di partenza che penso spiegano il meglio dipendente semplicemente in base all'ecologia?

Non solo è OK, è meglio di qualsiasi schema automatizzato. In effetti, queste potrebbero anche essere le variabili finali . Dipende, in qualche modo, dall'estensione della conoscenza nel campo. Se non si sa molto su ciò che si sta ricercando, potrebbe essere necessario un approccio più esplorativo. Ma se hai buone ragioni per pensare che certe variabili debbano essere nel modello, allora inseriscile tutte. E direi di lasciarle lì, anche se non significative.


1

Se hai intenzione di fare la selezione del modello, penso che farai meglio a fare una ricerca esaustiva e ponderare ogni modello piuttosto che la raccolta delle ciliegie. Hai solo 14 variabili, il che è certamente fattibile - 16384 modelli diversi non sono proibitivi in ​​modo proibitivo, soprattutto perché le dimensioni del campione sono piccole. Vorrei anche esaminare i pesi normalizzati, definiti da:

wm=[lexp(12[AIClAICm])]1

Questi pesi presumono che l'AIC sia negativo due volte la probabilità di log più due volte il numero di beta. Se il modello migliore ha un peso vicino a basta usare quello. altrimenti dovresti fare una media dei tuoi risultati su modelli con un peso totale vicino a . Ciò che accade di solito è che un gruppo di variabili "core" dovrebbe essere sempre incluso, con incertezza su un insieme "non-core", e un terzo insieme di variabili non importanti che non compaiono mai in modelli con peso elevato.11

È inoltre possibile sostituire AIC con BIC o qualche altro IC basato su penalità per vedere quanto i pesi dipendono dalla specifica penalità di complessità utilizzata.


L'utilizzo di AIC su tutti i possibili modelli è un processo con estrema molteplicità per il quale mi chiedo delle prestazioni. Parlando in generale, non è sempre logico pensare a questo come un problema di selezione variabile, ma piuttosto come un problema di penalizzazione (restringimento).
Frank Harrell,

Esiste un processo che non ha estrema molteplicità nella selezione dei modelli? Hai a che fare con un enorme spazio discreto - questo porta inevitabilmente a un gran numero di confronti. Penso che la domanda sia più se il precedente implicito sui modelli sia ragionevole.
Probislogic

Ben messo. Ma penso che la maggior parte degli esercizi di selezione dei modelli siano superflui (vale a dire che la parsimonia non è tua amica) e il risultato del non avere affatto dei priori.
Frank Harrell,

Sono anche d'accordo, penso che i Bayes Factors siano i più utilizzati per problemi di struttura del modello, come ad esempio se usare la distribuzione normale o t. Non sono inutili per la selezione covariata, ma sono inefficienti rispetto al restringimento.
Probislogic

Ci scusiamo per il mio commento in ritardo, ma conosci un modo semplice per calcolare questo in R? Ho l'AIC: s in una lista o matrice. Sono abbastanza nuovo su R, quindi qualsiasi costruzione di funzioni complicate è difficile. Grazie!
Mael

0

Per rispondere "Potrebbe essere giusto testare le prestazioni su un modello addestrato sul set di dati completo con convalida incrociata?" NO, non penso che sia OK. Dovresti adattare tutti e 3 i modelli allo stesso sottoinsieme del tuo set di dati. Quindi esegui la convalida incrociata per vedere quale è meglio.


1
Quindi, se ho capito bene dovrei usare solo un training e un set di test per tutti i modelli? Posso ancora usare le mie 5 variabili per l'ultimo modello o è un rischio di parametrizzazione eccessiva? E non è un rischio con un solo set di training e test - poiché dipenderà molto da dove sarà la divisione con i pochi dati relativi che ho - o non è nulla di cui preoccuparsi? Altrimenti sembra che questo sarebbe il modo più corretto di farlo.
Mael

0

Potrebbe essere giusto testare le prestazioni su un modello addestrato sul set di dati completo con validazione incrociata?

Penso di no. Forse un metodo migliore sarebbe valutare ciascuno dei tre modelli usando ripetute validazioni incrociate. Dato che hai scelto le tue funzionalità in base a conoscenze precedenti, non devi preoccuparti della selezione delle funzionalità. Questo metodo consente di valutare le prestazioni del modello.

In caso contrario, come scegliere il modello finale quando si esegue la convalida incrociata?

Dopo aver valutato le prestazioni del modello utilizzando ripetute convalide incrociate, è possibile addestrare il modello finale utilizzando tutti i dati disponibili.

Come faccio a scegliere le variabili di partenza, quindi desidero parametrizzare eccessivamente?

Se ho capito bene: come suggerito da un collaboratore di cui sopra, puoi aggiungere le tue funzionalità in base alla conoscenza preliminare dell'area oppure devi eseguire la selezione delle funzionalità all'interno della convalida incrociata per evitare un eccesso di adattamento. La stessa procedura di selezione delle caratteristiche verrebbe quindi applicata a tutti i dati durante l'addestramento del modello finale. Non è possibile utilizzare questo modello per segnalare le prestazioni generalizzate del modello, questo deve provenire dalla stima di convalida incrociata.

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.