メインコンテンツへスキップ
メインコンテンツへスキップ

kolmogorovSmirnovTest

2つの母集団からの標本に Kolmogorov-Smirnov 検定を適用します。

構文

kolmogorovSmirnovTest([alternative, computation_method])(sample_data, sample_index)

両方のサンプルの値は sample_data カラムにあります。sample_index が 0 の場合、その行の値は第1母集団からのサンプルに属します。そうでない場合は第2母集団からのサンプルに属します。 サンプルは連続な1次元の確率分布に属している必要があります。

引数

  • sample_data — サンプルデータ。IntegerFloat または Decimal
  • sample_index — サンプルのインデックス。Integer

パラメータ

  • alternative — 対立仮説。(省略可能、デフォルト: 'two-sided'。)String。 F(x) および G(x) を、それぞれ第1および第2の分布の CDF とします。
    • 'two-sided' 帰無仮説は、サンプルが同じ分布から来ているというものです。例えば、すべての x について F(x) = G(x) であるとします。 そして対立仮説は、これらの分布が同一ではないというものです。
    • 'greater' 帰無仮説は、第1サンプル中の値が第2サンプル中の値よりも 確率的に小さい というものです。 例えば、第1分布の CDF が第2分布の CDF よりも上側、したがって左側に位置するような場合です。 これは実際には、すべての x について F(x) >= G(x) であることを意味します。そしてこの場合の対立仮説は、少なくとも1つの x について F(x) < G(x) であるというものです。
    • 'less' 帰無仮説は、第1サンプル中の値が第2サンプル中の値よりも 確率的に大きい というものです。 例えば、第1分布の CDF が第2分布の CDF よりも下側、したがって右側に位置するような場合です。 これは実際には、すべての x について F(x) <= G(x) であることを意味します。そしてこの場合の対立仮説は、少なくとも1つの x について F(x) > G(x) であるというものです。
  • computation_method — p値の計算に用いる手法。(省略可能、デフォルト: 'auto'。)String
    • 'exact' - 検定統計量の正確な確率分布を用いて計算を行います。計算量が多く、小さいサンプル以外では非効率です。
    • 'asymp' ('asymptotic') - 近似を用いて計算を行います。大きなサンプルサイズでは、正確な p値と漸近的な p値は非常によく一致します。
    • 'auto' - サンプル数の最大値が 10'000 未満の場合に 'exact' 手法を使用します。

戻り値

2 要素を持つ Tuple:

  • 計算された統計量。Float64
  • 計算された p値。Float64

クエリ:

SELECT kolmogorovSmirnovTest('less', 'exact')(value, num)
FROM
(
    SELECT
        randNormal(0, 10) AS value,
        0 AS num
    FROM numbers(10000)
    UNION ALL
    SELECT
        randNormal(0, 10) AS value,
        1 AS num
    FROM numbers(10000)
)

結果:

┌─kolmogorovSmirnovTest('less', 'exact')(value, num)─┐
│ (0.009899999999999996,0.37528595205132287)         │
└────────────────────────────────────────────────────┘

注意: P値は 0.05(信頼水準 95%)より大きいため、帰無仮説は棄却されません。

クエリ:

SELECT kolmogorovSmirnovTest('two-sided', 'exact')(value, num)
FROM
(
    SELECT
        randStudentT(10) AS value,
        0 AS num
    FROM numbers(100)
    UNION ALL
    SELECT
        randNormal(0, 10) AS value,
        1 AS num
    FROM numbers(100)
)

結果:

┌─kolmogorovSmirnovTest('two-sided', 'exact')(value, num)─┐
│ (0.4100000000000002,6.61735760482795e-8)                │
└─────────────────────────────────────────────────────────┘

注記: P-value は 0.05 未満であるため(95% の信頼水準において)、帰無仮説は棄却されます。

関連項目