Rの関数:brkdn.plot {plotrix}

Rの関数から brkdn.plot {plotrix} を確認します。

関数 brkdn.plot とは

brkdn.plot は、データフレーム内の数値を複数のカテゴリ(要因)で分類し、各グループにおける要約統計量とそのばらつきを折れ線グラフとして可視化する関数です。

2つの要因(例えば「実験群」と「測定時点」)の交互作用を確認するためのプロット(インタラクション・プロット)に、標準誤差や標準偏差などのエラーバーを追加した図表を作成できます。

本関数は、引数 stagger の機能により、グループごとに描画位置を水平方向にわずかにずらすことができます。それゆえ、エラーバー同士が重なって視認性が低下する事態を防ぎ、各カテゴリの推移を明瞭に把握することが可能となります。

関数 brkdn.plot の活用シーン

  • 反復測定データの推移確認

    • 複数の被験者グループに対して複数回の測定を行った際、グループ間の平均値の推移とばらつきを視覚的に比較・確認したい場合。
  • 2要因の交互作用の可視化

    • 2つのカテゴリ変数が目的変数に与える影響を同時に図示し、要因間の交互作用の有無を評価したい場合。
  • 条件別のパフォーマンス推移の提示

    • 異なる設定条件(グループ)ごとの評価スコア(観測値)を時系列または水準順に並べて提示し、最適な設定条件を探索したい場合。

関数 brkdn.plot の引数

library(plotrix)
args(brkdn.plot)
function (vars, groups = NULL, obs = NULL, data, mct = "mean", 
    md = "std.error", stagger = NULL, dispbar = TRUE, main = "Breakdown plot", 
    xlab = NULL, ylab = NULL, xaxlab = NA, ylim = NA, type = "b", 
    pch = 1, lty = 1, col = par("fg"), staxx = FALSE, yat = NULL, 
    ...) 
NULL
  • vars

    • 描画対象となる目的変数の列名を指定します。あるいは y ~ group + obs のような formula(数式)形式で変数間の関係を指定することも可能です。
  • groups

    • データを分割する第1のカテゴリ変数(グループ化の要因)の列名を指定します。
  • obs

    • グラフのX軸に並べる第2のカテゴリ変数(観測時点や条件の水準など)の列名を指定します。
  • data

    • 描画対象の変数が格納されているデータフレームを指定します。
  • mct

    • 中心傾向(プロットされる点)を算出するための関数名を文字列で指定します。初期値は "mean"(平均値)です。
  • md

    • データのばらつき(エラーバー)を算出するための関数名を文字列で指定します。初期値は "std.error"(標準誤差)です。
  • stagger

    • エラーバーの重なりを防ぐために、X軸上のプロット位置を水平方向にずらす幅を指定します。
  • dispbar

    • ばらつきを示すエラーバーを描画するかどうかを論理値で指定します。初期値は TRUE です。
  • main, xlab, ylab, ylim, xaxlab, yat

    • グラフのタイトル、X軸およびY軸のラベル、Y軸の範囲、X軸の各目盛りラベル、Y軸の目盛り位置など、装飾に関する設定を行います。
  • type, pch, lty, col

    • 描画タイプ(初期値は "b" で点と線)、プロットの記号、線種、色を指定します。ベクトル形式で与えることで、グループごとに異なるスタイルを適用できます。
  • staxx

    • X軸のラベルが重なるのを防ぐために、互い違いに配置するかどうかを論理値で指定します。

サンプルコード

# 1. 架空のデータフレームを生成します
# 3つの学習手法(Method)と4回のテスト(Test)による成績(Score)の推移を想定します
seed <- 20260307
set.seed(seed)
test_data <- data.frame(
  Method = rep(c("手法A", "手法B", "手法C"), each = 40),
  Test = rep(rep(c("第1回", "第2回", "第3回", "第4回"), each = 10), times = 3),
  Score = c(
    rnorm(10, 50, 10), rnorm(10, 55, 10), rnorm(10, 60, 10), rnorm(10, 62, 10),
    rnorm(10, 50, 8), rnorm(10, 60, 8), rnorm(10, 70, 8), rnorm(10, 75, 8),
    rnorm(10, 50, 12), rnorm(10, 52, 12), rnorm(10, 54, 12), rnorm(10, 55, 12)
  )
)

# Test列をファクター化し、描画順序を制御します
test_data$Test <- factor(test_data$Test, levels = c("第1回", "第2回", "第3回", "第4回"))

# 2. brkdn.plotを用いたグラフの描画
# formula形式を利用して目的変数とカテゴリ変数を指定します
brkdn.plot(
  vars = Score ~ Method + Test,
  data = test_data,
  mct = "mean", # 平均値をプロットの中心点として算出します
  md = "std.error", # ばらつきとして標準誤差をエラーバーで描画します
  main = "学習手法ごとの成績推移",
  xlab = "テスト実施回",
  ylab = "平均スコア (±標準誤差)",
  col = c("blue", "red", "darkgreen"),
  pch = c(15, 16, 17),
  lty = c(1, 2, 3),
  stagger = 0.05 # エラーバーの重なりを回避するためのずらし幅を設定します
)

# 3. 凡例の追加
# グラフ内の情報を補足するために各グループのスタイルを明示します
legend(
  "topleft",
  legend = c("手法A", "手法B", "手法C"),
  col = c("blue", "red", "darkgreen"),
  pch = c(15, 16, 17),
  lty = c(1, 2, 3),
  bty = "n"
)
$mean
         [,1]     [,2]     [,3]     [,4]
[1,] 49.92027 52.77419 63.26976 61.29945
[2,] 51.13387 64.05488 69.21435 73.06575
[3,] 41.36497 53.38556 55.41149 60.25226

$std.error
         [,1]     [,2]     [,3]     [,4]
[1,] 4.624254 2.074360 1.914578 3.218168
[2,] 2.647177 2.954316 2.615754 2.494520
[3,] 3.902307 3.491866 2.034417 3.405070
Figure 1

以上です。