Rを使ったTukey-Kramer多重比較の方法と例

R

Tukey-Kramer多重比較は、各グループ間の平均値の差を比較するための手法です。

この記事ではRでTukey-Kramer多重比較をする方法と使用例について紹介します。

Tukey-Kramer多重比較

関数と引数

RでTukey-Kramer多重比較を行うには、TukeyHSD関数を使用します。この関数は、ANOVAの結果を基にして、Tukey-Kramerの事後検定を行います。

# ANOVAを実行
aov_result <- aov(response ~ group, data = data_frame)

# Tukey-Kramerの多重比較
tukey_result <- TukeyHSD(aov_result)

aov関数の引数

  • response: 応答変数(従属変数)
  • group: 独立変数(グループ)
  • data_frame: データフレーム

TukeyHSD関数の引数

  • aov_result: aov関数の結果オブジェクト

使用例

以下は、架空のデータセットを使用した具体的な例です。このデータセットには、異なるグループ(A, B, C)に対する応答変数の値が含まれています。

# サンプルデータの作成
set.seed(123)
data <- data.frame(
  group = rep(c("A", "B", "C"), each = 10),
  value = c(rnorm(10, mean = 10), rnorm(10, mean = 15), rnorm(10, mean = 20))
)

# ANOVAを実行
aov_result <- aov(value ~ group, data = data)

# Tukey-Kramerの多重比較
tukey_result <- TukeyHSD(aov_result)

# 結果の表示
print(tukey_result)

結果の見方

TukeyHSD関数の結果は、各グループ間の平均値の差、信頼区間、p値が含まれます。以下は結果の一例です。

Tukey multiple comparisons of means
  95% family-wise confidence level

Fit: aov(formula = value ~ group, data = data)

$group
       diff        lwr        upr     p adj
B-A  5.123456  2.345678  7.901234  0.000123
C-A  9.876543  7.098765 12.654321  0.000001
C-B  4.753086  1.975308  7.530864  0.001234

この結果から、各グループ間の平均値の差(diff)、その差の95%信頼区間(lwrとupr)、および調整済みp値(p adj)を確認できます。調整済みp値が0.05未満の場合、そのグループ間の平均値の差は有意であると判断します。

multcompとcld( )を使ったアルファベットの付け方

Tukey-Kramer多重比較の結果を視覚的に表現するために、グループ間の有意差をアルファベットで示すことがあります。同じアルファベットが付いているグループは、統計的に有意な差がないことを意味します。

例えば、以下のような結果が得られた場合:

$group
       diff        lwr        upr     p adj
B-A  5.123456  2.345678  7.901234  0.000123
C-A  9.876543  7.098765 12.654321  0.000001
C-B  4.753086  1.975308  7.530864  0.001234

グループ間の有意差を示すために、次のようにアルファベットを付けることができます。

A: a
B: b
C: b

ここで、グループAとグループBには有意差があり、グループAとグループCにも有意差がありますが、グループBとグループCの間には有意差がないことを示しています。

multcompパッケージを使うと、Tukey-Kramer多重比較をさらに簡単に行うことができます。また、cld関数を使うと、グループ間の有意差を視覚的に示すためのアルファベットを自動的に付けることができます。

インストールとロード

まず、multcompパッケージをインストールし、ロードします。

install.packages("multcomp")
library(multcomp)

使用例

multcompパッケージとcld関数を使用して、多重比較を行う例を以下に示します。

# サンプルデータの作成
set.seed(123)
data <- data.frame(
  group = factor(rep(c("A", "B", "C"), each = 10)),
  value = c(rnorm(10, mean = 10), rnorm(10, mean = 15), rnorm(10, mean = 20))
)

# ANOVAを実行
aov_result <- aov(value ~ group, data = data)

# glht関数を使ってTukey-Kramerの多重比較を行う
tukey_result <- glht(aov_result, linfct = mcp(group = "Tukey"))

# 結果の表示
summary(tukey_result)

# cld関数を使ってアルファベットを付ける
cld_result <- cld(tukey_result)

# 結果の表示
print(cld_result)

結果の視覚化

cld関数を使うと、グループ間の有意差を示すためのアルファベットが自動的に付与されます。以下はその結果の一例です。

  A   B   C 
"a" "b" "c" 

この結果から、グループAとグループB、グループAとグループC、グループBとグループCの間に有意差があることが示されています。


今回は、RでTukey-Kramer多重比較をする方法と例を紹介しました。

この記事が少しでもお役に立てたら嬉しいです。

プロフィール
この記事を書いた人

農学の博士前期課程を修了した研究者の卵。
植物生理と環境調節をテーマに研究しています。

Masaをフォローする
R統計
Masaをフォローする
タイトルとURLをコピーしました