メインコンテンツへスキップ
見出し画像

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





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


    あなたへのおすすめ