Modelo de sobrevivência para prever a rotatividade - preditores variáveis ​​no tempo?

17

Estou procurando criar um modelo preditivo para prever a rotatividade e pretendo usar um modelo de sobrevivência de tempo discreto ajustado a um conjunto de dados de treinamento por período de pessoa (uma linha para cada cliente e período discreto em que eles estavam em risco, com um indicador de evento - igual a 1 se a rotatividade ocorreu nesse período, mais 0).

  • Estou ajustando o modelo usando regressão logística comum usando a técnica de Singer e Willet.
  • A rotatividade de um cliente pode acontecer em qualquer lugar durante um mês, mas é apenas no final do mês que sabemos sobre ele (ou seja, em algum momento do mês em que eles saíram). 24 meses estão sendo usados ​​para treinamento.
  • A variável de tempo usada é o tempo de origem da amostra - todos os clientes ativos em 31/12/2008 - todos recebem t = 0 a partir de janeiro de 2009 (não é a maneira clássica de fazê-lo, mas acredito que é a maneira de criar modelo preditivo versus modelo estatístico tradicional). Uma covariável usada é a posse do cliente naquele momento.
  • Há uma série de covariáveis ​​que foram construídas - algumas que não mudam nas linhas do conjunto de dados (para um determinado cliente) e outras que mudam.

  • Essas covariáveis ​​variantes do tempo são o problema e o que está me causando questionar um modelo de sobrevivência para previsão de rotatividade (em comparação com um classificador regular que prevê rotatividade nos próximos x meses com base nos dados atuais do instantâneo). Os invariantes no tempo descrevem a atividade no mês anterior e devem ser gatilhos importantes.

A implementação desse modelo preditivo, pelo menos com base no meu pensamento atual, é pontuar a base de clientes no final de cada mês, calculando a probabilidade / risco de rotatividade em algum momento do próximo mês. Então novamente pelos próximos 1,2 ou 3 meses. Então para os próximos 1,2,3,4,5,6 meses. Para a probabilidade de churn de 3 e 6 meses, eu usaria a curva de sobrevida estimada.

O problema:

Quando se trata de pensar em pontuação, como posso incorporar preditores variáveis ​​no tempo? Parece que eu só posso pontuar com preditores invariantes no tempo ou incluir aqueles que são invariantes no tempo, você precisa torná-los invariantes no tempo - defina o valor "agora".

Alguém tem experiência ou opinião sobre esse uso de um modelo de sobrevivência?

Atualização baseada no comentário da @JVM:

O problema não é estimar o modelo, interpretar coeficientes, plotar os gráficos de perigo / sobrevivência de valores covariáveis ​​interessantes usando os dados de treinamento etc. O problema está em usar o modelo para prever riscos para um determinado cliente. Digamos que, no final deste mês, quero pontuar todos que ainda são clientes ativos com esse modelo. Quero prever que o risco seja estimado em x períodos (risco de fechar a conta no final do próximo mês. Risco de fechar a conta no final de dois meses a partir de agora, etc.). Se houver covariáveis ​​variáveis ​​no tempo, seus valores serão desconhecidos em períodos futuros, então como utilizar o modelo?

Atualização final:

um conjunto de dados de período de pessoa terá uma entrada para cada pessoa e a cada período de tempo em que ela estiver em risco. Digamos que haja J períodos (talvez J = 1 ... 24 por 24 meses) Digamos que eu construa um modelo de sobrevivência de tempo discreto, onde, por simplicidade, apenas tratamos o tempo T como linear e temos duas covariáveis ​​X e Z em que X é o tempo -invariante, o que significa que é constante em todos os períodos da i-ésima pessoa e Z varia no tempo, o que significa que cada registro da i-ésima pessoa pode assumir um valor diferente. Por exemplo, X pode ser o sexo dos clientes e Z pode ser quanto eles valeram para a empresa no mês anterior. O modelo para o logit do perigo para a i-ésima pessoa no j-ésimo período é:

euogEut(h(tEuj))=α0 0+α1Tj+β1XEu+β2ZEuj

Zj

