跳到主要内容
跳到主要内容

kolmogorovSmirnovTest

将 Kolmogorov-Smirnov 检验应用于来自两个总体的样本。

语法

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

两个样本的值都在 sample_data 列中。如果 sample_index 等于 0,则该行中的值属于来自第一个总体的样本。否则,它属于来自第二个总体的样本。样本必须属于连续的一维概率分布。

参数

参数

  • alternative — 备择假设。(可选,默认值:'two-sided'。)字符串。设 F(x) 和 G(x) 分别为第一和第二分布的 CDF。
    • 'two-sided' 零假设是样本来自同一分布,例如所有 x 均有 F(x) = G(x)。备择假设是分布不相同。
    • 'greater' 零假设是第一个样本中的值在随机意义上小于第二个样本中的值,例如,第一个分布的 CDF 位于第二个分布的 CDF 的上方,因此位于其左侧。这实际上意味着所有 x 均有 F(x) >= G(x)。在这种情况下,备择假设是至少对于一个 x,F(x) < G(x)
    • 'less'。零假设是第一个样本中的值在随机意义上大于第二个样本中的值,例如,第一个分布的 CDF 位于第二个分布的 CDF 的下方,因此位于其右侧。这实际上意味着所有 x 均有 F(x) <= G(x)。在这种情况下,备择假设是至少对于一个 x,F(x) > G(x)
  • computation_method — 用于计算 p 值的算法。(可选,默认值:'auto'。)字符串
    • 'exact' - 使用检验统计量的精确概率分布执行计算。计算密集且浪费资源,除非对于小样本。
    • 'asymp' ('asymptotic') - 使用近似值执行计算。对于大样本量,精确 p 值和渐近 p 值非常相似。
    • 'auto' - 当最大样本数小于 10'000 时,使用 'exact' 算法。

返回值

元组,包含两个元素

示例

查询

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 值小于 0.05(对于 95% 的置信水平),因此拒绝零假设。

参见

© . This site is unofficial and not affiliated with ClickHouse, Inc.