## tl;dr > ICC は **同じ人を 2 回測ったとき、2 つの値がどれくらい似ているか** を 0〜1 で表した数字です。 > > ICC を一言でいえば **「次回の計測に何掛けで引き継がれるか」** を示します。ICC = 0.8 の検査なら、1 回目についた差は 2 回目に 8 掛けで引き継がれます。いいほうへ外れていた人も、悪いほうへ外れていた人も、同じ 8 掛けです。 > > ICC = 1.0 なら、測り直しても寸分違わず同じ値です。ICC = 0 なら、2 回目は 1 回目とまったく無関係です。 > > そして **2 回目を 1 回目に回帰した係数は、この倍率、つまり ICC と同じ値になります。** これがこのノートで理解していただきたいことになります。 計算のしかたは [[R - ICC を計算してみよう(評価者間一致研究)]] にあります。この記事は数字の意味だけを扱います。 ## ICC は名前どおり「相関」 ICC は intraclass correlation coefficient(級内相関係数)の略で、**class(クラス)の中の相関**という意味です。ここでいうクラスは学級ではなく、**同じ人から取った測定値のまとまり**を指します。 つまり ICC はこう読めます。 > 同じ人をもう一度測ったら、2 つの値はどれくらい似ているか 同じことを、ばらつきの内訳としても書けます。 $ \mathrm{ICC} = \frac{\text{人によって違う分(本物の差)}}{\text{人によって違う分} + \text{測るたびに変わる分(運)}} $ 観測値のばらつきのうち、何割が本物の個人差かを表します。0.8 なら 8 割が本物、2 割が運です。 この 2 つの読み方は同じものです。本物の割合が高いほど測り直しても同じ値が出るので、相関も高くなります。 ## 100 人を 2 回測ってみる 100 人に、同じ形式のテストを 2 回受けてもらったと思ってください。平均 50 点、SD 10 点のテストです。血圧を 2 回測る、同じ心エコー画像を 2 回計測する、と読み替えても構いません。**同じ対象を、条件を変えずに 2 回測る**という状況です。 このとき点数は「その人の本当の実力」と「その日の運(体調、ヤマ勘、出題との相性)」でできています。ICC はこの配分を表す数字でした。 ICC が 1.0 から 0 まで変わる 6 通りの条件を作り、それぞれ 100 人を 2 回ずつ測ります。**どの条件でも、点数のばらつき(SD 10)は同じにしてあります。**違うのは中身の配分だけです。 | 条件 | 本物の個人差 | 運 | |---|---|---| | ICC = 1.0 | 全部 | なし | | ICC = 0.8 | 8 割 | 2 割 | | ICC = 0.3 | 3 割 | 7 割 | | ICC = 0.0 | なし | 全部 | ### 線でつなぐ 1 人ぶんを 1 本の線にして、1 回目と 2 回目をつなぎます。 ![[icc_fig1_spaghetti.png]] **ICC = 1.0 では、線が全部まっすぐ水平です。**測り直しても値が動かないので、線が傾きません。交差も起きません。 ICC が下がるにつれて線が傾き、交差が増えます。ICC = 0.0 では完全にぐしゃぐしゃです。 **この交差が「順位の入れ替わり」で、正体は運です。**1 回目にたまたま高く出た人が 2 回目には落ち、たまたま低く出た人が上がる。ICC は、この入れ替わりがどれくらい起きにくいかを表しています。 ここで大事な点があります。**どの条件でも、集団全体のばらつきは変わっていません。**縦軸の広がりを見比べてください。ICC が下がっても集団が団子になるわけではなく、中身が入れ替わるだけです。 ### 散布図にする 同じデータを、横軸に 1 回目、縦軸に 2 回目を取って散布図にします。 ![[icc_fig2_scatter.png]] 灰色の点線は 45 度線で、「1 回目と 2 回目がまったく同じ値」を表します。赤い線が実際の回帰直線です。 ICC = 1.0 では、点が完全に 45 度線に乗ります。ICC が下がると点が雲のように広がり、赤い線がだんだん寝ていきます。ICC = 0.0 では真横になります。 各パネルに書いた回帰係数を見てください。 | 設定した ICC | 計算された回帰係数 | |---|---| | 1.0 | 1.00 | | 0.9 | 0.89 | | 0.8 | 0.80 | | 0.6 | 0.60 | | 0.3 | 0.29 | | 0.0 | −0.03 | **設定した ICC と一致します。** ![[icc_fig3_line.png]] なお、これは 100 人を 1 回引いた結果です。引き直せば ±0.1 程度は動きます。手元のデータから ICC を計算するときは 1 つの数字を鵜呑みにせず、信頼区間まで見てください([[R - ICC を計算してみよう(評価者間一致研究)]])。 ## なぜ回帰係数が ICC になるのか 回帰係数は「1 回目が 1 点高い 2 人は、2 回目に何点違うか」を表します。 テストの例で考えます。**クラスの平均は 50 点、SD は 10 点**、ICC = 0.8 の条件です。ここから **1 回目に 10 点の差がついた 2 人**を取り出します。60 点だった生徒と 70 点だった生徒とします。どちらも平均より上の生徒です。 この 10 点の中身は「実力の差」と「運の差」に分かれています。点数の 8 割が実力なので、実力の差が 8 点、運の差が 2 点です。 **1 回目の運は繰り返しません。**2 回目には別の運が来るので、1 回目の運が作った 2 点は失われます。 ``` 1回目の点差 10 点 = 実力の差 8 点 + 1回目の運の差 2 点 ↓ 1回目の運は消え、2回目の運が来る 2回目の点差 = 実力の差 8 点 + 2回目の運の差 ? ``` **では 2 回目の運はどうなるのか。**もちろん 2 回目にも運は来ます。ただし 2 回目の運は、1 回目に誰が上振れしたかとは無関係に降ってきます。1 回目で上に出た生徒を狙って、もう一度上に押し上げることはありません。 だから 2 回目の運は、点差を広げることもあれば縮めることもあり、**たくさんのペアで平均すればゼロ**になります。残るのは実力の差 8 点です。 実際に、1 回目が 60 点だった生徒と 70 点だった生徒を大量に集めて確かめます。 | | 1 回目 60 点の生徒 | 1 回目 70 点の生徒 | |---|---|---| | 2 回目の平均 | 58.1 点 | 66.1 点 | | 1 回目からの動き | −1.9 点 | −3.9 点 | 平均の差は **8.0 点** です。10 点差が 8 点差になりました。**8 掛けで引き継がれた**ということです。1 点あたりに直せば 0.80 で、これが ICC です。 どちらの集団も下がっている点にも注目してください。クラスの平均が 50 点なので、**上に離れているほど強く引き戻されます**。60 点の集団は 1.9 点、70 点の集団は倍の 3.9 点だけ下がりました。両端が中央へ寄るぶんだけ、点差が縮んでいます。 ### いいも悪いも 8 掛けで引き継がれる 上では平均より上の 2 人を見ましたが、下でも同じことが起きます。平均からのズレで見ると、はっきりします。 | 1 回目が平均より | 2 回目は平均より | 倍率 | |---|---|---| | −20 点 | −16.0 点 | 0.80 | | −10 点 | −8.0 点 | 0.80 | | +10 点 | +8.1 点 | 0.81 | | +20 点 | +16.1 点 | 0.80 | 上に離れていようが下に離れていようが、**いいも悪いも一律に 8 掛けで引き継がれます。** ICC = 0.8 とは、そういう意味です。 ICC 0.9 なら 9 掛け、0.5 なら半分、0 なら 0 掛け(何も引き継がれない)です。**ICC は引き継ぎの倍率そのもの**だと覚えてください。 もう 1 つの見方もできます。1 回目と 2 回目のばらつき(SD)は同じなので、**回帰係数は相関係数と一致します**。そして相関係数とは「同じ人の 2 回の測定がどれくらい似ているか」、つまり ICC そのものです。名前どおりです。 ## 「2 回目 − 1 回目の平均」の話ではない ここで引っかかりやすい点があります。 いま何も起きていない条件です。ということは、全員をまとめて「2 回目 − 1 回目」の平均を取れば、当然ゼロになるはずです。実際そのとおりです。 | | | |---|---| | 1 回目の平均 | 50.0 点 | | 2 回目の平均 | 50.0 点 | | **2 回目 − 1 回目 の平均** | **0.0 点** | | 良くなった人 / 悪くなった人 | 50% / 50% | **それなのに回帰係数は 0.80 です。**矛盾していません。この 2 つは別のことを測っています。 1 回目の点数で分けると、こうなります。 | 1 回目 | 2 回目の平均 | 変化 | |---|---|---| | 30 点 | 34.0 点 | **+4.0** | | 40 点 | 42.0 点 | **+2.0** | | 50 点 | 50.0 点 | 0.0 | | 60 点 | 58.0 点 | **−2.0** | | 70 点 | 66.0 点 | **−4.0** | 上と下が逆向きに、同じだけ動いています。だから全部足すとゼロになり、全体の平均は変わりません。**動いていないのではなく、打ち消し合って見えなくなっているだけです。** 回帰係数が測っているのは、この表の傾きです。 | | 何を測っているか | 何も起きていないときの値 | |---|---|---| | 2 回目 − 1 回目 の平均 | 集団全体が上下に移動したか | 0 | | 回帰係数 | **人と人の差が何掛けで引き継がれたか** | ICC | 前後比較の論文では前者を報告しますが、「ベースラインが悪い人ほど改善が大きい」を主張するときに見ているのは後者です。**前者がゼロでも、後者は必ず 1 を下回ります。** ## 前後比較の研究を行っている方へ > [!important] ここを覚えて帰ってください > **何も起きていなくても、2 回目を 1 回目に回帰した係数は 1.00 ではなく ICC になります。** > > 治療も介入も何もせず、ただ同じ人を 2 回測っただけで、係数は 0.8 なり 0.9 なりに下がります。上のシミュレーションには治療効果を一切入れていません。それでもこうなります。 > > 前後比較の論文で「ベースラインが悪かった人ほど改善が大きかった」と書くとき、根拠にしているのはこの係数です。**係数が 1.00 を下回ったことを根拠にすると、測定誤差しかない場合でも同じ結論が出てしまいます。** > > 係数が小さいかどうかは、**何も起きていなければいくつになるはずだったか**と見比べて初めて判断できます。その値が 1.00 ではなく ICC だ、というのがこのノートの結論です。 つまり、**前後比較の研究では係数が 1.00 を下回るのが常態です。**臨床指標の ICC はおおむね 0.7〜0.9 なので、生物学的な変化が何もなくても係数は 0.7〜0.9 に出ます。 したがって「1.00 より小さかった」という観察は、**それ自体では何の情報も持ちません。**測っている限り必ずそうなるからです。次のような記述は論文でよく見かけますが、どれも ICC < 1 の指標を 2 回測れば自動的に出ます。 - ベースラインが悪い群ほど改善幅が大きかった - 改善量とベースライン値のあいだに有意な負の相関があった - 治療後は値が収束する傾向が見られた 情報を持つのは「**ICC より小さいか**」だけです。 ただし、ここで言えるようになるのは「**ベースラインが悪い人ほど改善が大きかった**」であって、「改善した」ではありません。全体として良くなったかどうかは、前の節で見たとおり「2 回目 − 1 回目の平均」が答えます。2 つは別物で、独立に動きます。 | 知りたいこと | 見るもの | 何も起きていないときの値 | |---|---|---| | 全体として良くなったか | 2 回目 − 1 回目 の平均 | 0 | | ベースラインが悪い人ほど大きく良くなったか | 回帰係数 | ICC | 全員が一律に良くなっても係数は ICC のままですし、全体はまったく良くなっていなくても収束だけ起きることもあります。 どれくらい ICC を下回れば本物と言えるのかは [[平均への回帰と回帰希釈を直感的に理解する]] に続きます。 ### 逆に、ICC より大きくなることはあるか あります。ただし**測定誤差が原因で大きくなることはありません。**誤差は必ず係数を下げる方向にしか働きません。 ICC = 0.80 の条件で、ほかの要因を足すと係数がどう動くかを見ます。 | 何が起きているか | 強さの設定 | 観測される係数 | |---|---|---| | 何も起きていない(基準) | — | 0.80 | | 2 回目のスケールが変わった(装置や算出法の変更) | 1.5 倍 | 1.20 | | 誤差が相関している(同じ読影者が 2 時点を続けて測る) | 相関 0.5 | 0.90 | | 本物の発散(悪い人ほどさらに悪化する) | 真の倍率 1.3 | 1.04 | 右端の数字は、真ん中の強さをこちらで決めたときの一例です。設定を変えれば係数も変わります。1.20 や 1.04 という値そのものに意味はなく、**どれも ICC 0.80 を上回りうる**ことが要点です。 はじめの 2 つは測定側の問題です。とくに誤差の相関は、1 回目の癖が 2 回目にも出るので「運が繰り返してしまう」状態にあたります。消えるはずの分が残るので、係数が下がりきりません。 3 つ目だけが本物です。収束の逆で、ベースラインが悪い人ほどさらに悪化する場合にあたります。 見分ける手がかりが 1 つあります。**誤差の相関だけでは、係数は 1.00 を超えられません。**相関が最大(2 回とも同じ癖が出る)でもちょうど 1.00 止まりです。したがって - 係数が ICC と 1.00 のあいだ → 誤差の相関でも説明がつく - 係数が 1.00 を超えた → スケールの不一致か、本物の発散のどちらか **いずれにせよ、係数が ICC を上回ったときは、まず測定側を疑ってください。**それらを否定できて初めて、発散という生物学的な解釈に進めます。 ## 再現するコード コードと出力は言語ごとに分けました。どちらも同じ 2 つのシミュレーションを扱っています。 - [[ICC を直感的に理解する(シミュレーション編、R版)]] - [[ICC を直感的に理解する(シミュレーション編、Stata版)]] | 節 | 内容 | |---|---| | ICC 0.7 のデータを作り、3 とおりに取り出す | 相関・回帰係数・分散分析(Stata なら `icc`)から同じ 0.7 を取り出す。変化量をベースラインに回帰する落とし穴もここで扱う | | ICC を 6 条件で振ってみる | 点数の SD を 10 に固定したまま配分を変え、回帰係数が設定値に追随することを見る | ## 次に読む - [[平均への回帰と回帰希釈を直感的に理解する]] — 「ベースラインが悪い人ほど改善が大きい」が測定誤差だけで出てしまう話。この記事の最後の 1 行がそのまま土台になる - [[R - ICC を計算してみよう(評価者間一致研究)]] — 実データから ICC を計算する手順 - [[R - ICC を計算してみよう(試薬評価研究)]]