Vous pouvez utiliser un ajustement de distribution non paramétrique, un ajustement paramétrique de distribution ou une régression paramétrique des algorithmes d'analyse prédictive SPSS dans les cahiers.
Ajustement de la distribution non paramétrique
L'analyse de survie analyse les données dans lesquelles la variable de sortie correspond à la durée qui précède l'occurrence d'un événement d'intérêt. La distribution des durées d'événement est généralement décrite par une fonction de survie.
L'ajustement de la distribution non paramétrique (NPDF) fournit une estimation de la fonction de survie sans formuler d'hypothèses concernant la distribution des données. Le NPDF inclut une estimation Kaplan-Meier, des tables de survie et des algorithmes d'extension spécialisés permettant de prendre en charge les données censurées à gauche, les données censurées par intervalle et les données d'événements récurrents.
Exemple de code Python :
from spss.ml.survivalanalysis import NonParametricDistributionFitting
from spss.ml.survivalanalysis.params import DefinedStatus, Points, StatusItem
npdf = NonParametricDistributionFitting(). \
setAlgorithm("KM"). \
setBeginField("time"). \
setStatusField("status"). \
setStrataFields(["treatment"]). \
setGroupFields(["gender"]). \
setUndefinedStatus("INTERVALCENSORED"). \
setDefinedStatus(
DefinedStatus(
failure=StatusItem(points = Points("1")),
rightCensored=StatusItem(points = Points("0")))). \
setOutMeanSurvivalTime(True)
npdfModel = npdf.fit(df)
predictions = npdfModel.transform(data)
predictions.show()
Ajustement de la distribution paramétrique
L'analyse de survie analyse les données dans lesquelles la variable de sortie correspond à la durée qui précède l'occurrence d'un événement d'intérêt. La distribution des durées d'événement est généralement décrite par une fonction de survie.
L'ajustement de la distribution paramétrique (PDF) fournit une estimation de la fonction de survie en comparant les fonctions de plusieurs distributions connues (exponentielle, Weibull, log-normale et log-logistique) afin de déterminer celle qui décrit le mieux les données, le cas échéant. Il est également possible de comparer les distributions pour deux groupes de cas ou plus.
Python code excample :
from spss.ml.survivalanalysis import ParametricDistributionFitting
from spss.ml.survivalanalysis.params import DefinedStatus, Points, StatusItem
pdf = ParametricDistributionFitting(). \
setBeginField("begintime"). \
setEndField("endtime"). \
setStatusField("status"). \
setFreqField("frequency"). \
setDefinedStatus(
DefinedStatus(
failure=StatusItem(points=Points("F")),
rightCensored=StatusItem(points=Points("R")),
leftCensored=StatusItem(points=Points("L")))
). \
setMedianRankEstimation("RRY"). \
setMedianRankObtainMethod("BetaFDistribution"). \
setStatusConflictTreatment("DERIVATION"). \
setEstimationMethod("MRR"). \
setDistribution("Weibull"). \
setOutProbDensityFunc(True). \
setOutCumDistFunc(True). \
setOutSurvivalFunc(True). \
setOutRegressionPlot(True). \
setOutMedianRankRegPlot(True). \
setComputeGroupComparison(True)
pdfModel = pdf.fit(data)
predictions = pdfModel.transform(data)
predictions.show()
Modélisation de régression paramétrique
La modélisation de régression paramétrique (PRM) est une technique d'analyse de survie qui intègre les effets des covariables dans les durées de survie. La PRM inclut deux types de modèle : le temps de défaillance accéléré et la fragilité. Les modèles de temps de défaillance accéléré supposent que la relation entre le logarithme de durée de survie et les covariables est linéaire. Les modèles de fragilité, ou effets aléatoires, s'avèrent utiles pour analyser les événements récurrents, les données de survie corrélées ou lorsque les observations sont regroupées.
La PRM sélectionne automatiquement la distribution de la durée de survie (exponentielle, Weibull, log-normale ou log-logistique) qui décrit le mieux les durées de survie.
Exemple de code Python :
from spss.ml.survivalanalysis import ParametricRegression
from spss.ml.survivalanalysis.params import DefinedStatus, Points, StatusItem
prm = ParametricRegression(). \
setBeginField("startTime"). \
setEndField("endTime"). \
setStatusField("status"). \
setPredictorFields(["age", "surgery", "transplant"]). \
setDefinedStatus(
DefinedStatus(
failure=StatusItem(points=Points("0.0")),
intervalCensored=StatusItem(points=Points("1.0"))))
prmModel = prm.fit(data)
PMML = prmModel.toPMML()
statXML = prmModel.statXML()
predictions = prmModel.transform(data)
predictions.show()
Rubrique parent: SPSS