
書記が数学やるだけ#844 ログランク検定
ログランク検定について実際に手計算してみる。
問題

説明
ログランク検定は,2つの標本の生存分布を比較するノンパラメトリック検定であり,特に観測が打ち切られている場合に有効である。

解答
ログランク検定を行うにあたって,各時間について「新薬かプラセボか」「正常か発症か」の分割表を作成し,観測値と期待値を示しておく。

ここで手計算するにあたって,ログランク検定量は自由度1のカイ2乗分布に近似できることを利用して求める。

ログランク検定の実装を以下に示す。
Cheibub, José Antonio, Jennifer Gandhi, and James Raymond Vreeland. 2010. “Democracy and Dictatorship Revisited.” Public Choice, vol. 143, no. 2-1, pp. 67-101.
#前回までの範囲
from lifelines.datasets import load_dd
from lifelines import KaplanMeierFitter
from matplotlib import pyplot as plt
data = load_dd()
T = data["duration"]
E = data["observed"]
kmf = KaplanMeierFitter()今回は「民主主義か否か」が任期に与える影響を示す。2つのカプラン=マイヤー曲線を可視化すると,民主主義でない方が任期が長くなるように見える。
ax = plt.subplot(111)
dem = (data["democracy"] == "Democracy")
kmf.fit(T[dem], event_observed=E[dem], label="Democratic Regimes")kmf.plot_survival_function(ax=ax)
kmf.fit(T[~dem], event_observed=E[~dem], label="Non-democratic Regimes")
kmf.plot_survival_function(ax=ax)
plt.title("Lifespans of different global regimes");
ログランク検定を実施した結果,2つの曲線に有意差があることから,民主主義でない方が任期が長くなることが示せた。
from lifelines.statistics import logrank_test
results = logrank_test(T[dem], T[~dem], E[dem], E[~dem], alpha=.99)
results.print_summary()
本記事のもくじはこちら: