È obbligatorio sottoinsieme dei dati per convalidare un modello?


8

Non riesco a trovare la stessa pagina del mio supervisore quando si tratta di convalidare il mio modello. Ho analizzato i residui (osservati rispetto ai valori adattati) e l'ho usato come argomento per discutere i risultati ottenuti dal mio modello, tuttavia il mio supervisore insiste sul fatto che l'unico modo per convalidare un modello è creare un sottoinsieme casuale dei miei dati, generare il modello con il 70% di esso e quindi applicare il modello sul restante 30%.

Il fatto è che la mia variabile di risposta è zero gonfiata (85% di essa, per essere più precisi) e preferisco non creare un sottoinsieme in quanto è già molto difficile convergere in un risultato.

Quindi, la mia domanda è: quali sono i modi possibili (e scientificamente accettabili) per convalidare un modello? Il subsetting dei dati è l'unico modo? Se possibile, fai riferimento alle tue domande con articoli / libri in modo che io possa usarlo come argomento quando presenti le mie alternative.


Se hai scelto il modello in base a tutti i dati, comunque, ciò non conta ancora ...
Aaron ha lasciato Stack Overflow il

Vuoi dire che dovrei scegliere il mio modello in base a un sottoinsieme dei miei dati? Come posso analizzare correttamente la distribuzione dei miei dati se non li utilizzo tutti?
Eric Lino,

Sì, questo è esattamente ciò che intendo: se si desidera disporre di dati per validare veramente il proprio modello, tali dati devono essere divulgati quando si effettua la scelta dell'analisi. Questo è ciò che Wikipedia chiama i set di formazione e validazione. Se usi il tuo set di validazione per adattare gli iperparametri, avresti persino bisogno di un terzo set (il set di test) per testare il tuo modello finale.
Aaron ha lasciato Stack Overflow l'

Non che io lo stia sostenendo; nel tuo caso, forse stai meglio usando metodi diagnostici e di selezione dei modelli più tradizionali, che è ovviamente quello che stai chiedendo (e purtroppo, non ho il tempo di rispondere correttamente).
Aaron ha lasciato Stack Overflow l'

2
La risposta che stai cercando è probabilmente nella sezione 5.3 di Frank Harrell s' regressione Modeling Strategie .
Aaron ha lasciato Stack Overflow l'

Risposte:


6

Per iniziare, suggerirei che di solito è bene diffidare delle affermazioni che ce n'è solo unamodo di fare qualcosa. Dividere un campione ottenuto in un "training" e un set di dati "testing" è un approccio comune in molte applicazioni di machine learning / data science. Spesso, questi approcci di modellizzazione sono meno interessati ai test di ipotesi su un processo di generazione dei dati sottostante, vale a dire che tendono ad essere in qualche modo ateorici. In realtà, per lo più questo tipo di divisioni di training / test vuole solo vedere se il modello è troppo adatto in termini di prestazioni predittive. Naturalmente, è anche possibile utilizzare un approccio di addestramento / test per vedere se un determinato modello si replica in termini di parametri "significativi" o per vedere se le stime dei parametri rientrano negli intervalli previsti in entrambi i casi.

In teoria, convalidare o invalidare i modelli è ciò che la scienza, scritta in grande, dovrebbe fare. Ricercatori indipendenti, che esaminano, generano e testano separatamente ipotesi che supportano o confutano argomenti su una teoria sul perché o in quali circostanze si verifichi un fenomeno osservabile - questa è l'impresa scientifica in un guscio di noce (o almeno in una frase troppo lunga). Quindi, per rispondere alla tua domanda, anche a me le divisioni di addestramento / test non "convalidano" un modello. Questo è qualcosa che prende il peso di anni di prove accumulate da più ricercatori indipendenti che studiano lo stesso insieme di fenomeni. Tuttavia, garantirò che questa interpretazione potrebbe essere una differenza nella semantica su ciò che intendo convalidare il modello rispetto a ciò che il termine convalida ha significato nelle impostazioni applicate ...

A seconda dei dati e dell'approccio alla modellazione, potrebbe non essere sempre appropriato dal punto di vista statistico suddividere il campione in set di addestramento e test. Ad esempio, a piccoli campioni può essere particolarmente difficile applicare questo approccio. Inoltre, alcune distribuzioni possono avere determinate proprietà che le rendono difficili da modellare anche con campioni relativamente grandi. Il tuo caso a gonfiaggio zero probabilmente si adatta a quest'ultima descrizione. Se l'obiettivo è di ottenere un'approssimazione della "verità" su un insieme di relazioni o processi sottostanti ritenuti responsabili di alcuni fenomeni, non sarete ben serviti adottando consapevolmente un approccio sottovalutato per testare una determinata ipotesi. Quindi forse il primo passo è quello di eseguire un'analisi di potenza per vedere se è probabile che tu possa replicare la constatazione di interesse nei tuoi dati sottoposti a sottoinsiemi.

