ノモグラムとは?医療分野でも使われる予測モデルを可視化するツール

ノモグラムに関するブログ記事

この記事では「ノモグラムとは?医療分野でも使われる予測モデルを可視化するツール」としてお伝えします。

  • ノモグラムとは?医療で使われる診断ツール
  • ノモグラムの具体的な使い方
  • ノモグラムの作り方!EZRでは作れないけどRのrmsパッケージで作成可能

をお伝えしますので、今日からでもRでノモグラムを作成することができるようになると思います!

 

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

↑期間・数量限定で無料プレゼント中!

目次

ノモグラムとは?医療で使われる診断ツール

ノモグラムは、ある関数(予測モデルや診断モデルなど)によって計算された予測確率のアウトプットを可視化するためのツールです。

実際のモノを見た方がイメージが湧きやすいと思いますので、結論から言えば以下のようなモノです。

ノモグラムの目的は「予測確率を計算する」ですが、その目的であれば、予測モデルの数式から計算した方が正確です。

確かに、予測モデルの数式から予測確率を計算することも可能なのですが、ノモグラムを使うと大まかな予測確率を可視化しながら計算できるというメリットがあります。

つまり、Cox回帰やロジスティック回帰を知らなくても直感的に計算が可能です。

「Cox回帰やロジスティック回帰を知らない」ということ自体は、あまり褒められたものではありませんが。。

 

そして、ノモグラムであれば計算過程も可視化できますし、各説明変数の重みも視覚的に分かりやすいです。

上記で示したノモグラムをみると、「Treatment」という因子よりも「Age」という因子の方が予測確率に寄与していそうなことがわかります。

 

ノモグラムは医療現場でもがんの分野でよく使われている印象

ノモグラムは、医療現場ではがんの分野でよく使われている印象があります。

例えば、大腸がん研究会の「結腸癌術後予後予測ノモグラム」というものがあります。

>>大腸がん研究会の「結腸癌術後予後予測ノモグラム」はこちらから

 

入力画面で、現在の年齢や各種臨床検査の値を入力していきます。

すると、3年後の予測生存割合、5年後の予測生存割合が出力されます。

このような感じで、予測モデルを「可視化」できることがノモグラムの何よりも強みになっています。

 

ノモグラムの具体的な使い方

ノモグラムが何なのかが把握できたところで、具体的に使い方を見ていきましょう。

この記事では、こちらの論文にあったノモグラムを使ってみます。

>>参照PDFはこちら

 

結論から言えば、この論文で作成されたノモグラムはこちらです。

このノモグラムからわかることは、「年齢」「Clonal BM plasma cell」「LDH」「β2ーmicroglobulin」「del(17p)」の5つの値があれば、1年後・2年後・3年後の生存割合を知ることができるということ。

 

仮に、下記のような方がいたとして、この症例の生存率を予測してみます。

  • 年齢:40歳
  • Clonal BM plasma cell:20%
  • LDH:<250U/L
  • β2-microglobulin:>=5.5mg/L
  • del(17p):Positive

まずは、この症例の総合得点を計算します。(図の赤字部分)

この症例は、0+10+20+22+42=94点を持つことがわかります。

次に、総合得点と対比する生存率を確認します(図の青字部分)。

すると、1年生存率:約88%、2年生存率:約80%、3年生存率:約67%、という予測になっていることがわかります。

 

以上が、ノモグラムの具体的な使い方です。

 

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

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

ノモグラムの作り方!EZRでは作れないけどRのrmsパッケージで作成可能

このノモグラムは、結構簡単に作ることができます。

残念ながらEZRのクリック操作だけでは作ることができないのですが、EZRの裏で動いているRのrmsパッケージというものがあれば作成可能。

そのためここからは、Rのrmsパッケージを使って

  • Cox比例ハザードモデルでのノモグラム作成方法
  • ロジスティック回帰でのノモグラム作成方法

をお伝えします。

 

