サブグループ解析の結果をフォレストプロットで書く方法。
ロジスティック回帰の場合で、EZR で行う方法。
Version 1.62(2023 年 11 月 1 日公開)から、EZR 本体に組み込まれたので、以下の方法を使う必要なし
具体的な方法はこちらの動画参照。
フォレストプロットとは?
フォレストプロットとは、メタアナリシスで登場する、それぞれの研究の点推定値と区間推定値を示して、統合推定値等を示した図のことである。
以下のような図を言う。
RCT 等の感度分析の一つとして実施されるサブグループ解析も同じような形式で表され、それもフォレストプロットと呼ばれる。
A Randomized Trial of Intensive versus Standard Blood-Pressure Control
サブグループ解析の結果をフォレストプロットで描くためのデータセットの準備
EZRのメニューから、ロジスティック回帰分析を行う。
モデルとしては、Stop400を予測するロジスティック回帰モデルで、Age、Sex、WBC45000で説明するというモデル。
着目しているのはWBCが45000以上か未満かの情報が、Stop400を予測するかどうかである。
これをSexでサブグループ解析したいとする。
Ageは共変量として残したいとする。
サブグループ解析は、以下の赤枠のところに、サブグループを指定する。
アクティブモデルとして残すにチェックを入れる。
GLM.1にALL(データ全体)、GLM.2にMale(男性)、GLM.3にFemale(女性)の解析結果として格納する。
Rスクリプト窓に、summary(GLM.1)$coefと書いて、実行すると推定値及び標準誤差を取り出すことができる。
[行,列]で指定して必要な変数の推定値と標準誤差だけを取り出す。
全体解析の結果では、4行目、1,2列目を取り出すので、[4, 1:2] とする。
性別の解析結果は、3行目1,2列目を取り出す。
rbind()で縦方向に結合する。
groupという変数名で名前を作り、data.frame() でデータセットを作成する。
データセットにsubgroup.analysisという名前を付けて、アクティブデータセットにする。
R スクリプト窓に以下のように書いて、その行のみ選択して実行する。
subgroup.analysis <- data.frame(group, coef)
「データセット:」の右となりのボタンをクリックして、subgroup.analysis を選択すると以下のように表示される。
内容を見てみるとこんな感じである。
これでデータセットの準備が整った。
このデータセットのEstimateが対数オッズ比、Std..Errorが対数オッズ比の標準誤差である。
サブグループ解析の結果をフォレストプロットで描く
「統計解析」→「メタアナリシスとメタ回帰」→「ハザード比のメタアナリシスとメタ回帰」を選択。
メタアナリシスのメニューを借りる形になる。
以下のように変数を選択。
「ハザード比の対数と標準誤差を入力」を選択する。
ハザード比と書いてあるが、オッズ比でも同じだ。
OKをクリックすると以下のグラフが描画される。
出力直後は左右が切れているのでウィンドの端をドラッグして幅を広げる。
ここからRスクリプトを修正して、いらない数値を削除したりや表示を変更したりする工夫をする。
ポイントはこの部分である。
HR(ハザード比)をOR(オッズ比)に変更。
comb.fixed(固定効果統合)とcomb.random(変量効果統合)の両方をFALSEにする。
今回の目的はサブグループのフォレストプロットだけであり、メタアナリシスの推定値統合ではないから。
変更した結果は以下の通り。
そして、以下のハイライトした部分を選択し、実行をクリック。
そうすると、以下のグラフができる。
ORになっているし、Subgroupごとに表示されているし、統合値は削除されている。
これで、サブグループ解析のフォレストプロットが描けた。
まとめ
ロジスティック回帰分析のサブグループ解析の結果をフォレストプロットの形で図示する方法として、EZRのメタアナリシスのメニューを借りて、実行してみた。
データセットの作成が少々手間がかかる。
また、目的のグラフにするために、Rスクリプトを少しだけ書き替えないといけない。
しかし、ゼロからスクリプトを書くよりも断然簡単だ。
お試しあれ。
参考サイト
フォレストプロットとはどんなグラフ?見方や読み方をわかりやすく解説 | いちばんやさしい、医療統計
参考書籍
EZR公式マニュアル
コメント