In Notebooks können Sie die SPSS Predictive Analytics-Algorithmen für nicht parametrische Verteilungsanpassung, für parametrische Verteilungsanpassung oder für parametrische Regressionsmodellierung verwenden.
Nicht parametrische Verteilungsanpassung (NPDF)
Die Überlebensanalyse analysiert Daten, deren Ergebnisvariable die Zeit bis zum Auftreten eines relevanten Ereignisses ist. Die Verteilung der Ereigniszeiten wird in der Regel von einer Überlebensfunktion beschrieben.
Die nicht parametrische Verteilungsanpassung (Non-parametric Distribution Fitting - NPDF) stellt eine Schätzung der Überlebensfunktion bereit, ohne Annahmen zur Verteilung der Daten zu treffen. NPDF schließt Kaplan-Meier-Schätzung, Sterbetafeln und spezialisierte Erweiterungsalgorithmen ein, um Daten linkszensierter, intervallzensierter und wiederholt auftretender Ereignisse zu unterstützen.
Python-Beispielcode:
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()
Parametrische Verteilungsanpassung (PDF)
Die Überlebensanalyse analysiert Daten, deren Ergebnisvariable die Zeit bis zum Auftreten eines relevanten Ereignisses ist. Die Verteilung der Ereigniszeiten wird in der Regel von einer Überlebensfunktion beschrieben.
Die parametrische Verteilungsanpassung (Parametric Distribution Fitting - PDF) vergleicht die Funktionen für mehrere bekannte Verteilungen (exponentielle, Weibull-, Log-Normal- und log-logistische Verteilung) und stellt dann eine Schätzung der Überlebensfunktion bereit, um zu ermitteln, welche Verteilung, sofern zutreffend, die Daten am besten beschreibt. Außerdem können die Verteilungen für zwei oder mehr Gruppen von Fällen verglichen werden.
Python-Beispielcode:
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()
Parametrische Regressionsmodellierung (RPM)
Die parametrische Regressionsmodellierung (Parametric Regression Modeling - PRM) ist eine Überlebensanalyseverfahren, das die Auswirkungen von Kovariaten auf die Überlebenszeiten berücksichtigt. PRM umfasst zwei Modelltypen: beschleunigte Ausfallzeit und Gebrechlichkeit (Frailty) Das Modell für beschleunigte Ausfallzeiten geht von einer linearen Beziehung zwischen dem Logarithmus der Überlebenszeit und den Kovariaten aus. Gebrechlichkeitsmodelle (Frailty Models) oder Modelle mit zufälligen Effekten sind beim Analysieren von regelmäßig auftretenden Ereignissen und der zugehörigen Überlebensdaten oder für in Clustern zusammengefassten Beobachtungen hilfreich.
PRM wählt automatisch die Überlebenszeitverteilung (exponentielle, Weibull-, Log-Normal- und log-logistische Verteilung) aus, die die Überlebenszeiten am besten beschreibt.
Python-Beispielcode:
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()
Übergeordnetes Thema: SPSS Vorhersageanalysealgorithmen