ノートブックでは、ノンパラメトリック分布適合、パラメトリック分布適合、またはパラメトリック回帰モデル作成 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 予測分析アルゴリズム