0 / 0
資料の 英語版 に戻る
ノートブックでの SPSS 予測分析生存分析アルゴリズム
最終更新: 2024年10月04日
ノートブックでの SPSS 予測分析生存分析アルゴリズム

ノートブックでは、ノンパラメトリック分布適合、パラメトリック分布適合、またはパラメトリック回帰モデル作成 SPSS 予測分析アルゴリズムを使用できます。

ノンパラメトリック分布の適合

生存分析では、結果変数が対象事象の発生までの時間であるデータを分析します。 事象の時間の分布は通常、生存関数によって記述されます。

ノンパラメトリック分布の適合 (NPDF) は、データの分布に関する仮定を行わずに、生存関数の推定を提供します。 NPDF には、Kaplan-Meier 推定、生命表や、左側打ち切り、区間打ち切り、および再帰事象データをサポートするための専用拡張アルゴリズムがあります。

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()

パラメトリック分布の適合

生存分析では、結果変数が対象事象の発生までの時間であるデータを分析します。 事象の時間の分布は通常、生存関数によって記述されます。

パラメトリック分布の適合 (PDF) は、いくつかの既知の分布 (指数分布、ワイブル分布、対数正規分布、および対数ロジスティック分布) で関数を比較して、データを最も適切に記述するものを判別することで、生存関数の推定を提供します。 さらに、2 つ以上のケース・グループの分布を比較することもできます。

Python サンプル・コード:

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()

パラメトリック回帰モデル作成

パラメトリック回帰モデル (PRM) は、生存時間に対する共変量の影響を取り込む生存分析方法です。 PRM には、2 つのモデル・タイプ (加速不全時間とフレイル) があります。 加速不全時間モデルは、生存時間の対数と共変量の関係が線型であると仮定します。 フレイル・モデル (変量効果モデル) は、再帰事象や相関生存データを分析する場合、あるいは観測値がグループにクラスター化される場合に有用です。

PRM は、生存時間を最もよく記述する生存時間分布 (指数分布、ワイブル分布、対数正規分布、または対数ロジスティック分布) を自動的に選択します。

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()

親トピック: SPSS 予測分析アルゴリズム