多項ロジスティック回帰分析 – 2 – Google Geminiに聞きながらnnetで解析

Google Geminiを使って、多項ロジスティック回帰分析をさらに探索してみましょう。

Rのパッケージnnetを用いて、医療のデータではありませんがサンプルデータで実際に分析を実行し、説明変数の値から推定するところまで、Gemini 2.5 Flashに聞きながら、やってみます。

まず、試しに使えるデータセットが無いか聞いてみます。

Rパッケージのnnetに付属しているデータセットは?

付属するデータセットはないという回答でした。 その代わりに R に標準で付属しているデータセットがいくつか リストアップされました。 irisは、アヤメのデータセットで、分類問題の例としてよく使われますとのことです。

irisのデータセットを変数datに格納するRのスクリプトは?

dat <- iris

そこで次のスクリプトを実行し、どのようなデータか確認しました。コンソールへの出力です。<-と=は同じで、右側の変数のデータを左側の変数に格納します。データ型も同じになります。

ここでは、サンプル1~4までのデータを示します。実際にはアヤメ150個体のデータです。連続変数の説明変数が4種類、従属変数はSpeciesで、アヤメの種類の様です。アヤメの種類はいくつあるのか調べてみましょう。

データセットdatのSpeciesの属性はいくつあるか調べるには?

Speciesは文字列の名義変数で、nlevels(dat$Species)で何種類含まれているかを知ることができるようです。

3種類であることがわかりました。

名義変数のそれぞれの値はlevelsと表現するようなので、それぞれの名義変数の値を知るにはどうするかを聞いてみます。

Speciesのレベルを知るには?

levels(dat$Species)でわかるようです。

setosa, versicolor, virginicaの3種類であることが確認できました。データフレームdatのカラム名を出力させたいと思います。

datのカラム名を出力するには?

colnames(dat)で、あるいはnames(dat)でカラム名を出力できるそうです。

さて、以上からこのデータセットirisは”Sepal.Length”、”Sepal.Width”、 “Petal.Length” “Petal.Width”の4つの説明変数から”Species”を推定するために、多項ロジスティック回帰分析を適用できそうなことが分かりました。nnetを使って多項ロジスティック回帰分析を実行してみようと思います。

Rのパケージnnetを使って、説明変数”Sepal.Length”、”Sepal.Width”、 “Petal.Length” “Petal.Width”から従属変数”Species”を推定するための多項ロジスティック回帰分析を実行するスクリプトは?変数datにirisのデータが格納されています。

nnetパッケージのインストール、パッケージの読み込み、データの準備の解説が提示されます。

# nnetパッケージを読み込む 

library(nnet)

これらに続いて、多項ロジスティック回帰分析の実行の解説が提示され、multinom関数を使って分析するスクリプトが提示されます。その部分を以下に示します。

# 多項ロジスティック回帰モデルの構築

# trace = FALSE は、最適化の過程を表示しないようにするためのものです

model <- multinom(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = dat, trace = FALSE)

# または、すべての説明変数を使用する場合

# model <- multinom(Species ~ ., data = dat, trace = FALSE)

そして、結果の確認のスクリプトは:

# モデルの要約を表示 summary(model)

これらをRのエディタにコピー・貼り付けして実行してみます。

このような結果が出力されました。実は、Geminiが出力例として提示した内容とは異なっていました。この結果を見ると、setosaを参照基準として、versicolor、virginicaに対する係数が計算されています。Geminiの出力例では、参照基準がvirginicaになっており、setosa、versicolorに対する係数が提示されていました。実際のデータがこちらです。

それでは、本当にそうなのか、multinom関数でreferenceをvirginicaに変えるにはどうしたらいいかGeminiに聞いてみましょう。

multinom関数でレファレンスをvirginicaにするにはどうしますか?

デフォルトでは、従属変数の並び順で最初の変数を参照基準referenceにするという説明がされ、もしvirginiaに変更するのであれば、次のスクリプトを実行するという説明でした。従って、上記の出力例はデフォルトでの解析結果ではないということになります。

参照基準の変更ができるかやってみます。

dat$Species <- relevel(dat$Species, ref = “virginica”)

# レベルが正しく変更されたか確認 

levels(dat$Species)

さて、今度は参照基準virginiaに対する、setosa、versioclorに対する係数の値が出力されました。しかし、これも上記の出力例とは違う値になっています。つまり、Geminiが出力例(一部)として提示したデータの由来は分かりませんが、どうも間違いのようです。

さて、元のデータのまま、再度同じ解析を実行しておきます。そして、Geminiからの回答にあった、係数と標準誤差、p値(両側検定)の値を出力してみます。

# 係数と標準誤差を取得 

z <- summary(model)$coefficients / summary(model)$standard.errors 

# p値を計算 (両側検定) 

p_values <- (1 – pnorm(abs(z), 0, 1)) * 2 print(p_values)

続いて、説明変数の値から、Speciesの推定predictionをするにはどうするかGeminiに聞いてみましょう。まず、分析の元のデータ、つまり訓練データに対して適用してみます。

datの4つの説明変数の値からSpeciesを推定するにはどうしますか?

