統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

IPTW ログランク検定の方法 EZRとRを使う方法

IPTW ログランク検定をEZRとRを使って行う方法。

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

IPTWとは?

IPTW とは、Inverse Probability of Treatment Weights の頭文字語。

日本語では、逆確率重みづけと言う。

交絡因子調整方法の一つ。

詳しくは他の記事も参照のこと。

toukeier.hatenablog.com

toukeier.hatenablog.com

IPTW ログランク検定とは?

IPTW ログランク検定とは、IPTWで重みづけして、交絡因子調整を行ったログランク検定のこと。

ログランク検定は、生存時間解析における群間比較検定である。

必要に応じて、こちらの記事も参照のこと。

toukeier.hatenablog.com

toukeier.hatenablog.com

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

IPTW ログランク検定を行う方法

IPTW をEZRで計算する方法

IPTWは、EZRを使うと簡単に計算できる。

IPTWの計算には、ロジスティック回帰モデルを借りる。

「統計解析」→「名義変数の解析」→「ロジスティック回帰」を選択する。

目的変数に群分け変数を投入し、説明変数に考慮したい交絡因子を投入する。

逆確率重みづけ (IPTW) の変数を作成する、にチェックを入れて、OKをクリックする。

すると、新しい変数 weight.ATE.GLM.1 が作成される。

データセットの最後尾に付け足される。

これが、IPTWの重み変数である。

IPTW ログランク検定をRで実行する方法

IPTW ログランク検定は、RISCA パッケージの ipw.log.rank() 関数を使って計算する。

RISCA パッケージをインストールしてもよいが、ipw.log.rank() 関数のみ使いたい場合は、以下のリンクのRスクリプト部分をコピペして使うことも可能である。

RISCA source: R/ipw.log.rank.R

ipw.log.rank() 関数には、以下の変数を投入して計算する。

  • times: 観察時間変数
  • failures: イベント変数
  • variable: 群別変数(2群比較のみ)
  • weights: 重み

今回の場合は、以下のように投入することになる。

with(ElderlyAML, 
ipw.log.rank(
times = Days, 
failures = Survival,
variable = Anthracyclines,
weights = weight.ATE.GLM.1
))

欠損値があると計算されないので、事前に欠損値があるケースを削除しておく。

「アクティブデータセット」→「欠損値の操作」→「欠損値をひとつでも含む行を削除する」で、削除できる。

survfit() 関数を使用するため、事前に library(survival) を実行し、survival パッケージを呼び出しておく。

計算結果は以下の通りに出力される。

statistic が標準正規分布に従うZ値で、p.value がp値である。

有意水準5%とすると、統計学的有意に異なるという結果である。

IPTWで調整しないと以下の結果になる。

こちらであるとカイ二乗値が7.6で、p値0.00592という結果であった。

IPTW を計算する際に考慮した交絡因子の調整が必須である場合は、IPTWの結果のほうをメインにしてよいだろう。

加えて、Cox比例ハザードモデルでの確認も行うとより適切である。

まとめ

IPTW ログランク検定をEZRとRを使って行う方法を紹介した。

何らか役に立てば幸い。

参考サイト

RISCA source: R/ipw.log.rank.R

おすすめ参考書籍

EZR公式マニュアル