Modello di sopravvivenza per la previsione di Churn - Predittori variabili nel tempo?


17

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 è:

logiot(h(tioj))=α0+α1Tj+β1Xio+β2Zioj

Quindi il problema è che quando si usano covariate variabili nel tempo e si prevedono previsioni (nel futuro ancora invisibile) con nuovi dati, è noto.Zj

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.Zj

Un paio di domande: in primo luogo, sei obbligato a usare un modello temporale discreto? Quello che vuoi fare potrebbe essere più semplice in un modello di sopravvivenza parametrico. Secondo, saresti in grado di fornire un esempio di cosa intendi per zangola; forse forse solo un esempio di come appaiono i tuoi dati?
Jason Morgan,

@JWM. Churn significa che il cliente ha cancellato il proprio account. Dal momento che conosco solo il mese in cui il cliente ha annullato, penso che il tempo discreto sia appropriato. Credo che lo stesso problema con i predittori variabili nel tempo esista se il modello è tempo discreto o continuo (Cox o AFT) No?
B_Miner

Mi scuso per non aver ancora capito la tua preoccupazione. Dovresti essere in grado di stimare il tuo modello abbastanza bene. Tuttavia, poiché è probabile che si verifichi un errore di misurazione nel TVC e nella variabile dipendente, è consigliabile utilizzare un ritardo del TVC nel modello. Altrimenti, si rischia di utilizzare un valore covariato che viene misurato dopo il verificarsi dell'evento come predittore per quell'evento. È possibile visualizzare il problema di coerenza temporale. Mentre so che il tuo obiettivo è la previsione, se desideri intervalli di confidenza ragionevoli, vorrai stimare errori standard robusti (almeno).
Jason Morgan,

@JVM apparentemente non sono riuscito a spiegarmi bene. Ho aggiunto una risposta alla domanda.
B_Miner

t=0S>0P(Tio>S+X|FS)

Risposte:


1

Grazie per il chiarimento, B_Miner. Non faccio molte previsioni da solo, quindi prendi ciò che segue con un pizzico di sale. Ecco cosa farei almeno come primo taglio dei dati.

  • Innanzitutto, formulare e stimare un modello che spieghi i tuoi TVC. Esegui tutte le convalide incrociate, il controllo degli errori, ecc. Per assicurarti di avere un modello decente per i dati.
  • In secondo luogo, formulare e stimare un modello di sopravvivenza (di qualunque sapore). Esegui tutte le convalide incrociate e il controllo degli errori per assicurarti che anche questo modello sia ragionevole.
  • In terzo luogo, optare per un metodo per utilizzare le previsioni del modello TVC come base per la previsione dei rischi di abbandono e di qualsiasi altra cosa si desideri. Ancora una volta, verifica che le previsioni siano ragionevoli utilizzando il tuo campione.

Una volta che hai un modello che ritieni ragionevole, suggerirei di avviare il bootstrap dei dati come un modo per incorporare l'errore nel primo modello TVC nel secondo modello. Fondamentalmente, applica i passaggi 1-3 N volte, ogni volta prendendo un campione bootstrap dai dati e producendo una serie di previsioni. Quando hai un numero ragionevole di previsioni, riassumile in qualsiasi modo ritieni appropriato per il tuo compito; ad esempio, fornire un rischio medio di abbandono per ciascun profilo di interesse individuale o covariato nonché intervalli di confidenza al 95%.


@JVM. Ti leggo correttamente che il tuo suggerimento è la mia ultima opzione di soluzione sopra (nell'aggiornamento finale). Che sviluppi modelli per prevedere ogni Z (TVC) da utilizzare nel modello di sopravvivenza reale?
B_Miner

2

A mio avviso, esistono due paradigmi di analisi della sopravvivenza che potrebbero essere utilizzati. Il quadro di regressione di Cox consente covariate variabili nel tempo e produrrebbe una stima del rischio di annullamento condizionato su una particolare serie di covariate rispetto al livello medio di annullamento. Anche il framework glm con errori di Poisson è un modello di rischio proporzionale ed è particolarmente adatto per intervalli discreti. JVM ha sottolineato che esiste un potenziale errore nell'uso di dati incompleti nel mese corrente, ma la sensazione che ottengo è che si desidera una stima subordinata all'ultimo valore di una co-variabile o serie di covariate. Una migliore descrizione della situazione dei dati potrebbe fornire esempi meglio funzionanti ....

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.