predict関数を使用することと、訓練データの場合の推定結果、正解率の計算、推定確率の計算のためのスクリプトが提示されました。Species、つまりアヤメの名称をクラスと呼んでいます。

# 訓練データに対する推定されたクラス

predicted_class <- predict(model, newdata = dat, type = “class”)

print(head(predicted_class))

# 実際のSpeciesと比較して、どの程度合っているか確認する(混同行列)

confusion_matrix <- table(Actual = dat$Species, Predicted = predicted_class)

print(confusion_matrix)

# 正解率の計算

accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)

cat(“モデルの正解率:”, round(accuracy * 100, 2), “%\n”)

# 訓練データに対する各クラスの推定確率

predicted_probs <- predict(model, newdata = dat, type = “probs”)

print(head(predicted_probs))

irisのデータは、nrow(dat)で150、つまり150個体のアイリスのデータを含んでいます。ここでの出力はhead()関数で最初の6個だけになっています。confusion_matrixつまり混同行列の結果をみると、setosa50個体はすべてsetosaとして推定され、versicolorは50個体の内49個体が正しくversicolorとして推定され、virginica1は50個体の内49個体が正しくvirginicaとして分類されていることが分かります。正解率の計算では98.67%でした。非常に高い精度です。

最後の、訓練データに対する各クラスの推定確率を見ると個体1はsetosaの確率が1.0でversicolor、verginicaの確率はほぼ0ということが分かります。以降個体6までの結果が出力されていますが、print(predicted_probs)で、150個体すべての結果が出力されます。

さて、Geminiの回答には、新しいデータポイントについてSpeciesを推定する方法、スクリプトについても説明があります。以下がその部分です。臨床の場合であれば、個々の対象者のデータから、診断、あるいは病態を推定することに相当します。ここでは、3つの個体のデータを作成して、推定を行っています。

——–
2. 新しいデータポイントについてSpeciesを推定する

これは、モデルを未知のデータに適用する場合の一般的な使用方法です。新しいデータは、モデル構築時に使用した説明変数と同じカラム名とデータ型を持つデータフレームである必要があります。

例として、新しいアヤメの測定値を使ってSpeciesを推定してみましょう。

R

# 新しいデータポイントを作成

# カラム名はモデル構築時に使用した説明変数と完全に一致させる必要があります

new_iris_data <- data.frame(

  Sepal.Length = c(5.1, 6.0, 7.0),

  Sepal.Width = c(3.5, 2.7, 3.2),

  Petal.Length = c(1.4, 4.5, 6.0),

  Petal.Width = c(0.2, 1.5, 2.0)

)

print(new_iris_data)

# 新しいデータポイントに対する推定されたクラス

predicted_new_class <- predict(model, newdata = new_iris_data, type = “class”)

cat(“\n新しいデータに対する推定されたSpecies:\n”)

print(predicted_new_class)

# 新しいデータポイントに対する各Speciesカテゴリの推定確率

predicted_new_probs <- predict(model, newdata = new_iris_data, type = “probs”)

cat(“\n新しいデータに対する各Speciesの推定確率:\n”)

print(predicted_new_probs)

このように、predict()関数を使うことで、学習済みモデルを用いて説明変数の値から従属変数Speciesを推定することができます。

—————

これらのスクリプトをRで実行してみます。

従って、個体1はsetosa、個体2はversicolor、個体3はvirginicaと推定されています。

さてirisのデータは説明変数が連続変数のみでした。説明変数に名義変数がある場合、どのように扱うのか、特に参照基準の設定について聞いてみましょう。

説明変数に名義変数がある場合、例えば、x1: A, B, C, D;x2: X, Y, Zのような場合、multinom関数を使う場合に、参照基準の設定は?

Rのmultinom関数で、説明変数に名義変数(カテゴリカル変数)がある場合、その説明変数の参照基準(レファレンスレベル)を設定する方法は、従属変数の場合と全く同じ考え方です。

Rの統計モデリング関数(lm, glm, multinomなど)は、因子(factor)型変数を自動的にダミー変数に変換して回帰分析に組み込みます。この際、デフォルトではその因子の最初のレベルが参照基準となり、そのレベルに対応するダミー変数はモデルから除外(係数が0として扱われる)されます。他のレベルの係数は、この参照基準レベルと比較してどのくらい異なるかを示します。

したがって、説明変数x1やx2の参照基準を設定したい場合は、それぞれの変数をfactor型であることを確認し、relevel()関数を使って参照基準にしたいレベルを最初のレベルに設定します。

以下に具体的なスクリプトを示します。

1. サンプルデータの作成

まず、ご提示のx1 (A, B, C, D) と x2 (X, Y, Z) のような名義変数を含むダミーのデータセットを作成します。

R

# データをシミュレート

set.seed(123)

n <- 100 # サンプルサイズ

# 説明変数 x1 (A, B, C, D)

x1_levels <- c(“A”, “B”, “C”, “D”)

x1 <- sample(x1_levels, n, replace = TRUE, prob = c(0.25, 0.25, 0.25, 0.25))

# 説明変数 x2 (X, Y, Z)

