• 検索結果がありません。

: R でt検定

http://kogolab.jp/elearn/hamburger/chap4/sec1.html にある例題をRでみていきます。

最初は、対応の無い二標本 t 検定の例です。

ワクワクバーガーを食べた女子高生8名の点数を a に、モグモグバーガーを食べた女子高生8名

(最初の8名とは別人)の点数を b にいれます。

> a <- c(70,75,70,85,90,70,80,75)

> b <- c(85,80,95,70,80,75,80,90) まずは分布をみてみましょう。

> stem(a)

The decimal point is 1 digit(s) to the right of the | 7 | 000

7 | 55 8 | 0 8 | 5 9 | 0

> stem(b)

The decimal point is 1 digit(s) to the right of the |

7 | 05

8 | 0005 9 | 05

ヒストグラムを見ましょう。

> hist(a)

> hist(b) 箱ひげ図は。

> boxplot(a)

> boxplot(b)

ひとつにまとめて表示しましょう。

> boxplot(a, b, names=c(" ワクワク "," モグモグ "))

それぞれの平均は・・・

> mean(a) [1] 76.875

> mean(b) [1] 81.875

小数点2桁にして、見やすくしましょう。

> round(mean(a),2) [1] 76.88

> round(mean(b),2) [1] 81.88

useful.r をいれていたら describe を使って基礎統計量を確認できます。

> describe(a)

V n mean sd median min max range skew se 1 1 8 76.88 7.53 75 70 90 20 0.54 2.66

> describe(b)

V n mean sd median min max range skew se 1 1 8 81.88 7.99 80 70 95 25 0.2 2.82

>

t検定をする前に、それぞれの分散が等しいがどうかを調べます。

帰無仮説は、等分散である。(分散に差がない)

対立仮説は、分散に差がある。(等分散ではない)

> var.test(a,b)

F test to compare two variances

data: a and b

F = 0.8881, num df = 7, denom df = 7, p-value = 0.8796 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval:

0.1778034 4.4360383 sample estimates:

ratio of variances 0.8881119

等しいという帰無仮説は棄却されませんでしたので、等分散のようですね。

t検定は、 t.test( ) なのですが、注意をしないと以下のようになります。

> t.test(a,b)

Welch Two Sample t-test data: a and b

t = -1.2881, df = 13.951, p-value = 0.2187

alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval:

-13.327988 3.327988 sample estimates:

mean of x mean of y 76.875 81.875

 上のようにオプションをつけないと、等分散でない時の検定がおこなわれます。 (Welch( ウェルチ ) の検定 )

 先に調べたように、等分散であるならば、オプション  var.equal=T を引数(ひきすう)にくわえ、 t 検定をします。

 通常、心理学研究の場合、等分散であるという仮定をしていく場合が多い気がします。

帰無仮説:味に差がない。

対立仮説:味に差がある。

> t.test(a,b, var.equal=T) Two Sample t-test data: a and b

t = -1.2881, df = 14, p-value = 0.2186

alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval:

-13.325244 3.325244

sample estimates:

mean of x mean of y 76.875 81.875

味に差がないという帰無仮説は棄却されません。

次の方法もぜひ覚えておいてください。普通に質問紙調査をすると、 dataframe 形式で扱います。

> group <- c(rep("A",8),rep("B",8))

rep は、 repeat ですね。 最初の引数を、次の引数の数だけ繰り返します。

A が、ワクワクバーガー、Bがモグモグバーガーということです。

> group

[1] "A" "A" "A" "A" "A" "A" "A" "A" "B" "B" "B" "B" "B" "B" "B" "B"

> aji <- c(a,b)

最初に、ワクワクバーガーの得点を並べて、次にモグモグバーガーの得点を並べます。

> aji

[1] 70 75 70 85 90 70 80 75 85 80 95 70 80 75 80 90

> buger.df <- data.frame(group,aji)

