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:¶
- cormat
sparse.coo_matrix 阈值相关矩阵,采用COO格式。
- cormat
注释
这是 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