Sto cercando di costruire un modello predittivo per la previsione dell'abbandono e sto cercando di utilizzare un modello di sopravvivenza a tempo discreto adattato a un set di dati di addestramento del periodo di persona (una riga per ciascun cliente e periodo discreto a rischio, con un indicatore per l'evento - uguale a 1 se la zangola avveniva in quel periodo, altrimenti 0).
- Sto adattando il modello usando la normale regressione logistica usando la tecnica di Singer e Willet.
- La sofferenza di un cliente può accadere ovunque durante un mese, ma è solo alla fine del mese che ne siamo a conoscenza (cioè durante quel mese che se ne sono andati). 24 mesi vengono utilizzati per l'allenamento.
- La variabile temporale utilizzata è il tempo di origine del campione - tutti i clienti attivi al 31/12/2008 - ricevono tutti t = 0 a partire da gennaio 2009 (non il modo classico per farlo, ma credo che il modo in cui si costruisce un modello predittivo rispetto a uno statistico tradizionale). Una covariata utilizzata è il mandato del cliente in quel momento.
Ci sono una serie di covariate che sono state costruite - alcune che non cambiano attraverso le righe del set di dati (per un determinato cliente) e altre che lo fanno.
Queste covariate con varianti temporali sono il problema e ciò che mi sta causando mette in discussione un modello di sopravvivenza per la previsione di churn (rispetto a un classificatore regolare che prevede churn nei prossimi x mesi in base ai dati dell'istantanea corrente). Quelli invarianti nel tempo descrivono l'attività del mese precedente e si prevede che siano fattori scatenanti importanti.
L'implementazione di questo modello predittivo, almeno basato sul mio pensiero attuale, è di valutare la base di clienti alla fine di ogni mese, calcolando la probabilità / rischio di abbandono nel corso del mese successivo. Quindi di nuovo per i prossimi 1,2 o 3 mesi. Quindi per i successivi 1,2,3,4,5,6 mesi. Per la probabilità di churn a 3 e 6 mesi, utilizzerei la curva di sopravvivenza stimata.
Il problema:
Quando si tratta di pensare al punteggio, come posso incorporare i predittori variabili nel tempo? Sembra che posso segnare solo con predittori invarianti di tempo o per includere quelli che sono invarianti di tempo, devi renderli invarianti di tempo - impostare il valore "adesso".
Qualcuno ha esperienza o pensieri su questo uso di un modello di sopravvivenza?
Aggiornamento basato sul commento di @JVM:
il problema non riguarda la stima del modello, l'interpretazione dei coefficienti, la rappresentazione dei diagrammi di rischio / sopravvivenza di interessanti valori di covariata utilizzando i dati di addestramento, ecc. Il problema sta nell'utilizzare il modello per prevedere il rischio per un determinato cliente. Di 'alla fine di questo mese, voglio segnare tutti coloro che sono ancora clienti attivi con questo modello. Voglio prevedere che il rischio preveda x periodi (rischio di chiusura del conto alla fine del mese prossimo. Rischio di chiusura del conto entro la fine di due mesi da adesso, ecc.). Se ci sono covariate variabili nel tempo, i loro valori sono sconosciuti in tutti i periodi futuri, quindi come utilizzare il modello?
Aggiornamento finale:
un set di dati del periodo persona avrà una voce per ogni persona e ogni periodo di tempo sono a rischio. Supponiamo che ci siano periodi di tempo J (forse J = 1 ... 24 per 24 mesi) Diciamo che costruisco un modello di sopravvivenza nel tempo discreto, dove per semplicità trattiamo semplicemente il tempo T come lineare e abbiamo due covariate X e Z dove X è tempo -invariante, nel senso che è costante in ogni periodo per la sua persona e Z varia nel tempo, il che significa che ogni record per la sua persona può assumere un valore diverso. Ad esempio, X potrebbe essere il genere dei clienti e Z potrebbe essere il valore per l'azienda del mese precedente. Il modello per il logit del pericolo per la persona nel jth periodo di tempo è:
Quindi il problema è che quando si usano covariate variabili nel tempo e si prevedono previsioni (nel futuro ancora invisibile) con nuovi dati, è noto.
Le uniche soluzioni che posso pensare sono:
- Non usare covariate variabili nel tempo come Z. Ciò indebolirebbe notevolmente il modello per prevedere l'evento di ribaltamento, anche se, ad esempio, vedere una diminuzione di Z ci direbbe che il cliente si sta disimpegnando e forse si prepara a partire.
- Utilizzare covariate variabili nel tempo ma ritardarle (come sopra era Z) che ci consente di prevedere per quanti periodi abbiamo ritardato la variabile (di nuovo, pensando al modello che segna i nuovi dati correnti).
- Usa covariate variabili nel tempo ma tienile come costanti nella previsione (quindi il modello è stato adattato per dati variabili ma per la previsione li lasciamo costanti e simuliamo come le variazioni di questi valori, se osservate successivamente, influiranno sul rischio di sfocature.
- Utilizzare covariate variabili nel tempo ma imputare i loro valori futuri in base a una previsione da dati noti. Ad esempio, per ciascun cliente.