> buger.df group aji 1 A 70 2 A 75 3 A 70 4 A 85 5 A 90 6 A 70 7 A 80 8 A 75 9 B 85 10 B 80 11 B 95 12 B 70 13 B 80 14 B 75 15 B 80 16 B 90

上のようなデータフレームになります。

~ は、チルダです。

> t.test(aji ~ group, data = buger.df, var.equal=T)

Two Sample t-test

data: aji by group

t = -1.2881, df = 14, p-value = 0.2186

alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval:

-13.325244 3.325244 sample estimates:

mean in group A mean in group B 76.875 81.875

この形式の場合の箱ひげ図は以下のようにします。

> boxplot(aji~group, data=buger.df)

> library(gplots)

要求されたパッケージ gtools をロード中です 要求されたパッケージ gdata をロード中です 次のパッケージを付け加えます : 'gplots'

The following object(s) are masked from package:stats : lowess

> plotmeans(aji~group, data=buger.df)

useful.r を取り入れていて、 describe を使えるならば・・・

> by(buger.df$aji, buger.df$group, describe) INDICES: A

V n mean sd median min max range skew se 1 1 8 76.88 7.53 75 70 90 20 0.54 2.66

--- INDICES: B

V n mean sd median min max range skew se 1 1 8 81.88 7.99 80 70 95 25 0.2 2.82

>

対応のある t 検定

次は、

http://kogolab.jp/elearn/hamburger/chap5/sec1.html

対応のあるt検定です。

「女子高生 8 人を集めて、 2 種類のハンバーガーを食べて比較してもらい、それぞれのハンバー ガーに点数をつけてもらいました。」という例題です。

> a <- c(90,75,75,75,80,65,75,80)

> b <- c(95,80,80,80,75,75,80,85)

> describe(a)

V n mean sd median min max range skew se 1 1 8 76.88 7.04 75 65 90 25 0.22 2.49

> describe(b)

V n mean sd median min max range skew se 1 1 8 81.25 6.41 80 75 95 20 1.02 2.27

>

http://cse.naro.affrc.go.jp/takezawa/r-tips/r/64.html を参考にします。

オプションに、 paired = T をつけます。

> t.test(a, b, paired = TRUE) Paired t-test

data: a and b

t = -2.9656, df = 7, p-value = 0.02094

alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval:

-7.8633933 -0.8866067 sample estimates:

mean of the differences -4.375

>

ワクワクとモグモグの評価点の平均には差があるという結果になりました。

もし、どちらかがおいしいという仮説が前もってあるならば、オプションをつけることで、片側検定が できます。

> t.test(a, b, paired = TRUE, alternative = "less") Paired t-test

data: a and b

t = -2.9656, df = 7, p-value = 0.01047

alternative hypothesis: true difference in means is less than 0 95 percent confidence interval:

-Inf -1.580038 sample estimates:

mean of the differences

-4.375

あるいは以下のとおり。

> t.test(a - b, alternative = "less") One Sample t-test

data: a - b

t = -2.9656, df = 7, p-value = 0.01047

alternative hypothesis: true mean is less than 0 95 percent confidence interval:

-Inf -1.580038 sample estimates:

mean of x -4.375

データフレームにしてやってみましょう。

まず、協力者を8名番号をつけます。

>subject <- c(1:8)

>pair.t.df <- data.frame(subject, a, b)

> subject <- c(1:8)

> pair.t.df <- data.frame(subject, a, b)

> pair.t.df subject a b 1 1 90 95 2 2 75 80 3 3 75 80 4 4 75 80 5 5 80 75 6 6 65 75 7 7 75 80 8 8 80 85

>

これで、データフレームができました。

> t.test(a, b, paired=T, data=pair.t.df) Paired t-test

data: a and b

t = -2.9656, df = 7, p-value = 0.02094

alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval:

-7.8633933 -0.8866067 sample estimates:

mean of the differences

-4.375

関連したドキュメント