xicor
在PG中计算XI相关系数
仓库
Florents-Tselai/pgxicor
https://github.com/Florents-Tselai/pgxicor
源码
pgxicor-0.1.1.tar.gz
pgxicor-0.1.1.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgxicor | 0.1.1 | FUNC | GPL-3.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 4670 | xicor | 否 | 是 | 否 | 是 | 是 | 是 | - |
| 相关扩展 | pg_idkit pgx_ulid pg_uuidv7 permuteseq pg_hashids sequential_uuids topn quantile |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.1.1 | 1817161514 | pgxicor | - |
| RPM | PIGSTY | 0.1.1 | 1817161514 | pgxicor_$v | - |
| DEB | PIGSTY | 0.1.1 | 1817161514 | postgresql-$v-pgxicor | - |
构建
您可以使用 pig build 命令构建 pgxicor 扩展的 RPM / DEB 包:
pig build pkg pgxicor # 构建 RPM / DEB 包
安装
您可以直接安装 pgxicor 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pgxicor; # 当前活跃 PG 版本安装
pig ext install -y pgxicor -v 18 # PG 18
pig ext install -y pgxicor -v 17 # PG 17
pig ext install -y pgxicor -v 16 # PG 16
pig ext install -y pgxicor -v 15 # PG 15
pig ext install -y pgxicor -v 14 # PG 14
dnf install -y pgxicor_18 # PG 18
dnf install -y pgxicor_17 # PG 17
dnf install -y pgxicor_16 # PG 16
dnf install -y pgxicor_15 # PG 15
dnf install -y pgxicor_14 # PG 14
apt install -y postgresql-18-pgxicor # PG 18
apt install -y postgresql-17-pgxicor # PG 17
apt install -y postgresql-16-pgxicor # PG 16
apt install -y postgresql-15-pgxicor # PG 15
apt install -y postgresql-14-pgxicor # PG 14
创建扩展:
CREATE EXTENSION xicor;
用法
来源:README, release 0.1.1
xicor 将 XI(Chatterjee’s xi)相关系数暴露为 PostgreSQL 聚合函数。它适合检测函数依赖,包括 Pearson corr() 可能遗漏的非线性关系。
CREATE EXTENSION xicor;
主要聚合
SELECT xicor(x, y) FROM xicor_test;
上游示例把它与抛物线数据集上的 corr() 对比:corr() 接近零,而 xicor() 仍然较高。
示例
CREATE TABLE xicor_test (x float8, y float8);
INSERT INTO xicor_test (x, y) VALUES
(1.0, 2.0),
(2.5, 3.5),
(3.0, 4.0),
(4.5, 5.5),
(5.0, 6.0);
SELECT xicor(x, y) FROM xicor_test;
可复现性控制
对于存在 ties 的数据,上游建议开启确定性 tie 处理:
SET xicor.ties = true;
SET xicor.seed = 42;
注意事项
xicor()是双数值输入的聚合函数,不是通用统计框架。- ties 的处理方式会影响结果;如果需要可复现行为,请启用文档中的 GUC。