Spark Análisis de supervivencia clientes AFT

Jonathan Quiza
Ciencia y Datos
Published in
3 min readOct 15, 2020

Este artículo de algunos conceptos básicos de los análisis de supervivencia que incluye el modelo semiparamétrico de riesgos proporcionales así mismo el modelo paramétrico de AFT.

Estimación del evento

Estimación de Kaplan-Meier

Es un método no paramétrico (no asume ninguna función de probabilidad) y por máxima verosimilitud, es decir se basa en maximizar la función de verosimilitud de la muestra. Una muestra aleatoria de tamaño n, extraída de una población, estará formada por k (k £ n) tiempos t1 < t2< …< tk en los que se observan eventos. En cada tiempo ti existen ni “individuos en riesgo.

fuente(https://bit.ly/2QtWrEv)

La elección del modelo debe depender de si se cumple o no el supuesto del modelo.El objetivo de este artículo es revisar los conceptos básicos del análisis de supervivencia. Se proporcionarán discusiones sobre el modelo de Cox y el modelo de AFT.

El uso y la interpretación del modelo de métodos de supervivencia se ilustran utilizando un conjunto de datos simulados artificialmente.

fuente(https://bit.ly/2KUBSfv)

Modelo de riesgo proporcional (Cox)

Se han estudiado métodos que permiten estimar las funciones de riesgo y supervivencia para una muestra aleatoria y comparar dos o más estimaciones. El objetivo ahora es plantear un modelo que permita comparar dichas estimaciones, teniendo en cuenta el efecto de otras variables distintas de la que se utiliza para definir los grupos.

fuente(https://bit.ly/2rjnG6p)

Importar librerías

from pyspark.sql import SparkSession
from pyspark.sql.types import *
from pyspark.sql import functions as F
from pyspark.ml import Pipeline
from pyspark.ml.linalg import Vectors
from pyspark.ml.regression import AFTSurvivalRegression

session spark

spark = SparkSession.builder \
.master(“local[*]”) \
.appName(“Spark survival”) \
.getOrCreate()

Probabilidad quintiles

quantileProbabilities = [0.3, 0.6]

AFT survial

aft = AFTSurvivalRegression(quantileProbabilities=quantileProbabilities,
quantilesCol=”quantiles”)

Model

model = aft.fit(training)

Coefficientes

print("Coefficients: {0}".format(str(model.coefficients)))print("Intercept: {0}".format(str(model.intercept)))print("Scale: {0}".format(str(model.scale)))

Conclusión

En conclusión, aunque el modelo de riesgos proporcionales de Cox tiende a ser más popular en la literatura, el modelo AFT también debe considerarse al planificar un análisis de supervivencia. No hace falta decir que la elección debe ser impulsada por el resultado deseado o el ajuste a los datos.
la definición del tiempo es crucial para poder entender el corte de supervivencia

Referente

Robust sparse accelerated failure time model for survival analysis aquí

Espero le hayas gustado esta publicación sobre como integrar AFTsurvival usando PySpark

linkedin:

Gracias

--

--

Jonathan Quiza
Ciencia y Datos

Lead ML Engineer / Data science / Machine Learning / MLops