第4章は統計を扱います。


今回は重回帰、ロジスティック回帰分析、Cox比例ハザード回帰といった多変量解析を紹介します。


研究を行う時、多変量解析を知っているか知らないかで研究の幅や解釈の仕方が大きく変わります。


個人的にはt検定より先に多変量解析を知っておいたほうがいいと思っています。


実際にRでコードを書く前に、多変量解析でできることとできないことを紹介します。


そしてついやってしまいがちな「取れるだけデータを取って後で統計を考えよう」が危険な理由も紹介します。



1.今回使うデータ

架空のデータを使用します。

library(tidyverse)
set.seed(25) v1 <- rnorm(100,87,13) v2 <- rnorm(100,63,10.5) v <- c(v1,v2) a1 <- as.integer(rnorm(100,35,5)) a2 <- as.integer(rnorm(100,55,5)) age <- c(a1,a2) sex <- c(sample(c(0,1),size = 100, prob = c(0.7,0.3),replace = TRUE),sample(c(1,0),size = 100, prob = c(0.7,0.3),replace = TRUE)) t1 <- as.integer(rnorm(100,120,20)) t2 <- as.integer(rnorm(100,70,20)) time <- c(t1,t2) df <- data.frame(v,time,age,sex) df

スクリーンショット 2020-07-15 13.51.21

v:歩行速度、1分間に歩いた距離(m)とします。

time:片脚立位の時間(s)

age:年齢

sex:性別(0:男性,1:女性)

これをみて片脚立位の時間が長くなれば歩行速度が上がると考えていいかどうかとします。
(実際には片脚立位訓練をした群としなかった群でRCTを行うのでしょうが、考え方の練習としてこういった形にしています)


2.多変量解析を知らなければ...

今までの知識で散布図と回帰直線、相関係数を求めてみます。

散布図と回帰直線は
【3-3】Rのggplot2で散布図を作るgeom_point関数で紹介しました。
回帰直線はgeom_smooth(method="lm")を付け加えます。
つなげる時は + です。

ggplot(df,aes(x=time,y=v))+
  geom_point()+
  geom_smooth(method = "lm")

スクリーンショット 2020-07-15 14.02.21
右肩上がりの何やら良さそうなグラフが出てきました。



相関係数と検定を行います。
相関係数に関しては
【4-15】Rで相関係数を評価する方法で紹介しています。

cor.test(df$v,df$time)

スクリーンショット 2020-07-15 14.02.39

相関係数0.48と中等度の相関が出ました。p値も2.4×10の-13乗と有意差もあります。

ではこれで
片脚立位の時間が長くなれば歩行速度が上がると言えるでしょうか?

スクリーンショット 2020-07-15 14.29.43

実は言えません。


3.別の視点で分析してみる

ではなぜ言えないのでしょうか?今度は違う視点で分析してみます。
先程の散布図に年齢別で色をつけてみます。

ggplot(df,aes(x=time,y=v))+
  geom_point(aes(col=age))

スクリーンショット 2020-07-15 14.34.13

色が薄い方が年齢が高くなっています。
こうみると解釈が変わってきます。

今回は年齢が若くて片脚立位時間も歩行速度もいい人と、高齢で片脚立位時間も歩行速度も悪い人がいる集団なだけだった、年齢に関係なく片脚立位が長いから歩行速度が上がった人は実際にはどれくらいいるだろうか・・・?と気になってしまいます。


スクリーンショット 2020-07-15 15.25.33

スクリーンショット 2020-07-15 15.25.17




上記のどちらが妥当化はこのままでは判断できません。

性別に関しても同様です。

ggplot(df,aes(x=time,y=v))+
  geom_point(aes(col=as.factor(sex)))

スクリーンショット 2020-07-15 14.44.10
なんとなく男性の方が歩行速度が早いように見えます。


実は次回以降の記事で行う重回帰分析を行うと年齢と性別の影響を除くと片脚立位は有意差が出なかったという結果になります。
コードと解釈の仕方は次の記事で紹介します。