x2_levels <- c(“X”, “Y”, “Z”)

x2 <- sample(x2_levels, n, replace = TRUE, prob = c(0.33, 0.33, 0.34))

# 従属変数 Species (irisデータと同様に3カテゴリを想定)

species_levels <- c(“setosa”, “versicolor”, “virginica”)

species <- sample(species_levels, n, replace = TRUE) # ランダムなSpeciesを生成

# データフレームを作成

my_dat <- data.frame(

  Species = as.factor(species), # 従属変数はfactor型

  x1 = as.factor(x1),            # 説明変数x1はfactor型

  x2 = as.factor(x2)             # 説明変数x2はfactor型

)

# データの構造を確認

str(my_dat)

2. 説明変数の参照基準の設定

relevel()関数を使って、各説明変数の参照基準を変更します。

x1の参照基準をBにする場合:
R

my_dat$x1 <- relevel(my_dat$x1, ref = “B”)

levels(my_dat$x1) # 確認: “B” が最初になっているはず

x2の参照基準をZにする場合:
R

my_dat$x2 <- relevel(my_dat$x2, ref = “Z”)

levels(my_dat$x2) # 確認: “Z” が最初になっているはず

3. multinom関数の実行

参照基準を設定したデータフレームmy_datを使ってmultinom関数を実行します。

R

library(nnet)

# (オプション) 従属変数Speciesの参照基準も設定する例 (もし必要なら)

# my_dat$Species <- relevel(my_dat$Species, ref = “virginica”)

# 多項ロジスティック回帰モデルの構築

# trace = FALSE は、最適化の過程を表示しないようにするためのものです

model_nominal <- multinom(Species ~ x1 + x2, data = my_dat, trace = FALSE)

# モデルの要約を表示

summary(model_nominal)

出力の解釈

summary(model_nominal)のCoefficientsセクションを見ると、x1とx2の係数がどのように表示されるかを確認できます。

  • x1について:
    x1Bのような係数は表示されず、x1A、x1C、x1Dのような係数が表示されます。これは、それぞれのレベル(A, C, D)が参照基準Bと比較してどうであるかを示します。
  • x2について:
    x2Zのような係数は表示されず、x2X、x2Yのような係数が表示されます。これは、それぞれのレベル(X, Y)が参照基準Zと比較してどうであるかを示します。

重要な注意点:

  • factor型であることの確認: 説明変数がfactor型であることを常に確認してください。文字列型のままではRは自動的にダミー変数化しません。
  • デフォルトの動作: relevel()を使用しない場合、Rはアルファベット順(または数値順)で最初のレベルを参照基準とします。
  • 他の参照基準設定方法: C()関数とcontr.treatments()を組み合わせて、モデルの式内で一時的に参照基準を設定することも可能ですが、relevel()でデータフレーム自体を変更する方が、コードが読みやすくなることが多いです。 例: multinom(Species ~ C(x1, contr.treatment(nlevels(x1), base=2)) + x2, data = my_dat) (この例ではx1の2番目のレベルを基準にする)

このように、説明変数に名義変数がある場合でも、relevel()関数を使用して参照基準を明示的に設定することができます。
—————

この解説で分かるように、説明変数が名義変数の場合は、参照基準はrelevelで設定できること、結果で得られる係数はそれぞれの名義変数の値に対する値であることが分かります。

さらに、名義変数の場合、Multi-dichotomous variableにあらかじめ手作業で変換する必要があるか聞いたところ、その必要はないという回答でした。

説明変数が名義変数の場合、multi-dichootmous variableにあらかじめ変換する必要はありますか?

いいえ、Rのmultinom関数(および多くの統計モデリング関数、例:lm, glm)を使用する場合、説明変数である名義変数(カテゴリカル変数)を事前に手動でmulti-dichotomous variable(多値二項変数、つまりダミー変数)に変換する必要はありません。

Rは、データフレーム内の変数がfactor型として定義されていれば、multinom関数に渡されたときに、内部的に自動でダミー変数に変換してくれます。これがRのモデリング関数の便利な点の1つです。

Rが自動的に行うこと:

  1. factor型変数の検出: モデル式(例: Species ~ x1 + x2)の中にfactor型の変数があると、Rはそれを自動的に認識します。
  2. ダミー変数の生成: 例えば、x1がA, B, C, Dの4つのレベルを持つfactor型の場合、Rは自動的に3つのダミー変数を生成します。
    • x1B (1 if x1 is B, 0 otherwise)
    • x1C (1 if x1 is C, 0 otherwise)
    • x1D (1 if x1 is D, 0 otherwise) (これはデフォルトの設定で、最初のレベルAが参照基準となり、そのダミー変数は生成されません。)
  3. モデルへの組み込み: これらの生成されたダミー変数が、回帰モデルの独立した予測変数として組み込まれます。

参照基準の設定の重要性:

Rは自動的にダミー変数を生成してくれますが、どのカテゴリを参照基準(ベースライン)とするかは、結果の解釈に影響します。デフォルトでは、factor型の最初のレベルが参照基準になります。

