statsmodels.stats.correlation_工具.corr_阈值化

statsmodels.stats.correlation_tools.corr_thresholded(data, minabs=None, max_elt=10000000.0)[source]

构建一个包含从数据数组中得到的按行阈值处理的稀疏相关矩阵。

Parameters:
dataarray_like

要计算逐行阈值相关矩阵的数据。

minabsnon-negative real

阈值;绝对值小于 minabs 的相关系数被设置为零。如果为 None,则默认为 1 / sqrt(n),更多信息请参见注释。

Returns:
cormatsparse.coo_matrix

阈值相关矩阵,采用COO格式。

注释

这是 C = np.corrcoef(data); C *= (np.abs(C) >= absmin) 的替代方案,适用于非常高大的数据矩阵。

如果数据是联合高斯的,样本相关矩阵元素的边际采样分布近似为标准差为1 / sqrt(n)的高斯分布。因此,minabs的默认值等于1个标准误差,这将使大约68%的估计相关系数为零,这些系数的总体值为零。

不会构建包含超过 max_elt 值的中间矩阵。 然而,如果大量相关值的绝对值超过 minabs,内存使用量仍然可能很高。

阈值矩阵以COO格式返回,可以轻松转换为其他稀疏格式。

示例

这里X是一个高维数据矩阵(例如,有100,000行和50列)。X的行相关矩阵被计算并以稀疏形式存储,所有小于0.3的条目都被视为0。

>>> import numpy as np
>>> np.random.seed(1234)
>>> b = 1.5 - np.random.rand(10, 1)
>>> x = np.random.randn(100,1).dot(b.T) + np.random.randn(100,10)
>>> cmat = corr_thresholded(x, 0.3)

Last update: Oct 16, 2024