Stata: ハザード比のリストを作成する

サブグループ解析で得られたハザード比を一覧で表示すると、交互作用の有無が一目瞭然になります。サンプルデータを利用して、Stataでハザード比のリスを作成してみましょう。

サンプルデータをインポートする

サンプルデータstata_graph_sampl1.csvをダウンロードして、stataにインポートして下さい。

stata_graph_sample1.csv

散布図を描く

y軸カテゴリy、x軸ハザード比hrの散布図を作成します。

twoway scatter y hr

エラーバーを追加する

水平方向にエラーバー(95%信頼区間)を追加します。twoway scatterにrcapを上書きします。

twoway scatter y hr || rcap upper lower y, horizontal

グラフのサイズを調整する

グラフのサイズを変更します。デフォルトは4.0 × 5.5インチです。

A4サイズ(8.27 x 11.69インチ)に2 x 3個のグラフを収まるサイズにしたいので、図のサイズを3.7 x 3.7 インチに設定します。

凡例を消去する

レジェンドを削除します。

X軸を対数軸に変換する

X軸を対数表示に変更し、X軸の範囲を0.5-4.0に設定します。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) || rcap upper lower y, horizontal

X軸の目盛りを設定する

X軸に表示される目盛りの数値を0.5、1.0、2.0、4.0に変更します。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4) || rcap upper lower y, horizontal

X軸の目盛りの数値の桁数を小数点以下1桁に統一して、文字の大きさを少し小さくします。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) || rcap upper lower y, horizontal

X軸の目盛り(大)を0.5刻みで表示し、目盛り(小)を0.1刻みで表示する。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) || rcap upper lower y, horizontal

 

X軸のタイトルを追加する

X軸タイトルとして”Multivariable-adjusted incidence rate ratio (95% confidence interval)”を表示します。1行でははみ出してしまうので、文字を小さめにして、2行で表示します。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle( "Multivariable-adjusted incidence rate ratio" "(95% confidence interval)") || rcap upper lower y, horizontal

X軸とX軸ラベルの間隔が狭すぎるので、1行空白行を追加して、間隔を少し広げます。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small)) || rcap upper lower y, horizontal

 

Y軸に項目名を表示する

Y値1-15に項目名を個別に設定し、水平に表示します。文字を少し小さめに設定します。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small))yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m2 " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m2 " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m2 ", angle(0) labsize(small)) || rcap upper lower y, horizontal

BMIの単位の2を上付きに設定する

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small))yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m{superscript:2} " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m{superscript:2} " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m{superscript:2} ", angle(0) labsize(small)) || rcap upper lower y, horizontal

グリッドラインを削除し、Y軸目盛り(tick)を削除する。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small))yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m{superscript:2} " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m{superscript:2} " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m{superscript:2} ", angle(0) labsize(small) nogrid noticks) || rcap upper lower y, horizontal

Y軸のタイトルを削除する

Y軸のタイトルに””に設定することで、タイトルを削除する。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small))yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m{superscript:2} " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m{superscript:2} " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m{superscript:2} ", angle(0) labsize(small) nogrid noticks) ytitle("") || rcap upper lower y, horizontal

 

グラフの色を設定する

散布図のマーカーの色とエラーバーの色をblackに設定する

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small))yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m{superscript:2} " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m{superscript:2} " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m{superscript:2} ", angle(0) labsize(small) nogrid noticks) ytitle("") mcolor(black) || rcap upper lower y, horizontal lcolor(black)

 

Reference線を追加する

hazard ratio=1の直線を追加します。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small))yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m{superscript:2} " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m{superscript:2} " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m{superscript:2} ", angle(0) labsize(small) nogrid noticks) ytitle("") mcolor(black) xline(1, lpattern(dash) lcolor(black) lwidth(thin)) || rcap upper lower y, horizontal lcolor(black)

 

タイトルを追加する

図のタイトル”A. Drinking frequency and incidence of hypertension stratefied on BMI”を表示します。文字の大きさは小さめに設定します。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small))yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m{superscript:2} " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m{superscript:2} " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m{superscript:2} ", angle(0) labsize(small) nogrid noticks) ytitle("") mcolor(black) xline(1, lpattern(dash) lcolor(black) lwidth(thin)) title("A. Drinking frequency and incidence of hypertension stratefied on BMI", size("small"))|| rcap upper lower y, horizontal lcolor(black)

タイトルがグラフ描写領域に対して中央揃えになっているため、図全体に対して左揃え表示になるように設定する。図とタイトルの間に空白行を1列追加して、間隔を少しあける。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small)) yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m{superscript:2} " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m{superscript:2} " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m{superscript:2} ", angle(0) labsize(small) nogrid noticks) ytitle("") mcolor(black) xline(1, lpattern(dash) lcolor(black) lwidth(thin)) title("A. Drinking frequency and incidence of hypertension stratefied on BMI" " ", size("small") span position(11)) || rcap upper lower y, horizontal lcolor(black)

背景色を設定する

背景色を白に設定します。

twoway scatter y hr, xsize(3.7) ysize(3.7) legend(off) xscale(range(0.5 4) log) xlabel(0.5 1 2 4, format(%9.1f) labsize(small)) xtick(0.5(0.5)4) xmtick(0.5(0.1)4) xtitle(" " "Multivariable-adjusted incidence rate ratio" "(95% confidence interaval)", size(small)) yscale(range(0.5 15)) ylabel(1 "Rarely" 2 "1-3 days" 3 "4-6 days" 4 "7 days" 5 "BMI < 22.0 kg/m{superscript:2} " 6 "Rarely" 7 "1-3 days" 8 "4-6 days" 9 "7 days" 10 "BMI 22.0 - 24.9 kg/m{superscript:2} " 11 "Rarely" 12 "1-3 days" 13 "4-6 days" 14 "7 days" 15 "BMI ≥ 25.0 kg/m{superscript:2} ", angle(0) labsize(small) nogrid noticks) ytitle("") mcolor(black) xline(1, lpattern(dash) lcolor(black) lwidth(thin)) title("A. Drinking frequency and incidence of hypertension stratefied on BMI" " ", size("small") span position(11)) graphregion(color(white) lcolor(white)) || rcap upper lower y, horizontal lcolor(black)