R-survival-analysis

提供:Dev Guides
移動先:案内検索

R-生存分析

生存分析では、特定のイベントが発生する時間を予測します。 また、故障時間分析または死亡までの時間の分析としても知られています。 たとえば、がん患者の生存日数を予測したり、機械システムが故障する時間を予測したりします。

*survival* という名前のRパッケージは、生存分析の実行に使用されます。 このパッケージには、入力データをRフォーミュラとして受け取り、分析用に選択された変数の中で生存オブジェクトを作成する関数* Surv()*が含まれています。 次に、関数* survfit()*を使用して、分析用のプロットを作成します。

パッケージをインストール

install.packages("survival")

構文

Rで生存分析を作成するための基本的な構文は次のとおりです-

Surv(time,event)
survfit(formula)

以下は、使用されるパラメータの説明です-

  • time は、イベントが発生するまでのフォローアップ時間です。
  • event は、予想されるイベントの発生状況を示します。
  • *式*は、予測変数間の関係です。

上記でインストールされたサバイバルパッケージに存在する「pbc」という名前のデータセットを検討します。 肝臓の原発性胆汁性肝硬変(PBC)に罹患した人々に関する生存データポイントについて説明します。 データセットに存在する多くの列の中で、主にフィールド「時間」と「ステータス」に関心があります。 時間は、患者の登録から、肝移植を受ける患者または患者の死までの間のイベントの前の日数を表します。

# Load the library.
library("survival")

# Print first few rows.
print(head(pbc))

上記のコードを実行すると、次の結果とグラフが生成されます-

  id time status trt      age sex ascites hepato spiders edema bili chol
1  1  400      2   1 58.76523   f       1      1       1   1.0 14.5  261
2  2 4500      0   1 56.44627   f       0      1       1   0.0  1.1  302
3  3 1012      2   1 70.07255   m       0      0       0   0.5  1.4  176
4  4 1925      2   1 54.74059   f       0      1       1   0.5  1.8  244
5  5 1504      1   2 38.10541   f       0      1       1   0.0  3.4  279
6  6 2503      2   2 66.25873   f       0      1       0   0.0  0.8  248
  albumin copper alk.phos    ast trig platelet protime stage
1    2.60    156   1718.0 137.95  172      190    12.2     4
2    4.14     54   7394.8 113.52   88      221    10.6     3
3    3.48    210    516.0  96.10   55      151    12.0     4
4    2.54     64   6121.8  60.63   92      183    10.3     4
5    3.53    143    671.0 113.15   72      136    10.9     3
6    3.98     50    944.0  93.00   63       NA    11.0     3

上記のデータから、分析の時間とステータスを検討しています。

Surv()およびsurvfit()関数の適用

次に、上記のデータセットに* Surv()*関数を適用し、傾向を示すプロットを作成します。

# Load the library.
library("survival")

# Create the survival object.
survfit(Surv(pbc$time,pbc$status == 2)~1)

# Give the chart file a name.
png(file = "survival.png")

# Plot the graph.
plot(survfit(Surv(pbc$time,pbc$status == 2)~1))

# Save the file.
dev.off()

上記のコードを実行すると、次の結果とグラフが生成されます-

Call: survfit(formula = Surv(pbc$time, pbc$status == 2) ~ 1)

      n  events  median 0.95LCL 0.95UCL
    418     161    3395    3090    3853

Rを使用した生存分析

上記のグラフの傾向は、特定の日数の終わりに生存する確率を予測するのに役立ちます。