> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Aplica o teste de Kolmogorov-Smirnov a amostras de duas populações.

# kolmogorovSmirnovTest

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

Introduzido em: v23.4.0

Aplica o teste de Kolmogorov-Smirnov a amostras de duas populações.

Os valores de ambas as amostras estão na coluna `sample_data`. Se `sample_index` for igual a 0, o valor nessa linha pertence à amostra da primeira população. Caso contrário, pertence à amostra da segunda população.
As amostras devem pertencer a distribuições de probabilidade contínuas e unidimensionais.

**Sintaxe**

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

**Parâmetros**

* `alternative` — Hipótese alternativa. (Opcional, padrão: 'two-sided'.) Sejam `F(x) e G(x)` as CDFs da primeira e da segunda distribuição, respectivamente. 'two-sided': a hipótese nula é que as amostras vêm da mesma distribuição, por exemplo, `F(x) = G(x)` para todo x. A alternativa é que as distribuições não sejam idênticas. 'greater': a hipótese nula é que os valores da primeira amostra sejam estocasticamente menores que os da segunda, por exemplo, a CDF da primeira distribuição fica acima e, portanto, à esquerda da CDF da segunda. Isso, na prática, significa que `F(x) >= G(x)` para todo x. A alternativa, nesse caso, é que `F(x) < G(x)` para pelo menos um x. 'less': a hipótese nula é que os valores da primeira amostra sejam estocasticamente maiores que os da segunda, por exemplo, a CDF da primeira distribuição fica abaixo e, portanto, à direita da CDF da segunda. Isso, na prática, significa que `F(x) <= G(x)` para todo x. A alternativa, nesse caso, é que `F(x) > G(x)` para pelo menos um x. [`String`](/docs/pt-BR/reference/data-types/string)
* `computation_method` — O método usado para calcular o valor-p. (Opcional, padrão: 'auto'.) 'exact': o cálculo é realizado usando a distribuição de probabilidade exata das estatísticas do teste. Exige muito processamento e é desnecessário, exceto para amostras pequenas. 'asymp' ('asymptotic'): o cálculo é realizado usando uma aproximação. Para tamanhos de amostra grandes, os valores-p exato e assintótico são muito semelhantes. 'auto': o método 'exact' é usado quando o número máximo de amostras é menor que 10'000. [`String`](/docs/pt-BR/reference/data-types/string)

**Argumentos**

* `sample_data` — Dados da amostra. [`(U)Int*`](/docs/pt-BR/reference/data-types/int-uint) ou [`Float*`](/docs/pt-BR/reference/data-types/float) ou [`Decimal`](/docs/pt-BR/reference/data-types/decimal)
* `sample_index` — Índice da amostra. [`(U)Int*`](/docs/pt-BR/reference/data-types/int-uint)

**Valor retornado**

Retorna uma tupla com dois elementos: uma estatística calculada e um valor-p calculado. [`Tuple(Float64, Float64)`](/docs/pt-BR/reference/data-types/tuple)

**Exemplos**

**Teste de mesma distribuição**

```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)         │
└────────────────────────────────────────────────────┘
```

**Teste para distribuições diferentes**

```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)                │
└─────────────────────────────────────────────────────────┘
```

**Veja também**

* [teste de Kolmogorov-Smirnov](https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test)
