> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 2つの母集団から得られたサンプルに対して、コルモゴロフ＝スミルノフ検定を適用します。

# kolmogorovSmirnovTest

<div id="kolmogorovSmirnovTest">
  ## kolmogorovSmirnovTest
</div>

導入バージョン: v23.4.0

2 つの母集団から得られたサンプルに対して、コルモゴロフ＝スミルノフ検定を適用します。

両方のサンプルの値は `sample_data` カラムに格納されます。`sample_index` が 0 の場合、その行の値は 1 つ目の母集団のサンプルに属します。それ以外の場合は、2 つ目の母集団のサンプルに属します。
サンプルは、連続な 1 次元確率分布に属している必要があります。

**構文**

```sql theme={null}
kolmogorovSmirnovTest([alternative, computation_method])(sample_data, sample_index)
```

**パラメータ**

* `alternative` — 対立仮説。 (省略可能。デフォルト: 'two-sided'。) `F(x)` と `G(x)` を、それぞれ第 1 および第 2 の分布の CDF とします。'two-sided': 帰無仮説は、サンプルが同じ分布に従うというものです。たとえば、すべての x について `F(x) = G(x)` です。対立仮説は、2 つの分布が同一ではないというものです。'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)` であるというものです。[`String`](/ja/reference/data-types/string)
* `computation_method` — p 値の計算方法。 (省略可能。デフォルト: 'auto'。) 'exact': 検定統計量の正確な確率分布を用いて計算します。計算負荷が高く、小さいサンプル以外では非効率です。'asymp' ('asymptotic'): 近似を用いて計算します。サンプルサイズが大きい場合、正確な p 値と漸近 p 値は非常に近くなります。'auto': サンプル数の最大値が 10'000 未満の場合は 'exact' メソッドを使用します。[`String`](/ja/reference/data-types/string)

**引数**

* `sample_data` — サンプルデータ。[`(U)Int*`](/ja/reference/data-types/int-uint) または [`Float*`](/ja/reference/data-types/float) または [`Decimal`](/ja/reference/data-types/decimal)
* `sample_index` — サンプル索引。[`(U)Int*`](/ja/reference/data-types/int-uint)

**戻り値**

2 つの要素を持つタプルを返します。計算された統計量と p 値です。[`Tuple(Float64, Float64)`](/ja/reference/data-types/tuple)

**例**

**同一分布の検定**

```sql title=Query theme={null}
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)
)
```

```response title=Response theme={null}
┌─kolmogorovSmirnovTest('less', 'exact')(value, num)─┐
│ (0.009899999999999996,0.37528595205132287)         │
└────────────────────────────────────────────────────┘
```

**異なる分布に対する検定**

```sql title=Query theme={null}
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)
)
```

```response title=Response theme={null}
┌─kolmogorovSmirnovTest('two-sided', 'exact')(value, num)─┐
│ (0.4100000000000002,6.61735760482795e-8)                │
└─────────────────────────────────────────────────────────┘
```

**関連項目**

* [コルモゴロフ＝スミルノフ検定](https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test)
