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

cramersV

Cramer's V(有时也称为 Cramer's phi)是用于度量一张表中两列之间关联程度的指标。cramersV 函数的结果范围为 0(表示变量之间没有关联)到 1,且只有当每个值都完全由另一个变量决定时才会达到 1。可以将其理解为两个变量之间关联程度占其最大可能变动的百分比。

注意

关于偏差校正版本的 Cramer's V,请参阅:cramersVBiasCorrected

语法

cramersV(column1, column2)

参数

  • column1:要比较的第一个列。
  • column2:要比较的第二个列。

返回值

  • 一个介于 0(对应列取值之间没有任何关联)到 1(完全相关)之间的值。

类型:始终为 Float64

示例

下面要比较的两列之间没有任何关联,因此 cramersV 的结果为 0:

查询:

SELECT
    cramersV(a, b)
FROM
    (
        SELECT
            number % 3 AS a,
            number % 5 AS b
        FROM
            numbers(150)
    );

结果:

┌─cramersV(a, b)─┐
│              0 │
└────────────────┘

下方这两列之间的关联性较强,因此 cramersV 的结果值较高:

SELECT
    cramersV(a, b)
FROM
    (
        SELECT
            number % 10 AS a,
            if(number % 12 = 0, (number + 1) % 5, number % 5) AS b
        FROM
            numbers(150)
    );

结果:

┌─────cramersV(a, b)─┐
│ 0.9066801892162646 │
└────────────────────┘