この記事では、Rを使用してt検定を行う方法について解説しています。
t検定とは
t検定は、2つの群の平均値を比較するための統計手法です。たとえば、新しい肥料を使った植物と使わなかった植物の成長の違いを比較する場合などに使用されます。
前提条件
t検定を実施する際には以下の条件を確認します。
- 対応の有無:
- 対応のあるデータ(例:同じ植物個体に対する施肥効果の前後比較)
- 対応のないデータ(例:異なる植物に対する異なる施肥効果の比較)
- 正規性:データが正規分布に従っているか。
- 等分散性:2つの群のデータが等分散かどうか。
- 群数:比較する群が2つであること。
- データ尺度:データが間隔尺度または比率尺度であること。
仮説の設定
t検定を実施するためには、以下の仮説を設定します。
- 帰無仮説(H0):2つの群の平均に差はない。
- 対立仮説(H1):2つの群の平均に差がある。
t検定の種類
- ステューデントのt検定:2群の分散が等しいと仮定
- ウェルチのt検定:2群の分散が等しいと仮定できない場合に使用
- 対応のあるt検定:同一対象から得られた2つの関連する標本の比較
Rでt検定
Rを使ってt検定を実施する方法を紹介します。
関数と引数オプション
Rでt検定を行うには、t.test()
関数を使用します。この関数には以下のような引数があります。
# t.test(x, y = NULL, alternative = "two.sided", mu = 0, paired = FALSE, var.equal = FALSE)
# x, y: 比較する二つのデータベクトル
# alternative: "two.sided" (両側検定), "less" (片側検定: x < y), "greater" (片側検定: x > y)
# mu: 帰無仮説での平均値の差 (デフォルトは0)
# paired: 対応のあるt検定ならTRUE, 対応のないt検定ならFALSE
# var.equal: 分散が等しいと仮定するならTRUE, 分散が等しいと仮定できないならFALSE
Rではt.test()
関数のオプションを使用することで、ステューデントのt検定・ウェルチのt検定・対応のあるt検定を実行することができます。
コード例と結果の見方
以下は、Rで対応のない2つの群のt検定を行うコードの例です。
例として、新しい肥料を使った植物と使わなかった植物の成長データを使用します。
# データの準備
# 新しい肥料を使った植物の草丈(cm)
group1 <- c(15.2, 16.5, 14.8, 16.1, 15.9)
# 使わなかった植物の草丈(cm)
group2 <- c(14.2, 13.9, 14.7, 14.5, 14.6)
# t検定の実施
t.test(group1, group2, paired = FALSE, var.equal = TRUE)
# t検定の結果
Two Sample t-test
data: group1 and group2
t = 3.869, df = 8, p-value = 0.004748
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.5332503 2.1067497
sample estimates:
mean of x mean of y
15.70 14.38
この結果には、t値、自由度(df)、p値、信頼区間、および各群の平均値が含まれています。有意水準が5%とするとき、p値が0.05より小さい場合、帰無仮説を棄却し、2つの群の平均に有意な差があると結論づけます。
この例では、p値が0.004748であり、2つの群の平均に有意な差があると結論できます。
データフレームからt検定
データの入力方法として、2つのベクトルを使用する方法と、要因と結果の列(データフレーム)に分かれている場合の方法があります。
以下は、要因と結果の列に分かれている場合のコード例です。
# データの準備
data <- data.frame(
草丈 = c(15.2, 16.5, 14.8, 16.1, 15.9, 14.2, 13.9, 14.7, 14.5, 14.6),
肥料 = factor(rep(c("あり", "なし"), each = 5))
)
# t検定の実施
t.test(草丈 ~ 肥料, data = data, var.equal = TRUE)
この記事はRを使用してt検定を行う方法について解説しました。
次回は分散分析の方法についてさらに詳しく紹介します。
この記事が少しでもお役に立てたら嬉しいです。