t検定の自由度が整数にならない? [データサイエンス、統計モデル]
統計の講師をしていて、なるほど!と思う質問を受けることがあります。
せっかくなので、その中からピックアップして紹介できればと思います。
【質問】
A.sales <- c(1000, 980, 1200, 1260, 1500, 1005, 820, 1490, 1500, 960)
B.sales <- c(880, 1080, 1580, 2180, 1900, 1950, 1200, 910, 2100, 1890)
t.test(A.sales, B.sales)
t検定の自由度は、20-1=19で19のはずですが、自由度が13.324となってしまいます。
【回答】
自由度ですが、
A.sales と B.sales ごとに平均値の縛りがあるため、
(10-1) + (10-1) = 18
が正しいです。
var.equal=T のオプションを付けて、t.test(A.sales, B.sales, var.equal=T) とするとdf=18となります。
var.equal=T
等分散を仮定している
→自由度は18
var.equal=F
等分散を仮定していない(ウェルチのt検定)
→自由度は13.324
Rはデフォルトで、Welchのt検定(ウェルチのt検定)となるので、
と自由度が13.324となっています。
せっかくなので、その中からピックアップして紹介できればと思います。
【質問】
A.sales <- c(1000, 980, 1200, 1260, 1500, 1005, 820, 1490, 1500, 960)
B.sales <- c(880, 1080, 1580, 2180, 1900, 1950, 1200, 910, 2100, 1890)
t.test(A.sales, B.sales)
t検定の自由度は、20-1=19で19のはずですが、自由度が13.324となってしまいます。
【回答】
自由度ですが、
A.sales と B.sales ごとに平均値の縛りがあるため、
(10-1) + (10-1) = 18
が正しいです。
var.equal=T のオプションを付けて、t.test(A.sales, B.sales, var.equal=T) とするとdf=18となります。
var.equal=T
等分散を仮定している
→自由度は18
var.equal=F
等分散を仮定していない(ウェルチのt検定)
→自由度は13.324
Rはデフォルトで、Welchのt検定(ウェルチのt検定)となるので、
> t.test(A.sales, B.sales)
Welch Two Sample t-test
data: A.sales and B.sales
t = -2.2088, df = 13.324, p-value = 0.04528
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-781.368266 -9.631734
sample estimates:
mean of x mean of y
1171.5 1567.0
と自由度が13.324となっています。