【R講座】t検定の方法と実践

R

この記事では、Rを使用してt検定を行う方法について解説しています。

t検定とは

t検定は、2つの群の平均値を比較するための統計手法です。たとえば、新しい肥料を使った植物と使わなかった植物の成長の違いを比較する場合などに使用されます。

前提条件

t検定を実施する際には以下の条件を確認します。

  • 対応の有無
    • 対応のあるデータ(例:同じ植物個体に対する施肥効果の前後比較)
    • 対応のないデータ(例:異なる植物に対する異なる施肥効果の比較)
  • 正規性:データが正規分布に従っているか。
  • 等分散性:2つの群のデータが等分散かどうか。
  • 群数:比較する群が2つであること。
  • データ尺度:データが間隔尺度または比率尺度であること。

仮説の設定

t検定を実施するためには、以下の仮説を設定します。

  • 帰無仮説(H0:2つの群の平均に差はない。
  • 対立仮説(H1:2つの群の平均に差がある。

t検定の種類

  • ステューデントのt検定:2群の分散が等しいと仮定
  • ウェルチのt検定:2群の分散が等しいと仮定できない場合に使用
  • 対応のあるt検定:同一対象から得られた2つの関連する標本の比較

F検定を使ってまず等分散性(2つのグループのデータが同じ分散を持つかどうか)を調べてからt検定を行うと、統計的な検定を複数回行うことになります。このような場合、検定の多重性の問題が生じる可能性があります。つまり、複数の検定を行うことで、偶然による誤差が積み重なり、誤った結論を導くリスクが増えるのです。

この問題を避けるために、等分散を仮定せずに検定を行うウェルチのt検定が最初から推奨されています。ウェルチのt検定は、グループ間で分散が異なる場合にも有効な方法であり、等分散性を前提としないため、別途F検定を行う必要がありません。

要するに、データの分散が等しいかどうかを確認するためにF検定を行うよりも、最初からウェルチのt検定を使うことで、検定の多重性による問題を避けることができるということです。

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検定を行う方法について解説しました。

次回は分散分析の方法についてさらに詳しく紹介します。

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

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

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

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