0 / 0
Go back to the English version of the documentation
SPSS predykcyjne algorytmy analizy przeżycia w notebookach
Last updated: 28 kwi 2023
SPSS predykcyjne algorytmy analizy przeżycia w notebookach

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

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more