Un'altra opzione è quella di specificare diversi modelli per vedere se "meglio" spiegano i dati osservati. L'obiettivo qui sarebbe quello di identificare il modello migliore tra una serie di alternative ragionevoli. Questo è un argomento relativo, non assoluto, che faresti sul tuo modello. In sostanza, stai ammettendo che potrebbero esserci altri modelli che potrebbero essere postulati per spiegare i tuoi dati, ma il tuo modello è il migliore dell'insieme testato di alternative (almeno lo speri). Tutti i modelli nel set, incluso il tuo modello ipotizzato, dovrebbero essere teoricamente fondati; altrimenti corri il rischio di creare un gruppo di uomini statistici di paglia.

Esistono anche fattori di Bayes in cui è possibile calcolare il peso delle prove fornite dal modello, dati i dati, per un'ipotesi specifica relativa a scenari alternativi.

Questo è ben lungi dall'essere un elenco esaustivo di opzioni, ma spero che sia di aiuto. Scendo dalla soapbox ora. Ricorda solo che ogni modello in ogni studio pubblicato sul comportamento umano non è corretto. Ci sono quasi sempre variabili omesse rilevanti, interazioni non modellate, popolazioni campionate in modo imperfetto e un semplice errore di campionamento in atto che offusca la verità sottostante.


Apprezzo tutto il tempo che hai trascorso a scrivere una risposta così approfondita, Matt. Tuttavia, ritengo che, sebbene mi aiuti a livello concettuale, manca qualche riferimento sul fatto che avrò molto bisogno di discutere questo approccio con il mio supervisore. Ti capita di avere documenti / libri sulle probabilità di sottoinserimento di dati? Se non fosse possibile, consiglieresti un pacchetto R su cui posso eseguire questa analisi di potenza di cui hai parlato?
Eric Lino,

Per i pacchetti R e la potenza dipende dal modello (pwr, simsem, ecc.). Non esiste una sola risposta. Anche in termini di probabilità di sottoimpostazione dei tuoi dati, penso che sia solo un altro modo di chiedere potere se ti capisco correttamente. Se stai gravitando verso il power bit, ti consiglio di concentrarti sul tuo effetto più debole e di vedere quale sarebbe la dimensione minima del campione per replicarlo, una sorta di scenario peggiore.
Matt Barstead,

Vedo. Bene, sto usando il pacchetto glmmadmb, sviluppato da Ben Bolker e altri. La mia variabile di risposta è zero gonfiata (numero di persone con una specifica malattia rara) e le mie variabili indipendenti includono distribuzioni normali, non normali e zero gonfiate. Dato che ho a che fare con una serie temporale, ho usato "anno" come fattore di raggruppamento e mi è sembrata una buona idea esplorare la famiglia di modelli ZIGLMM. Queste informazioni ti aiutano ad aiutarmi?
Eric Lino,

2
Potresti voler dare un'occhiata al pacchetto simR . Per quanto ne so, è il pacchetto esistente più flessibile per analisi di potenza con modelli lineari e lineari generalizzati. Green, P., & MacLeod, CJ (2016). SIMR: un pacchetto R per l'analisi della potenza di modelli lineari generalizzati mediante simulazione. Metodi in ecologia ed evoluzione.
Matt Barstead,

10

La suddivisione dei dati è in genere un modo molto non competitivo di eseguire la convalida interna. Questo a causa della grave volatilità - diverso modello "finale" e diversa "convalida" al momento della suddivisione, e perché l'errore quadratico medio della stima (di cose come l'errore di previsione assoluto medio eR2) è superiore a una buona procedura di ricampionamento come il bootstrap. Lo approfondisco nel mio libro sulle strategie di modellazione della regressione e nelle note sul corso. Il ricampionamento ha un ulteriore vantaggio: esporre la volatilità nella selezione delle caratteristiche.


credo ancora che la motivazione principale del PO sia sapere se il suo modello ZIP è adeguato = controllo residuo, non selezione del modello / funzione o prestazione predittiva, ma forse può chiarirsi
Florian Hartig,

