MENU

【無料プレゼント付き】学会発表・論文投稿に必要な統計を最短で学ぶことができる無料メルマガ

EZR と R の ggplot でエラーバー付きの平均値折れ線グラフを書く方法

ggplot2 というグラフをきれいに描画するパッケージを使って、エラーバー付きの平均値の折れ線グラフを描く方法を紹介する。

反復測定したエンドポイントの平均値と、SDとか95%信頼区間とかを描画する方法。


ggplot でエラーバー付き折れ線グラフを書く土台を作る

まずEZRのメニューから、反復測定分散分析を実行する。

以下のデータを修正して、グラフを描くスクリプトの前までで作成される、TempDF3というデータセットを流用する。

TempDF3 の内容を見てみると、ワイド形式だったデータをロング形式に変えたデータであると言える。

最初から、ロング形式、つまり、1 症例複数行のデータになっている場合は、次のステップから始めても大丈夫と思う。

グループ変数(この例は、FCZ)と時点変数(この例では、time2)をご自分のデータの変数名に置き換えることになる。

ggplot でエラーバー付き折れ線グラフを書く前準備をする

グラフ描画の前に、データ処理を便利にしてくれる dplyr パッケージをインストール install.packages(“dplyr”) して、library() で呼び出しておく。

library(dplyr)

次に、グループ FCZ のカテゴリごと、時点 time2 ごとに平均、標準偏差、n、標準誤差を集計する。

group_time_mean_sd <- TempDF3 %>%
group_by(FCZ, time2) %>%
summarize(mean=mean(data, na.rm=T), sd=sd(data, na.rm=T), n=n(), se=sd/sqrt(n))

ちなみに、%>%とか、group_by()とかが、dplyr パッケージの機能・関数である。

集計結果は以下の通りになる。

FCZ グループごと、time2 時点ごとに、平均、標準偏差、サンプルサイズ、標準誤差が集計・計算されている。


ggplot2 を呼び出してエラーバー付き折れ線グラフを描画する

次に、ggplot2 パッケージを呼び出す。

library(ggplot2)

ggplot(), geom_line(), geom_errorbar(), geom_point() でグラフを描く。

ggplot2は、+(プラス)で関数をつなげていく記法である。

まずは、標準偏差でエラーバーを描く場合。

ggplot(data=group_time_mean_sd, aes(x = time2, y = mean, group = FCZ, color = FCZ)) +
geom_line() +
labs(x = "Weeks", y = "CD ratio") +
geom_errorbar(aes(ymax = mean + sd, ymin = mean - sd), width = 0.2) +
geom_point(aes(color = FCZ, shape = FCZ), size = 4)

実行すると以下のようなグラフが描ける。

エラーバーを95%信頼区間にする場合は以下のスクリプト。

mean + sd のところが、mean + 1.96*se と変わっている。

ggplot(data=group_time_mean_sd, aes(x = time2, y = mean, group = FCZ, color = FCZ)) +
geom_line() +
labs(x = "Weeks", y = "CD ratio") +
geom_errorbar(aes(ymax = mean + 1.96*se, ymin = mean - 1.96*se), width = 0.2) +
geom_point(aes(color = FCZ, shape = FCZ), size = 4)

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

点とエラーバーを少しだけずらしたい場合は、position = position_dodge() を使う。

ggplot(data=group_time_mean_sd, aes(x = time2, y = mean, group = FCZ, color = FCZ)) +
geom_line(position = position_dodge(0.2)) +
labs(x = "Weeks", y = "CD ratio") +
geom_errorbar(aes(ymax = mean + 1.96*se, ymin = mean - 1.96*se), width = 0.2, position = position_dodge(0.2)) +
geom_point(aes(color = FCZ, shape = FCZ), size = 4, position = position_dodge(0.2))

こんな感じで少しだけずれて、見やすくなる。

学術雑誌等へ投稿する場合に、白黒で表現したければ、以下のように書く。

ggplot()の中の、aes()内のlinetype=が線を実線、破線、点線などを指定している。

theme_classic()が白黒でシンプルな見た目にする関数である。

#for academic presentation and article
ggplot(data=group_time_mean_sd, aes(x = time2, y = mean, group = FCZ, linetype = FCZ)) +
geom_line() +
labs(x = "Weeks", y = "CD ratio") +
geom_errorbar(aes(ymax = mean + sd, ymin = mean - sd), width = 0.2) +
geom_point(aes(shape = FCZ), size = 4) +
theme_classic()

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

95%信頼区間で描画するとこんな感じ。

ggplot(data=group_time_mean_sd, aes(x = time2, y = mean, group = FCZ, linetype = FCZ)) +
geom_line() +
labs(x = "Weeks", y = "CD ratio") +
geom_errorbar(aes(ymax = mean + 1.96*se, ymin = mean - 1.96*se), width = 0.2) +
geom_point(aes(shape = FCZ), size = 4) +
theme_classic()

まとめ

以上、統計ソフトRの ggplot2 パッケージで、きれいなエラーバー付き平均値の折れ線グラフを描く方法を紹介した。

EZRのメニューを流用して、途中からスクリプトを書くという方法で、簡単にきれいなグラフが描ける。

参考になれば。

参考サイト

ggplot2を使ったグラフ作成(折れ線、時系列、エラーバー) : 干からびたウェット教授の独習でアール R

【R】ggplot2でエラーバーを付ける|ドクターフント(Dr. Hund)

15.18 Summarizing Data with Standard Errors and Confidence Intervals | R Graphics Cookbook, 2nd edition

参考書籍

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメント一覧 (1件)

コメントする

目次