医学統計でよく使うRパッケージ
Rを使うときパッケージ(以下、package)を利用すると思います。 packageとは、Rの機能を拡張する関数、データ、資料の集まりです。
例えば、きれいな図を描きたいときは、ベースのR機能であるplotでは物足りないため、ggplot2 packageを使います。
一般化推定方程式を使いたいときは、ベースのR機能だけでは、数式を読み解き、関数を自作する必要がありますが、geepack packageを使えば関数の自作は不要です。
このようにRを使う上でpackageは重要ですし、いろいろなpackageを知っていると楽ができます。ただし、packageの有無を自分の解析能力の限界にする必要はありません。自ら関数が組めると解析の幅が広がります。
packageは山ほどあります。しかし解析によく使うpackageはある程度限られます。この記事では、ぼくが使っている(使いたい)R packageを紹介します。
Packageの使い方
新しいpackageを使いたいときは、まず、install.packages関数で、使いたいpackageを自分のPCに入れます。たとえば、tidyverse packageを使いたいときは次のようなコードを書きます。
install.packages("tidyverse")
これにより、pakcageがPCの中に入りましたが、使える状態ではありません。使う場合は、
library(tidyverse)
とします。料理作りを例にすると、install.packages関数で、必要な食材をスーパーから買ってきて家の冷蔵庫に入れる。library関数で冷蔵庫から食材を取り出すという感じです。
install.packages関数を使ったpackageを自分のPCに入れる作業は、Rを更新しない限り、あるいはpackageを更新しない限り、一度おこなえば良いです。library関数はRを立ち上げるたびに必要です。
では、ぼくがよく使うpackageを紹介していきます[1]。
データハンドリング
tidyverse package
いわずもがな。これがないと始まらない。dplyr、tidyr、tibbleといった基本的なハンドリングpackageだけでなく、
- ggplot2: 作図
- lubridate: 日付型のハンドリング
- forcats: 順序尺度データのハンドリング
- stringr: 文字型のハンドリング
- purrr: for文やapplyのような繰り返し処理をおこなう
といった便利なpackageも含まれています。
tidylog package
tidyverse関数群でデータセットの形を変形したり、くっつけたりするときに行数を確認することは重要です。dim()やstr()で小まめにデータセットを確認する癖もつけたい[2]ですが、自動で行数等の出力するこのpackageはtidyverseと一緒に使いたいです。
timetk
時間データ(date型)を扱うことは頻繁にありますが、filterしたり意外と手間です。それらのコーディングを簡単にします。データハンドリングにいれてますが、一般的な時系列分析もできそうです。
arrow package
メモリにのらないようなデータを扱うときに。
癖があるので、arrowの思想を知るのが大事。
readxl package
Excelのxlsxファイルを読み込むとき。型もよしなに指定してくれます。
openxlsx2 package
Excelのxlsxファイルの書き出しもできるようになる。
作図
patchwork package
ggplot2で作った図をくっつける。
scales package
ggplot2で作った図の軸に工夫を加える。例えば、1000ごとに「,」を入れたり、指数表示にしたり、絶対に指数表示させなかったり。
統計解析
このテーマは解析内容によるので、ほんの一部だけです。
lme4 package
混合効果モデルを使いたいときに必要です。
geepack package
一般化推定方程式を使いたいときに必要です。gee packageをよりglmっぽく使えるようにします。クラスターにする変数をfactor型にすることに注意。
emmeans package
推定したモデルの結果を使って、任意の対比較や条件付き推定値を算出します。マニュアルの情報量がとにかく多い。
臨床試験では複数の介入でアウトカムを繰り返し測定します。このときにかなり有用なpackageです。
performance package
回帰モデルのチェックに使う。
WeightIt package
傾向スコアの算出→逆確率重み付けの算出→任意の効果の推定までをおこなうpackageです。
MatchIt package
傾向スコアの算出→マッチングの算出→任意の効果の推定までをおこなうpackageです。
cobalt package
群間の変数のバランスを標準化差と図で確認できるpackageです。
visdat package
欠測データの確認。vis_dat()かvis_miss()で欠測パターンを見る。
mice package
多重代入法により欠測の処理をおこなうpackage(その1)です。
Amelia package
多重代入法により欠測の処理をおこなうpackage(その2)です。
ggsurvfit package
ggplot2形式で、生存時間解析に関連する作図をおこなうpackageの現時点の代表。
結果のまとめ
gtsummary package
表を作る。
- Table 1(背景情報の要約)も
- 回帰の結果のまとめも
broom package
gtsummaryを使った推定結果の表示は重く、柔軟性に欠けます。broom packageのtidy関数を使えば、推定結果をtibble形式の表で書き出し、処理しやすくなります。
forestplot
複数の説明変数をモデルに含む線形回帰やロジスティック回帰の結果を図示するpackageです。メタアナリシスの結果の提示にも使えます。
その他
here package
RStudioのプロジェクト機能を使えば、フォルダやファイルの参照は楽になります。here packageを使えばさらに楽です。
zipangu package
和暦[3]や日本の住所を処理しやすくするpackageです。
causaldata package
解析方法確認したり、教育にちょうどよいデータが欲しい。
因果推論に関する書籍のデータを集めたパッケージ。
simstudy
シミュレーションデータ作りを容易にするパッケージです。
一見複雑そうに見えますが、考え方は直感的です。
Discussion