Translation not up to date
W notebookach można stosować nieparametryczne dopasowanie rozkładu, dopasowywanie rozkładu parametrycznego lub modelowanie regresji parametrycznej SPSS w predyktywnych analizach.
Dopasowanie do rozkładu nieparametrycznego
Analiza przeżycia analizuje dane, w których zmienna wynikla to czas do wystąpienia zdarzenia, które jest interesujące. Rozkład czasów zdarzeń jest zwykle opisywany przez funkcję przeżycia.
Non-parametric Distribution Fitting (NPDF) dostarcza oszacowanie funkcji przetrwania bez podejmowania jakichkolwiek założeń dotyczących rozkładu danych. NPDF obejmuje estymację Kaplana-Meiera, tabele życia i specjalizowane algorytmy rozszerzeń do obsługi lewego cenzurowa, ocenzurowanych odstępów czasu i powtarzających się danych zdarzeń.
Kod przykładowyPython :
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()
Parametryczne dopasowanie rozkładu
Analiza przeżycia analizuje dane, w których zmienna wynikla to czas do wystąpienia zdarzenia, które jest interesujące. Rozkład czasów zdarzeń jest zwykle opisywany przez funkcję przeżycia.
Parametric Distribution Fitting (PDF) udostępnia oszacowanie funkcji przeżycia poprzez porównanie funkcji dla kilku znanych rozkładów (wykładniczy, Weibull, log-normal i log-logistic) w celu określenia, które, o ile takie są, opisuje dane najlepiej. Ponadto rozkłady dla dwóch lub większej liczby grup obserwacji mogą być porównywane.
Python excample code:
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()
Modelowanie regresji parametrycznej
Modelowanie regresji parametrycznej (PRM) jest techniką analizy przeżycia, która obejmuje wpływ współzmiennych na czas przeżycia. PRM zawiera dwa typy modeli: przyspieszony czas awarii i frailty. Przyspieszone modele czasu awarii zakładają, że relacja logarytmu czasu przeżycia i współzmiennych jest liniowa. Modele są przydatne do analizowania powtarzających się zdarzeń, skorelowanych danych przeżycia lub w przypadku, gdy obserwacje są grupowane w grupy.
PRM automatycznie wybiera rozkład czasu przeżycia (wykładniczy, Weibulowy, log-normalny lub log-logistyczny), który najlepiej opisuje czasy przeżycia.
Kod przykładowyPython :
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()
Temat nadrzędny: Algorytmy analizy predykcyjnejSPSS