もし、特定のカテゴリを参照基準にしたい場合は、前回の回答で説明したようにrelevel()関数を使ってそのカテゴリを因子の最初のレベルに設定する必要があります。

例(再掲):

R

# データをシミュレート

my_dat <- data.frame(

  Species = as.factor(sample(c(“setosa”, “versicolor”, “virginica”), 100, replace = TRUE)),

  x1 = as.factor(sample(c(“A”, “B”, “C”, “D”), 100, replace = TRUE)),

  x2 = as.factor(sample(c(“X”, “Y”, “Z”), 100, replace = TRUE))

)

# x1の参照基準を ‘B’ に設定

my_dat$x1 <- relevel(my_dat$x1, ref = “B”)

# x2の参照基準を ‘Z’ に設定

my_dat$x2 <- relevel(my_dat$x2, ref = “Z”)

library(nnet)

model_nominal <- multinom(Species ~ x1 + x2, data = my_dat, trace = FALSE)

summary(model_nominal)

このコードでは、x1とx2がfactor型として定義されていれば、Rが自動的に内部で必要なダミー変数変換を行い、multinom関数はそれらを使ってモデルを構築します。あなたは手動でx1_A, x1_C, x1_Dなどの新しいカラムを作成する必要はありません。

結論:

名義変数をfactor型として適切に定義し、必要であればrelevel()で参照基準を設定するだけで、Rのmultinom関数は適切に処理してくれます。手動でのダミー変数への変換は不要です。
——————

さてこれで、nnetを使った多項ロジスティック回帰分析のやり方は、分かったと思いますがいかがでしたか。Geminiに分からないことを聞きながら、そのまま実行可能なスクリプトが提示されるので、素晴らしいと思います。

多項ロジスティック回帰分析 – 1 – 臨床医学研究における活用

今回もAIについての話題です。ブラウザのChromeからGoogleのGemini 2.5 Flashを開き、「臨床医学研究で多項ロジスティック回帰分析はどのように利用されていますか?」と聞いてみました。その回答をそのままGammaにテキストとして入力して、8枚のスライドを作成し、PDFファイルとしてダウンロードしました。GeminiとGamma、2つのAIであっという間にこのような資料が作成できます。PPTファイルも作成できます。

最初のスライドです:

多重ロジスティク回帰分析では従属変数が二値である事象が起きる/起きないですが、多項ロジスティック回帰分析 Multinomial logistic regression analysisは従属変数が3つ以上の値をとる名義変数で、説明変数は複数の連続変数、名義変数を設定でき、それらの説明変数の値により3つ以上の名義変数のそれぞれの起きる確率を計算できます。臨床医学ではさまざまな活用シーンが考えられます。

PDFファイルは、ここから開いてみることができますLink

多項ロジスティック回帰分析には、Rのパッケージnnetなどを使うことができます。

次の投稿では、スクリプトやデータ形式などについてGeminiに聞きながらその実用性を試そうと思います

正味の益が反転しない閾値:効果推定値とアウトカムの重要度

T個の介入があるとし、介入iの効果を介入jすなわち対照と比較したランダム化比較試験でK個のアウトカムに対する効果がリスク差で得られたとする。そこで、ペアで正味の益を比較するとする。(i, j, T, K, Lは整数)。

図1. 正味の益の反転閾値:効果推定値、アウトカムの重要度。

リスク差Eijは介入i、すなわち介入の絶対リスク(イベント率)から介入j、すなわち対照の絶対リスク(イベント率)を引き算した値とする。従って、もし、有害な事象がアウトカムの内容で、Eijがプラスの値であれば、効果は害であり、逆にEijがマイナスの値であれば、益である。もし、有益な事象がアウトカムの内容の場合は、その逆で、Eijがプラスの値であれば、益であり、マイナスの値であれば害となる。ただし、リスク差は介入の絶対リスク-対象の絶対リスクとして計算することをルールとする。

効果推定値と効果の望ましさの関係をもう一度考えてみると、リスク差Eijの値が大きくなる方が望ましい効果の場合は、有益事象がアウトカムの内容であり、逆にEijが小さい方が望ましい効果の場合は、有害事象がアウトカムの内容である。アウトカムの内容とは、測定されたアウトカム事象と言い換えてもいい。正味の益がプラスになれば望ましい効果が望ましくない効果を上回り、マイナスになれば望ましくない効果が望ましい効果を上回るようにするために、アウトカムkに対する係数Fkをアウトカムの内容が有益事象の場合は1、有害事象の場合は-1に設定する。

アウトカムkに対する重要度wkは0~100の値を設定する。最も重要なアウトカムに100を設定し、その他のアウトカムに対しては相対的な重要度を0~100の数値として設定する。アウトカムの重要度は評価者がそのアウトカムに置く価値の大きさであり、評価者の価値観によって決まるので、評価者ごとに異なる主観的なものである。もし、最も重要なアウトカムが100であるアウトカムの重要度が20に設定すると、最も重要なアウトカムはそのアウトカムの5倍重要とみなしたことになる。もし、どちらも益のアウトカムであった場合、そのアウトカムが5人に生起した価値は最も重要なアウトカムが1人に生起した価値と同じと考えたことになる。なお、Gail/NCIのオリジナルの方法では重要度を重要、中等度、重要でないの3段階で、1, 0.5, 0という値を設定する。さらに、感度分析では例えば、1,0.5,0.25/1.0,1.0,1.0/1.0,1.0,0など異なる値を設定する。