データは自治医科大学さんから提供されている「Survival.csv」を使っていきます。

>>サンプルファイルはこちらから

前提として、rmsパッケージをインストールしていることを想定しています。

パッケージのインストール方法は「r パッケージインストール」とかで検索してみてください。

 

Cox比例ハザードモデルでのノモグラム

状況としては、「前治療の有無(Treatment)」「年齢(Age)」の2つで生存率を予測するノモグラムを作りたいとします。

そして結論から言えば、下記のようなRのプログラムを実行することで作成可能です。

(例えば、1年時点の生存率を予測する場合)

# ノモグラムの作成
library(rms)
dat <- read.csv("Survival.csv")
cox.mod<- cph(Surv(DaysToOS, OS > 0) ~ Treatment + Age, data = dat, x=TRUE,y=TRUE,surv=TRUE)

cox.mod

dd <- datadist(dat)
options(datadist="dd")
cox_nomogram <- nomogram(cox.mod, lp=TRUE, fun= list(function(x) surv(365,x)),  funlabel="1-Year Survival Prob")

plot(cox_nomogram)

 

すると、下記のようなノモグラムが作成されます。

ロジスティック回帰でのノモグラム

「前治療の有無(Treatment)」「年齢(Age)」の2つで性別を予測するノモグラムを作りたいとします。

(性別を予測する、という状況は現実的にはあり得ないですが。。)

# ノモグラムの作成
library(rms) 
dat <- read.csv("Survival.csv") 
 
log.result <- lrm(Sex ~ Age + Treatment, data=dat) 
 
log.result  
 
dd <- datadist(dat) 
options(datadist="dd") 
log_nomogram <- nomogram(log.result, fun = plogis)

plot(log_nomogram)

 

すると、下記のようなノモグラムが作成されます。

Rでノモグラム作成の際の修正Tips

Rでノモグラム作成することができました。

ただ、デフォルトで出力されるノモグラムの表現を修正したい、という場合もあると思います。

そのため、修正のTipsをお伝えします。

具体的には下記2点です。

  1. linear predictorを消す
  2. Predicted Valueの名称を変更

 

ノモグラムのlinear predictorを消す

ノモグラムのlinear predictorを消すためには、nomogram関数の中で「lp=F」を追記します。

具体的には、以下のようなプログラムに。

# ノモグラムの作成
library(rms) 
dat <- read.csv("Survival.csv") 
 
log.result <- lrm(Sex ~ Age + Treatment, data=dat) 
 
log.result  
 
dd <- datadist(dat) 
options(datadist="dd") 
log_nomogram <- nomogram(log.result, fun = plogis, lp=F)

plot(log_nomogram)

 

すると、linear predictorが消えることがわかります。

 

ノモグラムのPredicted valueの名称を変更

ノモグラムのPredicted valueの名称を変更するためには、nomogram関数の中で「funlabel=”修正したい名前”」を追記します。

具体的には、下記のようなプログラムです。(Yosokuという名前に修正する例です。)

# ノモグラムの作成
library(rms) 
dat <- read.csv("Survival.csv") 
 
log.result <- lrm(Sex ~ Age + Treatment, data=dat) 
 
log.result  
 
dd <- datadist(dat) 
options(datadist="dd") 
log_nomogram <- nomogram(log.result, fun = plogis, lp=F, funlabel="Yosoku")

plot(log_nomogram)

 

すると、Yosokuという名前になることがわかります。

 

まとめ

いかがでしたか?

この記事では「ノモグラムとは?医療分野でも使われる予測モデルを可視化するツール」としてお伝えしました。

  • ノモグラムとは?医療で使われる診断ツール
  • ノモグラムの具体的な使い方
  • ノモグラムの作り方!EZRでは作れないけどRのrmsパッケージで作成可能

をご理解いただけれたのなら幸いです!

 

こちらの内容は動画でも解説しておりますので、併せてご確認くださいませ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

コメント

コメントする

目次