As únicas soluções que posso pensar são:

  • Não use covariáveis ​​com variação de tempo como Z. Isso enfraqueceria bastante o modelo para prever o evento de agitação, já que, por exemplo, ver uma diminuição de Z nos indica que o cliente está se desengatando e talvez se preparando para sair.
  • Use covariáveis ​​que variam no tempo, mas as atrasam (como Z estava acima), o que nos permite prever quantos períodos passamos a variável (novamente, pensando no modelo que está registrando novos dados atuais).
  • Use covariáveis ​​variáveis ​​no tempo, mas mantenha-as constantes na previsão (para que o modelo tenha sido ajustado para dados variados, mas para previsão, nós os deixamos constantes e simulamos como as alterações nesses valores, se realmente observadas posteriormente, impactarão o risco de agitação.
  • Zj
B_Miner
fonte
Algumas perguntas: Primeiro, você está casado com um modelo de tempo discreto? O que você quer fazer pode ser mais simples em um modelo de sobrevivência paramétrico. Segundo, você seria capaz de fornecer um exemplo do que você entende por rotatividade; Como pode ser apenas um exemplo da aparência de seus dados?
Jason Morgan
@JWM. Churn significa que o cliente cancelou sua conta. Como sei apenas o mês em que o cliente cancelou, acho que um tempo discreto é apropriado. Acredito que o mesmo problema com os preditores variáveis ​​no tempo exista se o modelo for discreto ou contínuo (Cox ou AFT) Não?
B_Miner
Peço desculpas por ainda não ter compreendido sua preocupação. Você deve poder estimar seu modelo suficientemente bem. No entanto, como você provavelmente terá um erro de medição no seu TVC e na variável dependente, provavelmente use um atraso do TVC no modelo. Caso contrário, você corre o risco de usar um valor covariável que é medido após a ocorrência do evento como um preditor para esse evento. Você pode ver o problema de consistência de tempo. Embora eu saiba que seu objetivo é a previsão, se você quiser intervalos razoáveis ​​de confiança, poderá estimar erros padrão robustos (pelo menos).
Jason Morgan
@JVM, aparentemente, não consegui me explicar bem. Eu adicionei uma resposta na pergunta.
B_Miner
t=0s>0 0P(TEu>s+x|Fs)

Respostas:

1

Obrigado pelo esclarecimento, B_Miner. Eu não faço muitas previsões, então pegue o que se segue com uma pitada de sal. Aqui está o que eu faria como pelo menos um primeiro corte nos dados.

  • Primeiro, formule e calcule um modelo que explique seus TVCs. Faça toda a validação cruzada, verificação de erros etc., para garantir que você tenha um modelo decente para os dados.
  • Segundo, formule e estime um modelo de sobrevivência (de qualquer sabor). Faça toda a validação cruzada, verificação de erros, para garantir que este modelo também seja razoável.
  • Terceiro, escolha um método de usar as previsões do modelo de TVCs como base para prever riscos de rotatividade e o que mais você desejar. Mais uma vez, verifique se as previsões são razoáveis ​​usando sua amostra.

Uma vez que você tenha um modelo que considere razoável, sugiro inicializar os dados como uma maneira de incorporar o erro no primeiro modelo de TVC no segundo modelo. Basicamente, aplique as etapas 1 a 3 N vezes, sempre tirando uma amostra de autoinicialização dos dados e produzindo um conjunto de previsões. Quando você tiver um número razoável de previsões, resuma-as da maneira que julgar apropriada para sua tarefa; por exemplo, forneça risco médio de rotatividade para cada perfil de interesse individual ou covariável, bem como intervalos de confiança de 95%.

Jason Morgan
fonte
@JVM. Li corretamente que sua sugestão é minha última opção de solução acima (na atualização final). Que você desenvolve modelos para prever cada Z (TVC) a ser usado no modelo de sobrevivência real?
27511 B_Miner
2

A meu ver, existem dois paradigmas de análise de sobrevivência que podem ser usados. A estrutura de regressão de Cox permite covariáveis ​​variáveis ​​no tempo e produziria uma estimativa para o risco de cancelamento condicionado a qualquer conjunto particular de covariáveis ​​em relação ao nível médio de cancelamento. A estrutura glm com erros de Poisson também é um modelo de riscos proporcionais e é particularmente adequada para intervalos discretos. A JVM apontou que existe um erro em potencial no uso de dados incompletos no mês atual, mas a sensação é de que você deseja uma estimativa que depende do valor mais recente de uma covariável ou conjunto de covariáveis. Uma melhor descrição da situação dos dados pode render exemplos melhor trabalhados ....

DWin
fonte