アウトカムの重要度をそれぞれアウトカムの重要度の総和で割り算して、標準化した値がwskである。標準化することによって、アウトカムの数を増やしても正味の益NBの値の絶対値は最大で100を超えることが無くなる。また、最も重要なアウトカムの重要度に対する比の値を用いることもできる。その場合は、正味の益は最も重要なアウトカムに相当する価値のアウトカムが生起した対象者の割合または人数を表すことになる。なお、アウトカムの重要度と価値は同じ意味であり、文脈により使い分けられる。

正味の益NB(Net Benefit)は図1でNBとして示す式で計算される。各アウトカムごとにFk、標準化した重要度、リスク差を掛け算した値をすべてのアウトカムについて加算し、総和を求めた値になる。効果の大きさをアウトカムの重要度で重みづけした総和と言える。ただし、望ましい効果はプラス、望ましくない効果はマイナスになるようにして総和を求める。なお、正味の益net benefitと益と害のバランス benefit-harm balanceは同じ意味である。また、Benefit-harmではなくBenefit-riskあるいはRisk-benefitという用語が用いられる場合もある。

アウトカム1~Tの中の一つ、アウトカムLの効果推定値=リスク差について、正味の益NBが正負逆転する閾値は、正味の益からアウトカムLについて、Fk、標準化した重要度、リスク差を掛け算した値を引き算して、正負を逆にし、それをアウトカムLの標準化した重要度wslで割り算することで求められる。アウトカムLについて、Fk、標準化した重要度、リスク差を掛け算した値は、介入により得られる分の効果を表している。このように閾値を求める場合、そのアウトカム以外のアウトカムに対するリスク差と重要度の値は同じのままということが前提である。

アウトカムLの重要度について、正味の益NBが正負逆転する閾値は、正味の益からアウトカムLについて、Fk、標準化した重要度、リスク差を掛け算した値を引き算して、正負を逆にし、それをアウトカムLのリスク差EijLで割り算することで求められる。この場合、上記の場合と同様、そのアウトカム以外のアウトカムに対するリスク差と重要度の値は同じのままということが前提である。

図2.正味の益が反転しない効果推定値 EijL、アウトカムの重要度wLの範囲。

正味の益が反転しない、効果推定値(リスク差)の範囲、および、アウトカムの重要度の範囲は、アウトカムLに対するリスク差EijLと閾値の大小関係から容易に知ることができる(図2)。

EijLの正味の益が反転しない範囲は、EijLが閾値より大きければ、閾値から1までの範囲が正味の益が反転しない効果推定値(リスク差)の範囲となる。逆に、EijLが閾値より小さければ、-1から閾値までの範囲が正味の益が反転しない効果推定値(リスク差)の範囲となる。

いずれの場合であれ、この範囲外の効果推定値が得られる可能性が低ければ、アウトカムLに対する効果推定値が変動したとしても正味の益が反転する可能性は低いと考えていいことになる。効果推定値の95%信頼区間とバイアスリスク、非直接性、非一貫性、出版バイアスなどを考慮しても、この範囲外の値になる可能性がほとんどないと言えるくらい低ければ、そのアウトカムに関するエビデンス総体のエビデンスの確実性は高いと判断できる。

アウトカムの重要度については、アウトカムLに対して設定した重要度wLの値が、閾値より大きい場合は、閾値から(もし閾値がマイナスの値の場合は0から)100までの範囲が正味の益が反転しないアウトカムの重要度の範囲となる。逆に、重要度wLが閾値より小さい場合は、0から閾値まで(もし閾値が100以上の場合は100まで)の範囲が正味の益が反転しない範囲となる。

重要度についても、この範囲外の値がありえない値と考えられる場合、アウトカムの重要度を変動させても、正味の益が反転する可能性は低いと考えることができる。特に、効果の大きさが小さい場合は、そのような範囲になる可能性が高くなる。アウトカムの重要度の判定は個人差があるが、その振れ幅を考慮しても正味の益が反転する可能性が低ければ、大部分の人に適用しても価値観の相違による問題は起きないであろうと考えることができる。

ここで述べた方法は、”閾値分析 “Threshold analysis“と呼ばれ(Phillippo DM 2019)、エビデンスの確実性の評価、正味の益の確実性の評価に有用と考えられる。

文献:

Gail MH, Costantino JP, Bryant J, Croyle R, Freedman L, Helzlsouer K, Vogel V: Weighing the risks and benefits of tamoxifen treatment for preventing breast cancer. J Natl Cancer Inst 1999;91:1829-46. doi: 10.1093/jnci/91.21.1829 PMID: 10547390
URL: https://pubmed.ncbi.nlm.nih.gov/10547390/

MCDAについて広く解説されている。Keeney & Raiffaの方法の実例の解説がある。

