交互作用項を含むモデルからの予測をグラフ化

2つの共変量間の交互作用を含むモデルを作成した後、Stataのmarginsコマンドとtwoway contourコマンドを組み合わせて、モデルからの予測をカラーマップ等高線図として分かりやすく表現することが可能です。さらに3Dカラーマップ曲面図として表現すると、より直観的・効果的にモデルを説明できます。

  • 対応バージョン:Stata 16以降

1 doファイルのダウンロード

今回使用するコマンドをまとめたdoファイルです。zipファイルをダウンロード後に展開(解凍)してください。
doファイルは、Stataのメニューの「ファイル > 開く」で開いて使用します。

doファイル

zip

ZIP形式(1KB)

2 データのインポート

webuseコマンドでサンプルデータセットを読み込みます。Stataのコマンドウィンドウで次を実行します。

webuse nhanes2, clear

データセットには、高血圧の指標変数highbp、年齢の変数ageと体重の変数weightが含まれています。describeコマンドおよびsummarizeコマンドでこれらの変数の内容を確認します。

describe highbp age weight
summarize highbp age weight

このデータセットにはサーベイデザインの重みが設定されています。svysetコマンドを実行すると現在のサーベイデザイン設定を確認できます。
 ⇒PDFマニュアル [SVY] Survey Data

svyset

3 ロジスティック回帰を実行

年齢、体重、およびそれらの交互作用を高血圧の確率の予測因子として使用して、ロジスティック回帰モデルをフィットします。このデータセットにはサーベイデザインが設定されているため、svy:プレフィックスを使用します。

svy: logistic highbp age weight c.age#c.weight

このモデルから、marginsコマンドを使用して、年齢(5歳刻みで20~80歳)と体重(5kg刻みで40~180kg)のすべての組み合わせでの高血圧の予測確率を計算します。

  • marginsコマンドの出力結果は長くなるため、quietlyプレフィックスをつけて結果が表示されないようにします。
  • サーベイデータのため、母集団の推測に適した標準誤差を取得するためのvce(unconditional)オプションを使用します。
  • 予測データをpredictions.dtaとして保存します。
quietly margins, at(age=(20(5)80) weight=(40(5)180)) vce(unconditional) saving(predictions, replace)

保存したpredictions.dtaを読み込みます。

use predictions, clear

データセット内の変数_at1が年齢、_at2が体重、_marginが高血圧の確率の予測です。listコマンドでこれらの変数の1~5行目を表示すると次のようになります。

list _at1 _at2 _margin in 1/5

renameコマンドで変数名をage, weight, pr_highbpに変更します。

rename _at1 age
rename _at2 weight
rename _margin pr_highbp

データセットを上書き保存します。

save predictions, replace

さらに、3Dカラーマップ曲面図の作成のために、3つの変数をpredictions.xlsという名前のExcelファイルとしてエクスポートしておきます。firstrow(variables)オプションを使用して、Excelファイルの第1行目に変数名を保存します。

export excel age weight pr_highbp using "predictions", firstrow(variables)

4 カラーマップ等高線図の作成

モデルからの予測をカラーマップ等高線図として表現します。基本の作図コマンドは次のように、twoway contour zデータ yデータ xデータとします。

twoway contour pr_highbp weight age

今回はカラーマップの刻みや軸のラベル、タイトルなどをカスタマイズします。

twoway (contour pr_highbp weight age, ccuts(0(0.1)1.0)),
xlabel(20(10)80)
ylabel(40(20)180, angle(horizontal))
xtitle("Age (years)")
ytitle("Weight (kg)")
ztitle("Predicted probability of hypertension")
title("Predicted probability of hypertension by age and weight")

次のように作図されます。

カラーマップ等高線図

このグラフから、例えば次のことが読み取れます。

  • 年齢が30歳の人について、
    体重80キログラムの場合は高血圧になる確率が20~30%
    体重100キログラムの場合は高血圧症になる確率が50~60%
  • 体重が80キログラムの人について、
    年齢20歳の場合は高血圧になる確率が20%
    年齢80歳の場合は高血圧になる確率が70~80%

このように、marginsコマンドとtwoway contourコマンドを組み合わせて、モデルからの予測をカラーマップ等高線図として分かりやすく表現することが可能です。

5 3Dカラーマップ曲面図の作成originpro

手順3 ロジスティック回帰を実行の最後に予測データをExcelファイルとしてエクスポートしました。これを3Dグラフ作成に対応したソフトウェアを用いて3Dカラーマップ曲面図として表現すると、等高線図よりもさらに直観的・効果的にモデルを説明できます。
ここでは弊社取り扱いのグラフ作成・データ分析ソフトウェアOriginProでの作図例をご紹介します。高品質なグラフを簡単操作で素早く作成できます!

OriginProを起動します。「新しいワークブック」ダイアログが開いたら、「Blank Workbook」を選択してOKをクリックします。

空のワークシートが表示されます。メインメニューから「データ > ファイルに接続 > Excel」を選択します。

「Excelインポートオプション」ダイアログで次のように設定しOKをクリックします。

ワークシートに予測データがインポートされました。適宜ロングネームや単位を変更します。OriginProではワークシートの列にXYZの属性を設定しておくと作図が容易になります。右端の列(pr_highbp)をクリックしてポップアップするツールバーで「Zとして設定」を選択します。これで事前準備は完了です。

メインメニューから「作図 > 3D > 3Dカラーマップ曲面」を選択します。

次のように作図されます。

編集したい箇所をダブルクリックすると設定画面が開きます。
グラフの角度は「3D回転操作」ツールバーのボタンで自由に変更できます。

このグラフから、例えば次のことが読み取れます。

  • 年齢が低い人は、体重が重いと高血圧になる確率がぐっと上がる(カーブが急)
  • 年齢が高い人は、体重が軽くても重くてもある程度のリスクがある(カーブがなだらか)

このように、3D曲面図を使用すると等高線図よりもさらに直観的・効果的にモデルを説明できます。ぜひOriginProの体験版でお試しください。

6 まとめ

2つの共変量間の交互作用を含むモデルを作成した後、モデルからの予測をカラーマップ等高線図および3Dカラーマップ曲面図として表現する方法を紹介しました。

iconポイント

  • 回帰を実行した後、marginsコマンドでモデルからの予測データを生成します。
  • twoway contourコマンドで等高線図作成します。
  • 予測データをExcelファイルなどにエクスポートしておくと、グラフ作成ソフトウェアを用いて3Dグラフ化できます。

今回紹介した情報はStata社ニュース、The Stata Newsに掲載されている内容を用いて作成しております。

参照文献

Huber, C. Stata News Vol 32 No 1. In the spotlight: Visualizing continuous-by-continuous interactions with margins and twoway contour.
Retrieved from The Stata News:
https://www.stata.com/stata-news/news32-1/spotlight/

Stata is a registered trademark of StataCorp LLC, College Station, TX, USA, and the Stata logo is used with the permission of StataCorp.

page_top_icon