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 é:
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.
fonte
t=0
Respostas:
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.
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%.
fonte
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 ....
fonte