スタートページ> JavaScript> 他言語> R言語
F検定とは、二つの母集団の分散に差があるかどうかを調べる統計手法です。
var.test は最も単純なF検定関数です。
x, y 標本のベクトルです。ここでは x=a, y=b としています。 x を分子側、yを分母側といいます。 (分散が小のものを分母側にするのが通常ですが、var.test ではどちらでもよいようです) 主なoptions 検定条件 表記形式 省略時解釈 片側検定(a > b)alternative = "greater" 両側検定 片側検定(a < b)alternative = "less" 両側検定 信頼水準99% conf.level=0.99 95% 分散比=16? ratio=16 1
標準ケース(a≠b)a <- c(1, 1, 3, 5, 6, 8, 9, 9) var(a) # 分散=11.07 b <- c(3, 3, 4, 4, 4, 5, 5) var(b) # 分散=0.667 var.test(a, b) 結果 F test to compare two variances data: a and b F =16.607, num df = 7, denom df = 6, p-value = 0.003109 F値 分子自由度 分母自由度 P値 └ aの分散/bの分散 P値 < 0.05 → aとbの分散に差があるといえる(危険度5%) alternative hypothesis: true ratio of variances is not equal to 1 対立仮説:分散比は1ではない(分散に差がある) 95 percent confidence interval: 95信頼区間 2.915851 85.005265 下限値 上限値 1<下限値 → 対立仮説は棄却できない → 差がある sample estimates: ratio of variances 16.60714 分散比 aの分散/bの分散 |
対立ケース(a≒b)a <- c(1, 1, 2, 2, 3, 4, 4, 4) var(a) # 分散=1.696 b <- c(3, 3, 4, 4, 5, 6, 6) var(b) # 分散=1.619 var.test(a, b) 結果 F test to compare two variances data: a and b F = 1.0478, num df = 7, denom df = 6, p-value = 0.9709 F値 分子自由度 分母自由度 P値 └ aの分散/bの分散 P値 > 0.05 →差があるとはいえない alternative hypothesis: true ratio of variances is not equal to 1 対立仮説:分散比は1ではない(分散に差がある) 95 percent confidence interval: 95信頼区間 0.1839697 5.3632354 下限値 上限値 下限値<1<上限値→対立仮説は棄却→差があるとはいえない sample estimates: ratio of variances 1.047794 |
対立仮説 「分散比は1ではない(分散に差がある)」 仮説が成立する確率が大きければ、対立仮説は棄却できない。→分散に差がある 仮説が成立する確率が小さければ、対立仮説は棄却。→分散に差があるとはいえない この「仮説が成立する確率」が p-value 大小の判断基準=危険度(1-有意水準)。通常は 0.05 標準ケース p-value = 0.003109 < 0.05 →差がある 対立ケース p-value = 0.9709 > 0.05 →差があるとはいえない
95%の確率で母集団の分散比が存在する範囲が下限値と上限値 1<下限値、上限値<1 → 対立仮説は棄却できない → 差がある 下限値<1<上限値 → 対立仮説は棄却→差があるとはいえない 標準ケース 1<下限値(2.915851) → 差がある 対立ケース 下限値(0.1839697)<1<上限値(5.3632354)→差があるとはいえない
両方とも分散比(aの分散/bの分散)のようです。 (私はF値はF分布表などによる値だと思っていたのですが・・・)
以下、入力データは「標準ケース」と同じです。
aの分散 = 11.07, bの分散 = 0.667, 分散比 = 11.07/0.667 = 16.607
標準ケース(a≠b) 対立仮説:分散比≠1 F =16.607, p-value = 0.003109 p < 0.05 →差がある 下限値=2.915851, 上限値=85.005265 1<下限値 →対立仮説棄却できない→差がある |
片側検定 (a > b) 対立仮説:分散比>1(a > b) F =16.607, p-value = 0.001554 p < 0.05(★1) →a>bといえる 下限値=3.947823, 上限値=Inf(∞) 1<下限値 →対立仮説棄却できない→a>bといえる |
片側検定 (a < b) 対立仮説:分散比<1(a < b) F =16.607, p-value = 0.9984 p > 0.05(★1) →a<bとはいえない 下限値=0.0000, 上限値=64.2027 下限値<1<上限値 →対立仮説棄却→a<bとはいえない |
信頼水準99% 対立仮説:分散比≠1 F =16.607, p-value = 0.003109 p < 0.01(★2) →差がある 下限値=1.539706, 上限値=152.043972 1<下限値 →対立仮説棄却できない→差がある |
分散比=16? 対立仮説:分散比≠16 F =16.607, p-value = 0.980 p > 0.05 →16ではないといえない 下限値=2.915851, 上限値=85.005265 下限値<16(★3)<上限値 →対立仮説棄却→16ではないといえない |
(★1)「両側 0.05 は、片側 0.025 に相当する」ので、危険度や有意水準の設定には違いが生じるようですが、var.test では「対立仮説」を解釈して、自動的に調整しているようです。Webでいくつかの例題を見たのですが、0.025 を用いている例は皆無でした。
(★2)0.05, 0.01 の両方の例を見つけられませんでしたが、これは 0.01 で間違いないと思います。
(★3)信頼区間による検定を、他の例では上下限値と「1」の比較でしたが、正確には ratio との比較になります。