Due mondi si scontrano: usare ML per dati di sondaggi complessi


14

Sono colpito da un problema apparentemente facile, ma non trovo una soluzione adatta da diverse settimane.

Ho un sacco di dati di sondaggi / sondaggi (decine di migliaia di intervistati, diciamo 50k per set di dati), provenienti da qualcosa che spero sia chiamato sondaggio progettato in modo complesso con pesi, stratificazione, percorso specifico e così via. Per ogni intervistato, ci sono centinaia di variabili come dati demografici (età, regione ...) e quindi principalmente variabili binarie (al massimo, categoriche).

Vengo di più dal background di informatica / machine learning e ho dovuto imparare molto sulle statistiche e sulla metodologia del sondaggio classico . Ora voglio applicare l'apprendimento automatico classico a questi dati (ad esempio prevedere alcuni valori mancanti per un sottoinsieme di intervistati - in pratica attività di classificazione). Ma, tieni e guarda, non riesco a trovare un modo adatto per farlo. Come dovrei incorporare quegli strati, pesi o percorsi (come: se la domanda 1 ha risposto con l'opzione 2, fai la domanda 3, altrimenti salta)?

Applicare semplicemente i miei modelli (alberi, regressione logistica, SVM, XGBoost ...) sembra pericoloso (e, nella maggior parte dei casi, falliscono), dal momento che di solito assumono che i dati provengano da semplici campioni casuali o iid.

Molti metodi hanno almeno dei pesi, ma non aiutano molto. Inoltre, non è chiaro come dovrei combinare classi squilibrate e pesi dati dalla definizione dell'indagine insieme, non parlando di quelle cose di stratificazione. Inoltre, i modelli di risultati dovrebbero essere ben calibrati: la distribuzione prevista dovrebbe essere molto vicina a quella originale. Le buone prestazioni di previsione non sono gli unici criteri qui. Ho modificato la metrica di ottimizzazione per tener conto anche di questo (come la distanza della distribuzione prevista dalla distribuzione reale + accuratezza / MCC) e in alcuni casi ha aiutato, perché paralizzare le prestazioni in altri.

C'è un modo canonico come affrontare questo problema? Per me sembra un'area di ricerca fortemente sottovalutata. IMO molti sondaggi potrebbero trarre vantaggio dal potere di ML, ma non ci sono fonti. Come questi sono due mondi che non interagiscono tra loro.

Quello che ho trovato finora:

Domande CV correlate, ma nessuna di esse contiene alcuna risposta utilizzabile su come affrontarla (o nessuna risposta, non ciò che chiedo o presentare raccomandazioni fuorvianti):


Puoi definire cosa intendi per " fallimento nella maggior parte dei casi "? Come giudichi il successo di un modello in questa impostazione attuale?
usεr11852 dice Reinstate Monic il

Non sono nemmeno vicini alla distribuzione originale o sembra non avere senso eseguirli (ad esempio quando è incluso il routing).
Kotrfa,

Risposte:


3

( Aggiornamento: non c'è ancora molto lavoro sui metodi ML "moderni" con dati di sondaggi complessi, ma il numero più recente di Statistical Science ha un paio di articoli di rassegna. Vedi in particolare Breidt e Opsomer (2017), "Model-Assisted Stima del sondaggio con moderne tecniche di predizione " .

Inoltre, sulla base del documento di Toth ed Eltinge che hai citato, ora esiste un pacchetto R rpms che implementa CART per dati di sondaggi complessi.)

Ora voglio applicare l'apprendimento automatico classico a questi dati (ad esempio prevedere alcuni valori mancanti per un sottoinsieme di intervistati - in pratica attività di classificazione).

Non sono del tutto chiaro sul tuo obiettivo. Stai principalmente cercando di imputare le osservazioni mancanti, solo per avere un set di dati "completo" da dare a qualcun altro? Oppure disponi già di dati completi e desideri costruire un modello per prevedere / classificare le risposte di nuove osservazioni? Hai una domanda particolare a cui rispondere con i tuoi modelli o stai eseguendo il data mining in modo più ampio?

In entrambi i casi, la regressione logistica ponderata per sondaggi complessi / sondaggi è un metodo ragionevole e abbastanza ben compreso. C'è anche una regressione ordinale per più di 2 categorie. Questi daranno conto di strati e pesi dell'indagine. Hai bisogno di un metodo ML più elaborato di questo?

Ad esempio, potresti usare svyglmnel surveypacchetto di R. Anche se non si utilizza R, l'autore del pacchetto, Thomas Lumley, ha anche scritto un utile libro "Sondaggi complessi: una guida all'analisi che utilizza R" che copre sia la regressione logistica sia i dati mancanti per i sondaggi.

(Per l'imputazione, spero che tu abbia già familiarità con le questioni generali relative ai dati mancanti. In caso contrario, esamina approcci come l'imputazione multipla per aiutarti a spiegare in che modo il passaggio di imputazione influisce sulle tue stime / previsioni.)

Il routing delle domande è davvero un ulteriore problema. Non sono sicuro del modo migliore per affrontarlo. Per l'imputazione, forse puoi imputare un "passo" nel routing alla volta. Ad esempio, utilizzando un modello globale, imputare innanzitutto la risposta di tutti a "Quanti bambini hai?"; quindi esegui un nuovo modello sulla sottopopolazione pertinente (persone con più di 0 bambini) per imputare il passaggio successivo di "Quanti anni hanno i tuoi figli?"

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.