見出し画像

書記が数学やるだけ#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()





本記事のもくじはこちら:


いいなと思ったら応援しよう!

Writer_Rinka
学習に必要な本を買います。一覧→ https://www.amazon.co.jp/hz/wishlist/ls/1XI8RCAQIKR94?ref_=wl_share