kolmogorovSmirnovTest
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
kolmogorovSmirnovTest([alternative, computation_method])(sample_data, sample_index)Parâmetros
alternative— Hipótese alternativa. (Opcional, padrão: 'two-sided'.) SejamF(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 queF(x) >= G(x)para todo x. A alternativa, nesse caso, é queF(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 queF(x) <= G(x)para todo x. A alternativa, nesse caso, é queF(x) > G(x)para pelo menos um x.Stringcomputation_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
Argumentos
sample_data— Dados da amostra.(U)Int*ouFloat*ouDecimalsample_index— Índice da amostra.(U)Int*
Valor retornado
Retorna uma tupla com dois elementos: uma estatística calculada e um valor-p calculado. Tuple(Float64, Float64)
Exemplos
Teste de mesma distribuição
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) │
└────────────────────────────────────────────────────┘Teste para distribuições diferentes
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) │
└─────────────────────────────────────────────────────────┘Veja também