Sì, @FlorianHartig è corretto! Comunque il bootstrap mi interessa (se non per questo studio, per la raccolta di conoscenze) e cercherò sicuramente il tuo sito web per riferimento futuro. Grazie mille per l'input.
Eric Lino,

6

Penso che le risposte qui divergano perché la domanda è in qualche modo poco chiara, soprattutto: cosa intendi per "convalida"?

Una divisione 70/30 (o una convalida incrociata per quella materia) viene solitamente eseguita per valutare le prestazioni predittive di un modello o di un'intera catena di analisi (possibilmente includendo la selezione del modello). Tale convalida è particolarmente importante se si stanno confrontando diverse opzioni di modellazione in termini di prestazioni predittive.

È un altro caso se non si desidera selezionare i modelli e non si è interessati alle prestazioni predittive in quanto tali, ma si è interessati all'inferenza (stime di regressione / valori p) e si desidera convalidare se il proprio modello / ipotesi di errore del GLMM sono adeguati. In questo caso, sarebbe possibile prevedere l'aggancio e confrontare le previsioni con i dati osservati, ma la procedura di gran lunga più comune è fare un'analisi residua. Se hai bisogno di dimostrarlo al tuo supervisore: questo è fondamentalmente ciò che ogni manuale di statistica insegna a fare subito dopo la regressione lineare.

Vedi qui per come eseguire un'analisi residua per i GLMM (inclusa l'inflazione zero con glmmTMB, che preferirei con glmmadmb) con il pacchetto DHARMa (dichiarazione di non responsabilità: sono il manutentore).


Grazie per una risposta così chiara, ma perspicace. Il mio caso iniziale è stato il secondo esempio che hai fornito; Non mi interessa valutare le prestazioni predittive del mio modello, ma solo quantificare le relazioni sottostanti tra la mia variabile di risposta e quelle indipendenti. Non sono sicuro di aver capito esattamente cosa intendi per "prevedere l'attesa". Ti riferisci ai valori previsti generati sull'output dell'oggetto modello dopo averlo eseguito?
Eric Lino,

Voglio dire che calcoli i residui / i preconcetti confrontando previsioni e osservazioni sui dati di controllo (= convalida)
Florian Hartig,

2

La risposta breve è sì, è necessario valutare le prestazioni del modello su dati non utilizzati in formazione.

Le moderne tecniche di costruzione di modelli sono estremamente efficaci nell'adattare arbitrariamente i dati e possono facilmente trovare segnali nel rumore. Pertanto, le prestazioni di un modello sui dati di allenamento sono quasi sempre distorte.

Vale la pena dedicare del tempo ad esplorare l'argomento della convalida incrociata (anche se non si stanno sintonizzando gli iperparametri) per comprendere meglio il motivo per cui vengono divulgati i dati, quando funziona, quali sono le ipotesi coinvolte, ecc. Uno dei miei articoli preferiti è :

Nessuno stimatore imparziale della varianza della convalida incrociata di k-fold


7
Questo non è corretto in generale. Il bootstrap sorpassa notevolmente i dati in termini di errori al quadrato medio su quantità comeR2. Sono necessari dati non utilizzati in formazione, ma possono essere dati diversi per ciascun ricampionamento.
Frank Harrell,

Stai suggerendo di eseguire il bootstrap sui dati dati?
Chris,

Leggi sul bootstrap di ottimismo Efron-Gong che è il metodo standard di validazione del modello bootstrap e quello implementato nel rmspacchetto R validatee calibratefunzioni. Con questo bootstrap non ci sono decisioni una tantum sul trasferimento dei dati. Come il mio libro RMS e le note del corso descrivono in dettaglio, la quantità di overfitting è stimata vedendo quanto un modello sviluppato in un campione bootstrap cade a pezzi quando applicato al campione completo (sovrapposto) originale. Il bootstrap deve ripetere nuovamente tutti i passaggi di modellazione per ogni iterazione.
Frank Harrell,

Interessante. Ho controllato i tuoi appunti e il foglio di Efron. Sembra che per i modelli che si adattano rapidamente potremmo realizzare alcuni vantaggi utilizzando versioni specifiche del bootstrap.
Chris,

E l'unica cosa che renderebbe il bootstrap sembra essere lento (anche se sarebbe comunque più veloce di convalida incrociata, che richiede 100 ripetizioni di 10 volte convalida incrociata per fornire stabilità) è quello di confrontarlo con il singolo spaccare i dati che fornisce solo un'illusione di stabilità.
Frank Harrell,
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.