fit <- lm(v ~ time + age + sex)
summary(fit)

スクリーンショット 2020-07-15 17.29.20


3.相関関係と因果関係の違い

(ダミーデータですが)今回の結果では片脚立位と歩行速度には相関関係はあったが、因果関係はなかったという解釈をしました。

ここで出てくるのが相関関係因果関係です。

スクリーンショット 2020-07-15 15.12.44
相関関係は原因は別としてある数値が変化するともう一方の数値が変化するという関係性を示しています。

相関があったは「効果があった」とは別物です。効果があるかどうかは何とも言えません。

先程の例でいうと
片脚立位と歩行速度には相関関係があったが、原因は片脚立位と別なところにあった(年齢など)と解釈することができます。

また
片脚立位の時間が長かった人は歩行速度が早い人が多かった歩行速度が早かった人は片脚立位の時間が長い人が多かったと表現しても違和感がありません。





スクリーンショット 2020-07-15 15.12.53

いっぽう、因果関係は原因と結果の関係になっていて効果があったと言えるものです。
そのためAの数値を変えることでBの数値を変えることが期待できます。

方向性は一方向となります。
相関関係と違い年を取ればと歩行速度は下がりやすくなる速く歩けない人はを取りやすくなる(文字通り11ヶ月で1歳年を取るようになるという意味)では意味合いが全然違います。因果関係とはそういうことです。

そしてB→Aの因果関係はありませんが、相関があるように見えます。これを見せかけの相関といいます。

見せかけの相関が起こる例は交絡、因果の向きが逆である時、全くの偶然です。


交絡バイアス

交絡とは原因と結果両方に影響を与える因子のことです。
今回は年齢や性別が交絡因子にあたります。
交絡因子が残ったままだと因果効果(本当に効果があるのかどうか)ははっきりと言えず、そこが研究の限界の1つとなります。そのため、交絡は補正することがひつようで、重回帰分析やロジスティック回帰分析といった多変量解析は交絡を補正する方法の1つとなります。

スクリーンショット 2020-07-15 15.25.08

全くの偶然

全くの偶然で相関関係が起きる場合があります。

海賊の数が減るにつれて、同時に地球温暖化が大きな問題となってきた。

wikipediaより



相関関係か因果関係かを見極めるポイントに関しては原因と結果の経済学に詳しい解説があります。



そして因果関係を証明するにはバイアスをどれだけ排除できるかがカギになります。




4.重回帰・ロジスティック回帰・Cox比例ハザード回帰は交絡を調整する

では重回帰分析やロジスティック回帰、Cox比例ハザード回帰は何をしてくれるのでしょうか?

これらの多変量解析は
交絡の調整を行ってくれます。

スクリーンショット 2020-07-15 21.14.16
重回帰分析で片脚立位と年齢を変数として入れると
年齢の影響を除いた上での片脚立位が歩行速度に与える影響を推定することができます。性別も一緒に入れると年齢と性別の影響を除いた上で影響を推定します。ただ他にも交絡因子はあります。例えば下肢筋力などです。

スクリーンショット 2020-07-15 21.33.15


因果関係(効果があるかどうか)を考える時はどれだけ重要な交絡因子が取り除けているかが説得力に繋がります。そのためにはどの因子が大事な交絡因子なのかを考える必要がありますが、それはその分野の知識によって決まります。決してデータが集まれば自動的に決まるものではありません。そのためデータを取り始める前に交絡が何かを決めておく必要があります。データを取り終えたあとで「◯◯忘れてた!」となると取り返しがつきません。

また交絡因子の数で必要な症例数が決まります(1つの交絡因子で約10症例追加)。そのため症例数が50人であれば5つの変数しか投入できないため、何例集めるのか?5つの変数をどれにするのか(重要なものから5つを選ぶ)を先に決めておきます。

