Ferramentas de análise de sobrevivência em Python [fechado]
46
Gostaria de saber se existem pacotes para python capazes de executar análises de sobrevivência. Eu tenho usado o pacote de sobrevivência em R, mas gostaria de portar meu trabalho para python.
É extremamente duvidoso que os desenvolvedores do Python para análise de sobrevivência tenham se empenhado em algo próximo ao que Terry Therneau e outros colocaram no pacote de sobrevivência R nos últimos 30 anos, incluindo testes extensivos. O pacote de sobrevivência é submetido aos procedimentos de teste mais rigorosos que já vi nas estatísticas.
precisa
2
Acordado. O survivalpacote de R está sob exame minucioso de uma grande comunidade.
Marc Claesen
O RPy (agora 2) é muito doloroso de instalar na minha experiência.
Zhubarb
Respostas:
21
AFAIK, não existem pacotes de análise de sobrevivência em python. Como o mbq comenta acima, a única rota disponível seria para o Rpy .
Mesmo se houvesse um pacote python puro disponível, eu seria muito cuidadoso ao usá-lo, em particular, observaria:
Com que frequência é atualizado.
Possui uma grande base de usuários?
Possui técnicas avançadas?
Um dos benefícios do R é que esses pacotes padrão recebem uma enorme quantidade de testes e feedback do usuário. Ao lidar com dados reais, casos extremos inesperados podem surgir.
(+1) Nome bastante inteligente para um pacote de sobrevivência.
Marc Claesen
8
python-asurv é um esforço para portar o software asurv para métodos de sobrevivência em astronomia. Pode valer a pena ficar de olho, mas cgillespie está certa sobre as coisas a observar: ainda há um longo caminho a percorrer e o desenvolvimento não parece ativo. (AFAICT existe apenas um método e, mesmo concluído, pode faltar o pacote para, digamos, bioestatísticos.)
Você provavelmente está melhor usando o pacote de sobrevivência no R do Python através de algo como RPy ou PypeR . Não tive problemas para fazer isso sozinho.
O PyIMSL contém várias rotinas para análises de sobrevivência. É grátis como na cerveja para uso não comercial, totalmente compatível com o contrário. Na documentação do Guia do usuário de estatísticas ...
Calcula as estimativas de Kaplan-Meier das probabilidades de sobrevivência: kaplanMeierEstimates ()
Analisa dados de sobrevivência e confiabilidade usando o modelo de riscos proporcionais de Cox: propHazardsGenLin ()
Analisa dados de sobrevivência usando o modelo linear generalizado: survivalGlm ()
Estimativas usando vários modos paramétricos: survivalEstimates ()
Estima uma função de risco à confiabilidade usando uma abordagem não paramétrica: nonparamHazardRate ()
Produz tabelas de vida de população e coorte: lifeTables ()
Você pode dar um exemplo disso? Estou curioso para experimentar!
user603
Eu acredito que você se refere à interface mágica do R (que usa rpy2). Eu também adoraria ver um exemplo rápido. (É meu entendimento que os modelos de sobrevivência ainda não estão totalmente disponíveis na statsmodels .)
chl
Não tenho muita certeza sobre os modelos de estatísticas, mas você pode obter blocos de anotações no github com exemplos das extensões C, Octave e R. Você precisa executar o Notebook para usá-los obviamente, mas tenho certeza de que pode usar o mesmo código em qualquer interface.
Carl Smith
3
@ user603 Aqui está uma demonstração simples: nbviewer.ipython.org/4383682 ; isso depende do iPython bastante recente, acredito.
precisa
2
Também quero mencionar o scikit-survival , que fornece modelos para análise de sobrevivência que podem ser facilmente combinados com ferramentas do scikit-learn (por exemplo, validação cruzada do KFold).
Até o momento em que este artigo foi escrito, o scikit-survival inclui implementações de
Estimador de Nelson-Aalen da função de risco cumulativo.
Estimador de Kaplan-Meier da função de sobrevivência.
Modelo de risco proporcional de Cox com e sem penalidade líquida elástica.
Modelo de tempo de falha acelerado.
Máquina de vetor de suporte de sobrevivência.
Modelo de Cox impulsionado por gradiente.
índice de concordância para avaliação de desempenho.
O scikit-survival é excelente para tarefas relacionadas à previsão de tempo para evento!
usar o seguinte código
1
Além de usar Ratravés RPyou equivalente, existem várias rotinas de análise de sobrevivência na biblioteca de python statsmodels (anteriormente sicpy.statsmodel). Eles estão no pacote "sandbox", o que significa que não devem estar prontos para produção no momento.
Por exemplo, você tem o modelo Cox de risco proporcional codificado aqui .
survival
pacote de R está sob exame minucioso de uma grande comunidade.Respostas:
AFAIK, não existem pacotes de análise de sobrevivência em python. Como o mbq comenta acima, a única rota disponível seria para o Rpy .
Mesmo se houvesse um pacote python puro disponível, eu seria muito cuidadoso ao usá-lo, em particular, observaria:
Um dos benefícios do R é que esses pacotes padrão recebem uma enorme quantidade de testes e feedback do usuário. Ao lidar com dados reais, casos extremos inesperados podem surgir.
fonte
Confira o projeto de linhas de vida para uma implementação simples e limpa de modelos de sobrevivência em Python, incluindo
Benefícios:
A documentação está disponível aqui: documentação e exemplos
Exemplo de uso:
Gráficos de exemplo da biblioteca de plotagem interna:
fonte
python-asurv é um esforço para portar o software asurv para métodos de sobrevivência em astronomia. Pode valer a pena ficar de olho, mas cgillespie está certa sobre as coisas a observar: ainda há um longo caminho a percorrer e o desenvolvimento não parece ativo. (AFAICT existe apenas um método e, mesmo concluído, pode faltar o pacote para, digamos, bioestatísticos.)
Você provavelmente está melhor usando o pacote de sobrevivência no R do Python através de algo como RPy ou PypeR . Não tive problemas para fazer isso sozinho.
fonte
O PyIMSL contém várias rotinas para análises de sobrevivência. É grátis como na cerveja para uso não comercial, totalmente compatível com o contrário. Na documentação do Guia do usuário de estatísticas ...
Calcula as estimativas de Kaplan-Meier das probabilidades de sobrevivência: kaplanMeierEstimates ()
Analisa dados de sobrevivência e confiabilidade usando o modelo de riscos proporcionais de Cox: propHazardsGenLin ()
Analisa dados de sobrevivência usando o modelo linear generalizado: survivalGlm ()
Estimativas usando vários modos paramétricos: survivalEstimates ()
Estima uma função de risco à confiabilidade usando uma abordagem não paramétrica: nonparamHazardRate ()
Produz tabelas de vida de população e coorte: lifeTables ()
fonte
Agora você pode usar o R a partir do IPython , portanto, pode querer usar o IPython com a extensão R.
fonte
rpy2
). Eu também adoraria ver um exemplo rápido. (É meu entendimento que os modelos de sobrevivência ainda não estão totalmente disponíveis na statsmodels .)Também quero mencionar o scikit-survival , que fornece modelos para análise de sobrevivência que podem ser facilmente combinados com ferramentas do scikit-learn (por exemplo, validação cruzada do KFold).
Até o momento em que este artigo foi escrito, o scikit-survival inclui implementações de
fonte
Além de usar
R
atravésRPy
ou equivalente, existem várias rotinas de análise de sobrevivência na biblioteca de python statsmodels (anteriormentesicpy.statsmodel
). Eles estão no pacote "sandbox", o que significa que não devem estar prontos para produção no momento.Por exemplo, você tem o modelo Cox de risco proporcional codificado aqui .
fonte