Thokala P, Devlin N, Marsh K, Baltussen R, Boysen M, Kalo Z, Longrenn T, Mussen F, Peacock S, Watkins J, Ijzerman M: Multiple Criteria Decision Analysis for Health Care Decision Making-An Introduction: Report 1 of the ISPOR MCDA Emerging Good Practices Task Force. Value Health 2016;19:1-13. PMID: 26797229
URL: https://pubmed.ncbi.nlm.nih.gov/26797229/

上記のThokala Pの報告の後半に相当し、ISPORの公式の報告として出版されている。

Marsh K, IJzerman M, Thokala P, Baltussen R, Boysen M, Kalo Z, Lonngren T, Mussen F, Peacock S, Watkins J, Devlin N, ISPOR Task Force: Multiple Criteria Decision Analysis for Health Care Decision Making-Emerging Good Practices: Report 2 of the ISPOR MCDA Emerging Good Practices Task Force. Value Health 2016;19:125-37. PMID: 27021745
URL: https://pubmed.ncbi.nlm.nih.gov/27021745/

効果推定値の不確実性から正味の益の不確実性を推定する方法。

Wen S, Zhang L, Yang B: Two approaches to incorporate clinical data uncertainty into multiple criteria decision analysis for benefit-risk assessment of medicinal products. Value Health 2014;17:619-28. PMID: 25128056
URL: https://pubmed.ncbi.nlm.nih.gov/25128056

GRADEワーキンググループの益と害のバランス=正味の益に関するコンセプトペーパー。Certainty of net benefitという考えは、USPSTFと同じで、推奨の強さを決める主要要素。Appendixに具体的な計算法が記載されている。

Alper BS, Oettgen P, Kunnamo I, Iorio A, Ansari MT, Murad MH, Meerpohl JJ, Qaseem A, Hultcrantz M, Schunemann HJ, Guyatt G, GRADE Working Group: Defining certainty of net benefit: a GRADE concept paper. BMJ Open 2019;9:e027445. PMID: 31167868
URL: https://pubmed.ncbi.nlm.nih.gov/31167868/

定量的ベネフィット・リスク分析に関するISPORの公式の報告。実際的な手順を解説。

Tervonen T, Veldwijk J, Payne K, Ng X, Levitan B, Lackey LG, Marsh K, Thokala P, Pignatti F, Donnelly A, Ho M: Quantitative Benefit-Risk Assessment in Medical Product Decision Making: A Good Practices Report of an ISPOR Task Force. Value Health 2023;26:449-460. doi: 10.1016/j.jval.2022.12.006 PMID: 37005055
URL: https://pubmed.ncbi.nlm.nih.gov/37005055/

患者の嗜好を取り入れるための枠組みに関する、規制当局のコンソーシアムの報告書。アウトカムの重要度を決める様々な方法のリストがある。

Ho M, Saha A, McCleary KK, Levitan B, Christopher S, Zandlo K, Braithwaite RS, Hauber AB, Medical Device Innovation Consortium’s Patient Centered Benefit-Risk Steering Committee: A Framework for Incorporating Patient Preferences Regarding Benefits and Risks into Regulatory Assessment of Medical Technologies. Value Health 2016;19:746-750. PMID: 27712701
URL: https://pubmed.ncbi.nlm.nih.gov/27712701/

Phillippo DM, Dias S, Welton NJ, Caldwell DM, Taske N, Ades AE: Threshold Analysis as an Alternative to GRADE for Assessing Confidence in Guideline Recommendations Based on Network Meta-analyses. Ann Intern Med 2019;170:538-546. doi: 10.7326/M18-3542 PMID: 30909295
URL: https://pubmed.ncbi.nlm.nih.gov/30909295/

Eiring Ø, Brurberg KG, Nytrøen K, Nylenna M: Rapid methods including network meta-analysis to produce evidence in clinical decision support: a decision analysis. Syst Rev 2018;7:168. doi: 10.1186/s13643-018-0829-z PMID: 30342549
URL: https://pubmed.ncbi.nlm.nih.gov/30342549/

GRADEアプローチのエビデンスの確実性評価:3種類の文脈化

GRADEアプローチにおけるアウトカムごとのエビデンス総体のエビデンスの確実性の評価方法は、システマティックレビュー(SR)、医療技術評価(HTA)と診療ガイドライン(CPG)作成では、異なります。前2者は最小文脈化アプローチMinimally contextualized appproach、または、部分的文脈化のアプローチPartially contextualized approachを用い、CPGでは完全文脈化のアプローチFully contextualized approachを用います。最小文脈化、部分的文脈化のアプローチでは効果推定値が正しいことに対する確信の程度を決めること、完全文脈化では、各アウトカムに対する介入の効果推定値が推奨を支持する適切さに対する確信の程度を決めることが目的です(表1)。

表1.エビデンス総体のエビデンスの確実性評価と文脈化の程度。


エビデンスの確実性とは:GRADEはエビデンスの確実性を、真の効果が特定の閾値の片側あるいは効果量の選択された範囲にある確実性と定義した」(Schünemann HJ 2022)、あるいは、「GRADEワーキンググループは、個々のアウトカムに対するエビデンスの確実性をレーティングするとき、真の効果が特定の範囲にある、または、ある閾値の片側にあることに、我々がどれくらい確かだと思うかを我々はレーティングしているということを明確にしている」(Hultcrantz M 2017)とされています。

