MENU

R で中央値の折れ線グラフを描く方法

反復測定データを用いて、時点ごとの中央値を計算した後、折れ線グラフを書く方法

>>もう統計で悩むのは終わりにしませんか? 

↑期間・数量限定で無料プレゼント中!

目次

中央値の折れ線グラフの前に 平均値の折れ線グラフ

中央値の折れ線グラフの前に、平均値の折れ線グラフを示す

ここでは、平均値の折れ線グラフとは、以下のようなグラフを言っている

縦軸にアウトカムの値、横軸に反復測定の時点を配置する

各時点の印がアウトカムの平均値で、上下の線が標準偏差を示している

これを、中央値と四分位範囲で表現するにはどうすればよいか?

中央値の折れ線グラフの書き方 グループ分け無し

中央値の折れ線グラフを、グループ分け無しの 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() に変わっている

グラフはこんな感じになる

>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

中央値の折れ線グラフの書き方 グループ分け有り

グループ分けがある場合の中央値の折れ線グラフの書き方を解説する

グループごとに集計する際に使った 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 を使うと書くことができる

参考になれば

おすすめ書籍

EZRでやさしく学ぶ統計学 改訂3版 〜EBMの実践から臨床研究まで〜
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメントする

目次