この記事では「EZRで各群の最小二乗平均(LSMean)を算出する方法」としてお伝えします。
EZRで共分散分析を実施することは簡単にできますが、得られる結果は1つの群を参照群にした最小二乗平均の「差」です。
でも、グラフを作成するなどの目的から、各群の最小二乗平均値を出力したいと思うこともあるかなと。
その際に、どういった解決策があるのかをお伝えします。
また、多重代入法を実施した後にも各群の最小二乗平均値を出力する方法がありますので、そちらも合わせて解説します!
EZRで共分散分析をしても各群の最小二乗平均値が出力されない!
連続量(量的データ)をアウトカム(目的変数)にする場合、背景情報での交絡バイアスを小さくしたいと考えた時、共分散分析の実施が候補に挙げられます。
EZRで共分散分析を実施するには、下記の通り「統計解析>連続変数の解析>線形回帰(単回帰、重回帰)」で実施可能。
上記で簡単に共分散分析を実施できますし、背景情報で調整された群間比較のP値も得られるため、有意差があるかどうかは簡単に確認できます。
ただ、一つだけ問題点が。
それは、解析結果に「各群の最小二乗平均」が出力されない、ということ。
例えば、A,B,Cという3群あった時。
EZRでは、第1水準の効果を0として他の水準の効果を出力しています。
つまり、得られる結果は1つの群(ここではA群)を参照群にした最小二乗平均の「差」が出力されることになります。
でもA,B,Cそれぞれの最小二乗平均(差ではない結果)を得たい場合もありますよね。
例えば、論文でグラフを作成する際に、各群の最小二乗平均値があると見栄え的にもいい感じになりますから。
ではその時にどうすればいいのか?といえば、RのLsmeansパッケージを使うことで解決するのです。
EZRでLSMeansパッケージを使って各群の最小二乗平均値を出力する
では、実際にEZRでLsmeansパッケージを使い、各群の最小二乗平均値を出力してみましょう。
EZRでLsmeansパッケージを使って各群の最小二乗平均値を出力するには、下記の3つの手順を実施すればOK。
- Lsmeansパッケージをインストールする
- EZRで通常の共分散分析を実施する
- Lsmeansパッケージを使って最小二乗平均を算出する
最初にLsmeansパッケージをインストールしておきましょう。
この記事では、Lsmeansパッケージが既にインストールしてある前提で説明しますね。
Rのパッケージをインストールする方法は、検索すればやり方は分かりますので、そちらをご参照くださいませ。
実際にEZRでLsmeansパッケージを使う
では実際に、EZRでLsmeansパッケージを使ってみましょう。
状況としては、下記を想定します。
- アウトカム(目的変数)は連続量に対する変化量
- 説明変数は、群(A,B,Cの3群)と、共変量として目的変数のベースライン値
前述の通り、Lsmeansパッケージが既にインストールしてある前提です。
まずは通常通り、EZRでANCOVAをやっていきます。
「統計解析>連続変数の解析>線形回帰(単回帰、重回帰)」を選択。
想定通り、目的変数は変化量(CHANGE)、説明変数は群(TRTP)とベースライン値(BASELINE)。
これでOKを押すと、共分散分析の結果が出てきます。
しかしこの結果は上述の通り、1つの群(ここではA群)を参照群にした最小二乗平均の「差」が出力されています。
じゃあここからLsmeansパッケージを使っていきましょう。
結論から言えば、下記の3行を実施すればOK。
library(lsmeans)
full.ref <- ref.grid(RegModel.1)
lsm <- lsmeans(full.ref, “TRTP”)
1行目は、Lsmeansパッケージを使うと宣言しています。
そして2行目は、lsmeans関数を使うための”おまじない”だと思ってください。
このref.gridの中に入るのは、先程EZRで共分散分析を実施した際に作られたモデルの名前です。
もしEZRで共分散分析を実施した際にRegModel.1じゃない名前になっていたら、その通りの名前にしてください。
そして最後のlsmeans()には、2行目でおまじないを格納した「full.ref」と、最小二乗平均値を出力したい変数を入力します。
今回は群(TRTP)に対して各群の最小二乗平均値を出力したいため、”TRTP”を指定します。
そして上記の3行のRプログラムを、EZRのRスクリプトに貼り付けて、実行します。
すると、lsmに各群の最小二乗平均値が出力されたことがわかります。
上記からわかる通り、ANCOVAの結果として出力されているB群の-2.54という回帰係数の結果は、B群の最小二乗平均値とA群の最小二乗平均値の差(-0.556-1.986)であることがわかりますね。
多重代入法を使った後に最小二乗平均値を出力するならemmeansパッケージを使う
上記の通り、 Lsmeansパッケージを使うことで、EZRで各群の最小二乗平均値を得ることができました。
しかし上記は、データが完全に得られている前提での解析です。
実際のデータ解析では、データが得られていない部分(欠測値)があることも多いでしょう。
その場合に使うことが推奨されている一つの方法は、多重代入法(Multiple Imputation)です。
EZRで多重代入法(Multiple Imputation)を実施する方法は、こちらの記事を参照してくださいませ。
>>多重代入法(多重補完法)をわかりやすく解説!EZRでは実施できる?
ここでは、多重代入法を実施した後に、各群の最小二乗平均値を出力する方法をお伝えします。
lsmeansパッケージだと多重代入法に対応していないため、emmeansパッケージを使う
今度は、説明変数として群とベースライン値の他に、年齢も加え、年齢に欠測データがあるとしましょう。
そして下記の記事の通り、EZRで多重代入法(Multiple Imputation)を実施している前提です。
>>多重代入法(多重補完法)をわかりやすく解説!EZRでは実施できる?
その後、下記のようにプログラムを実施します。
library(emmeans)
emmeans_out <- emmeans(fit, specs=”TRTP”)
「fit」という名前で、多重代入法が実施されている場合、上記の2行で各群の最小二乗平均値を出力することができます。
実際にやってみた結果が以下です。
B群の最小二乗平均値とA群の最小二乗平均値の差が、多重代入法の回帰推定値の値-2.32と一致することが分かりますね。
まとめ
いかがでしたか?
この記事では「EZRで各群の最小二乗平均(LSMean)を算出する方法」としてお伝えしました。
この記事を参考に、自由自在にデータ解析できるようになったのなら幸いです!!
こちらの記事の内容は動画でもお伝えしておりますので、ぜひ併せてご覧くださいませ。
コメント