相手に
確かにこの影響まで除いた上で有意差が出ているのなら確かに効果があるかもしれないな。と感じさせることができるかどうかではないでしょうか。よく学会でt検定や相関係数で効果があることが示唆されたという発表もあるのですが、「でも◯◯の影響があるんじゃない?」と思われていたら多変量解析(もしくはRCT)が必要だったのかもしれません。



5.交絡因子と中間因子

ということで交絡因子は除外する必要があります。しかし中間因子を取り除いてはいけないという注意点があります。

スクリーンショット 2020-07-16 6.52.09


中間因子は矢印の方向が交絡因子と違います。

興味のある項目(A)とアウトカム(B)の間にある因子のことです。

中間因子を多変量解析に加えてしまうとAの効果があるかどうかわからなくなるため注意が必要です。

ただ交絡因子と中間因子どっち?は統計知識ではなくその分野の知識で決まることなのでデータを取り始める前に予め決めておくことが必要です。


6.交絡以外のバイアスは取り除けない

多変量解析で取り除くことができる交絡バイアスですが、実はバイアスは交絡以外にも複数あります。

細かくは紹介しませんがここではいくつか紹介します。

選択バイアス

・日中の電話調査は電話に出ることができる一部の高齢者しか集まらないためデータに偏りが出た
・自宅退院した人を1年間かけて調査すると退院時より点数の平均が上がっていた。しかし実は死亡・再入院で悪い点数の人が減ったことが原因で平均点が上がったように見えただけであった。
・(実は効果がある研究だったが)自分の病院は重症な人が多く集まる傾向で結果が出なかった。複数の病院でいろいろな患者さんを集めてみたら結果が違ったかもしれない(逆もまた然り)。
・集めたデータに欠損値が多かった。欠損値があるデータは重症な人が多かった。



情報バイアス

・評価者が患者さんが「治療郡」「対照群」のどちらに振り分けられるか知っていて、評価時に「さぁ!評価しますよ!」だったり「あんまり無理しなくていいですからね」って無意識に言ってしまう。
・評価器具の使い方に上手・下手が出て評価者間で違ってばらつきが出てしまう。
・評価基準がスタッフによって微妙に違いばらつきが出る


こういったバイアスは重回帰分析やロジスティック回帰分析ではどうにもできません。
これらのバイアスには統計ではなく研究デザインで対応することになります。
ただ欠損値に関しては条件が整えば多重代入法という統計のテクニックで解決できる可能性があります。
また施設間での研究では各評価だけでなく、施設ごとの特徴を考慮したマルチレベル分析といったものもあります。


7.「評価を取れるだけ取って後で考えようとデータを取り始める」ことをやってはいけない理由

ここまで説明するとなぜ「評価を取れるだけ取って後で考えよう」とデータを取り始めると危ないかが説明できます。どれだけいろいろな種類・数のデータを集めても、大事な交絡が抜けていたら元も子もないからです。




8.まとめ:研究の初心者でもできること

ただこういった話を続けていると難しすぎて研究が全く始められません。
臨床で疑問に思っていることを形にすることはとても意義のあることです。
個人的には最初から完璧を目指す必要はないと思います。

ただ興味のある因子に対して以下のことに意識を向けておくだけでも最初の研究としては一歩を踏み出せるのではないかなと思います。

・交絡因子は何がありそうか?
・その中で計測できそうなものはどれか?
・なるべく欠損なくとるよう努力する
・必要なサンプルサイズ(症例数)を先に知っておく

ただこのサイトでは研究デザインに関しては解説できていません。
多変量解析を行う上ではSTROBE声明を確認するともっと先にすすめると思います。



次回も重回帰・ロジスティック回帰を使う前に知っておきたいこととして「洞察をしたいのか?予測をしたいのか?」という話をします。リハビリの世界ではあまり使い分けられれている印象がありませんが、知っておくことで結果の解釈の幅が大きく変わります。

この話は機械学習にも通じる話となりますので、機械学習に興味がある方はぜひ読んでみてください。