文脈化の程度と他のアウトカムの関連、大・中・小の閾値の設定、正味の益の算出、アウトカムの重要度(価値)の設定、確実性のレーティングの標的の関係を表2に示します。

表2. 文脈化の程度と各アプローチの特徴。

GRADEワーキンググループ(WG)は2017年にエビデンスの確実性の概念(costruct)について論文(Hultcrantz M 2017)を発表しました。その後のWGの議論を踏まえて、2021年の論文(Zeng L 2021)では、エビデンスの確実性評価の実際的なガイダンスについて述べています。そのガイダンスでは、エビデンスの確実性の評価者は、エビデンスの確実性の概念の何を評価するのかを明確にする必要があると述べており、それを確実性のレーティングの標的(the target of their certainty rating)と呼んでいます。

そして、確実性のレーティングの標的は、エビデンスの確実性評価の文脈化の程度によって異なり、最小文脈化のアプローチでは無効果あるいは効果ありの確実性、または、効果推定値が無効果を含むある範囲にある確実性が標的になります。部分的文脈化のアプローチでは閾値の片側にある確実性あるいは信頼区間が大・中・小の臨床的意味のある閾値と交差する数が標的になります。完全文脈化ではさらに、正味の益を明確にしたうえで、信頼区間の上限値、下限値でそれが反転するかどうかを見る(Hultcrantz M 2017)、あるいは、望ましくない効果の上限値の総和への影響を見る(Schünemann HJ 2022)ことになります。

完全文脈化のアプローチを用いる場合、前作業として部分的文脈化のアプローチによる各アウトカムに対する効果推定値の確実性の評価を行うことが勧められています。

大・中・小の閾値を設定する際には、絶対効果を用い、アウトカムの重要度を反映する必要があります。閾値はリスク差×アウトカムの重要度(効用値)をスケールとして用います。

図1.閾値の設定

効果推定値の95%信頼区間がこれら閾値といくつ交差するかによって、エビデンスの確実性をレートダウンします。1つの閾値と交差する場合は、1レベルレートダウン;2つの閾値と交差する場合は、2レベルレートダウン;3つの閾値と交差する場合は、3レベルレートダウンが原則です。

図2.閾値と信頼区間の関係とレートダウン。

効果推定値が大の閾値を超えるようなありそうもない大きな効果を示している場合、あるいは、わずかまたは小さな効果の場合に、Review Information Size(RIS)レビュー情報量を計算する必要があります。大・中・小の閾値に対する必要なRIS、すなわちその大きさの効果を証明に必要なサンプルサイズを計算し、その結果で、実際のサンプルサイズが•大きな効果の閾値より少ない ⇒ 3レベルレートダウン;•中等度の効果の閾値より少ない ⇒ 2レベルレートダウン;•小さな効果の閾値より少ない ⇒ 1レベルレートダウンすることが提案されています。ただし、効果推定値の95%信頼区間の大・中・小の閾値との交差と合わせて慎重に判断する必要があります。

OISは臨床的に意味のある効果推定値を証明するのに必要なサンプルサイズ。エビデンスの確実性の評価で、部分的文脈化あるいは完全文脈化アプローチを用いる場合は、大・中・小の閾値を設定する必要があり、それぞれに対する必要なサンプルサイズを計算するので、RISという用語を用いる。OIS: Optimal Information Size最適情報量; RIS: Review Information Sizeレビュー情報量

閾値の設定は困難な課題ですが、次のような情報を根拠とすることが提案されています:
•効用値と絶対効果から閾値を設定している研究を参照する。
•効用値に関する研究を参照する。
•閾値が用いられた診療ガイドラインを参照する。
•疾患専門家や意思決定に関与する利害関係者が何らかの情報(経験、文献情報)に基づいて、効用値を考えながら閾値を設定する。

また閾値を設定は、まずアウトカムの重要度を設定し、その後に行うべきとされています。以下の点に留意する必要があります:
•アウトカムの重要度をエビデンス評価の前に決めておく。
•アウトカムの重要度を決めてから閾値を設定する。
•アウトカムの重要度に関する新知見が得られたら閾値をアップデートする。
•アウトカムの重要度は少なくとも疾患に特異的であり、相対的な値なので、同じアウトカムがどのような疾患でも同じ価値を持つわけではない。また、介入により取り扱うべきアウトカムが異なることもあるので、同じ疾患でも、他のアウトカムの構成によって同じアウトカムでも異なる値を設定することがありうる。0~100(あるいは0~1.0)の値を設定する。

また連続変数アウトカムの場合の閾値の設定に関しては以下の提案がされています:
•大・中・小の閾値に関する経験的推定値がある場合、それを用いる。例:Chronic Respiratory Questionnaire 7ポイントスケールの場合、0.5, 1.0, 1.5; Visual Analogue Scaleの場合6, 10, 14
•Minimally Important Difference (MID)の推定値が得られる場合、それを小さい効果の閾値として用いる。
•標準化平均値差(SMD)を用いて、SMD 0.2, 0.5, 0.8に閾値を設定する。
•何らかの情報に基づく専門家の推定値。

