反復測定データを用いて、時点ごとの中央値を計算した後、折れ線グラフを書く方法
中央値の折れ線グラフの前に 平均値の折れ線グラフ
中央値の折れ線グラフの前に、平均値の折れ線グラフを示す
ここでは、平均値の折れ線グラフとは、以下のようなグラフを言っている
縦軸にアウトカムの値、横軸に反復測定の時点を配置する
各時点の印がアウトカムの平均値で、上下の線が標準偏差を示している
これを、中央値と四分位範囲で表現するにはどうすればよいか?
中央値の折れ線グラフの書き方 グループ分け無し
中央値の折れ線グラフを、グループ分け無しの 1 群の場合で、書いてみる
R を用いる
用いるサンプルデータ( FCZ_CSA_2_LMM )の変数名の意味は以下の通り
- WeeksNum: 反復測定の時点( 4 時点)
- CDratio: アウトカム変数(連続データ)
- group: グループ分け変数( 2 グループ)
この 3 変数である
最初は 2 グループを一緒に扱う
dplyr パッケージと ggplot2 パッケージを使用する
library(dplyr)
library(ggplot2)
group_by() で時点を指定して、中央値、第 1 四分位、第 3 四分位を計算する
time_median <-
FCZ_CSA_2_LMM %>%
group_by(WeeksNum) %>%
summarise(
median=median(CDratio),
q1=quantile(CDratio, 0.25),
q3=quantile(CDratio, 0.75)
)
time_median
このように時点ごとに集計される
これをグラフにするスクリプトは以下のようになる
ggplot(data=time_median, aes(x=WeeksNum, y=median))+
geom_line()+
geom_point(size=3)+
geom_errorbar(aes(ymin=q1, ymax=q3), width=0.2)+
labs(x='Week', y='CDratio')
geom_line() で線グラフを指定していて、geom_point() でプロットする指定と、大きさの指定、geom_errorbar() でエラーバーを 第 1 四分位から第 3 四分位まで書く指定をしている
グラフは以下のように書かれる
エラーバーをクロスバーに変更することができる
クロスバーとは箱ひげ図を思わせる形で、中央値と四分位範囲であることをイメージでも伝えることができる
ggplot(data=time_median, aes(x=WeeksNum, y=median))+
geom_line()+
geom_point(size=3)+
geom_crossbar(aes(ymin=q1, ymax=q3), width=0.4)+
labs(x='Week', y='CDratio')
geom_errorbar() が geom_crossbar() に変わっている
グラフはこんな感じになる
中央値の折れ線グラフの書き方 グループ分け有り
グループ分けがある場合の中央値の折れ線グラフの書き方を解説する
グループごとに集計する際に使った group_by() に group を足す
group_time_median <-
FCZ_CSA_2_LMM %>%
group_by(group, WeeksNum) %>%
summarise(
median=median(CDratio),
q1=quantile(CDratio, 0.25),
q3=quantile(CDratio, 0.75)
)
group_time_median
すると、グループごと、時点ごとの集計値が求まる
この集計値を使って、グラフを書いていく
先ほどと同様に、geom_errorbar() を使った場合と、geom_crossbar() を使った場合の R スクリプトは以下の通り
# エラーバー
ggplot(data=group_time_median,
aes(x=WeeksNum, y=median, group=group, color=group))+
geom_line()+
geom_point(aes(color=group, shape=group), size=3)+
geom_errorbar(aes(ymin=q1, ymax=q3), width=0.2)+
labs(x='Week', y='CDratio')
# クロスバー
ggplot(data=group_time_median,
aes(x=WeeksNum, y=median, group=group, color=group))+
geom_line()+
geom_point(aes(color=group, shape=group), size=3)+
geom_crossbar(aes(ymin=q1, ymax=q3, width=0.3))+
labs(x='Week', y='CDratio')
color= や shape= で色や形をグループごとに分ける指定をしている
エラーバーのグラフはこちら
クロスバーのグラフはこちら
まとめ
中央値の折れ線グラフを四分位範囲を付けて書く方法を解説した
R で dplyr と ggplot2 を使うと書くことができる
参考になれば
コメント