Python で f テストを実行する方法
F 検定は、2 つの母集団分散が等しいかどうかを検定するために使用されます。検定の帰無仮説と対立仮説は次のとおりです。
H 0 : σ 1 2 = σ 2 2 (母集団分散は等しい)
H 1 : σ 1 2 ≠ σ 2 2 (母集団分散は等しくない)
このチュートリアルでは、Python で F テストを実行する方法を説明します。
例: Python での F テスト
次の 2 つの例があるとします。
x = [18, 19, 22, 25, 27, 28, 41, 45, 51, 55] y = [14, 15, 15, 17, 18, 22, 25, 25, 27, 34]
次の関数を使用して F 検定を実行し、これらのサンプルの由来となる 2 つの母集団の分散が等しいかどうかを判断できます。
import numpy as np #define F-test function def f_test(x, y): x = np.array(x) y = np.array(y) f = np.var(x, ddof=1)/np.var(y, ddof=1) #calculate F test statistic dfn = x.size-1 #define degrees of freedom numerator dfd = y.size-1 #define degrees of freedom denominator p = 1-scipy.stats.f.cdf(f, dfn, dfd) #find p-value of F test statistic return f,p #perform F-test f_test(x, y) (4.38712, 0.019127)
F 検定統計量は4.38712で、対応する p 値は0.019127です。この p 値は 0.05 未満であるため、帰無仮説は棄却されます。これは、2 つの母集団分散が等しくないと言える十分な証拠があることを意味します。
コメント
- F 検定統計量は s 1 2 / s 2 2として計算されます。デフォルトでは、 numpy.var は母集団の分散を計算します。標本分散を計算するには、 ddof=1を指定する必要があります。
- p 値は、分子の自由度 = n 1 -1、分母の自由度 = n 2 -1 である分布 F の 1 – cdf に対応します。
- この関数は、最初のサンプルの分散が 2 番目のサンプルの分散よりも大きい場合にのみ機能します。したがって、両方の例を関数で動作するように設定します。
F テストをいつ使用するか
F 検定は通常、次の質問のいずれかに答えるために使用されます。
1. 2 つのサンプルは分散が等しい母集団からのものですか?
2. 新しい治療法またはプロセスは、現在の治療法またはプロセスの変動性を軽減しますか?
関連: R で F テストを実行する方法