#################################

Hultcrantz M 2017で述べられていた完全文脈化のアプローチのステップは以下の様になります:

1.絶対効果の大きさとアウトカムの重要性の積の総和として正味の益を計算する(Alper BS 2019)。
2.各アウトカムに対する絶対効果の上限値と下限値で正味の益が逆転するかを見る。(逆転の閾値は0または評価者が設定した値)。
3.逆転する場合は、そのアウトカムに対する効果の不精確性をレートダウンし、(他のエビデンスの確実性評価ドメインと合わせて)エビデンス総体のエビデンスの確実性をレートダウンする。

なお、連続変数アウトカムの場合はそのままでは正味の益の計算に含めることはできません。

#################################

Schünemann HJ 2022の論文で述べられている完全文脈化のアプローチのステップは以下の様になります:

0.  部分的文脈化アプローチで各アウトカムに対する効果推定値の不精確性の評価を行う。
1.益のアウトカムに対する効果推定値の95%信頼区間下限値に基づいてありうる最小の望ましい絶対効果量を特定する。
2.害のアウトカムに対する効果推定値の95%信頼区間上限値に基づいてありうる最大の望ましくない絶対効果量を特定する。
3.最小の望ましい効果を集約(aggregate)し、それに基づいて介入を推奨するのに許容しうる最大のありうる望ましくない効果の総和(overall)を決める(必要に応じて費用なども考慮する)。個々の望ましくないアウトカムに対する効果のありうる最大値に基づいて不精確性のレーティングを変更する必要があるかを決めるのにこの総和の閾値を考慮する。複数の望ましくない効果がある場合、これを各アウトカムについて個別に、あるいは集積した上で、行わなければならないことに留意する。
4.望ましくない効果の信頼区間が、許容しうる最大のありうる望ましくない効果の閾値と重なるかどうかを判定する。もし「はい」なら、完全文脈化アプローチの精確性のレーティングは変更されない。益と害のバランスが確実でないかもしれない、すなわち、明確な正味の望ましい健康効果がないため、ガイドライン委員会は通常、条件付推奨とする。
5.閾値が交差しない場合、不精確性に基づく不確実性は決定に影響を与えない可能性があり、正味の望ましい効果があるため、望ましい効果と望ましくない効果に対する不精確性の確実性を下げることは、推奨や決断のために必要ないであろう(これはまれであろう)。そして、総体のエビデンスの確実性が全体として中または高い場合、ガイドライン委員会は多くの場合、強い推奨とする。エビデンス全体の確実性が非常に低いか低い場合、たとえ正味で望ましい効果があったとしても、ガイドライン・パネルは通常、条件付き推奨とする。
注)例を挙げていないが、仮に、部分的に文脈化されたアプローチを用いて、どのアウトカムも不精確性で格下げが行われなかったとしても、すべての望ましいアウトカムまたはすべての望ましくないアウトカムの不確実性の累積が、望ましいアウトカムまたは望ましくないアウトカムの累積効果を不精確にする可能性がある。すべての望ましい結果または望ましくない結果を組み合わせた後の累積不確実性が非常に大きく、信頼区間が閾値を超えるような場合には、1つまたは複数の主要なアウトカムの不精確性を理由とした格下げが正当化される可能性がある。

なお、同論文には部分的文脈化のアプローチのステップも記述されていますので、必要に応じて、参照してください。

#####################################

完全文脈化のアプローチは複雑で、実行も容易とは思えません。各アウトカムに対する効果推定値の95%信頼区間の幅を評価する際に、大・中・小の区切りを閾値として設定するだけの様にも見えますし、大・中・小の閾値の設定はアウトカムの重要度の設定と同じように、個人によって差が出てくるように思えます。また、もともと絶対効果が小さい、あるいは、重要度が低いアウトカムに対する効果推定値の不確実性は、意思決定あるいは推奨に影響しない可能性が高く、エビデンスの確実性の厳密な評価をする意義が低くなると思います。

文献:
Hultcrantz M, et al: The GRADE Working Group clarifies the construct of certainty of evidence. J Clin Epidemiol 2017;87:4-13. doi: 10.1016/j.jclinepi.2017.05.006 PMID: 28529184

Alper BS, et al: Defining certainty of net benefit: a GRADE concept paper. BMJ Open 2019;9:e027445. doi: 10.1007/s11882-011-0185-8 PMID: 31167868

Zeng L, et al: GRADE guidelines 32: GRADE offers guidance on choosing targets of GRADE certainty of evidence ratings. J Clin Epidemiol 2021;137:163-175. doi: 10.1016/j.jclinepi.2021.03.026 PMID: 33857619

Schünemann HJ, et al: GRADE guidance 35: update on rating imprecision for assessing contextualized certainty of evidence and making decisions. J Clin Epidemiol 2022;150:225-242. doi: 10.1016/j.jclinepi.2022.07.015 PMID: 35934266