scipy.stats.random_correlation#
- scipy.stats.random_correlation = <scipy.stats._multivariate.random_correlation_gen object>[源代码]#
随机相关矩阵。
给出特征值向量,返回随机相关矩阵。
eigs 关键字指定相关矩阵的特征值,并暗示维度。
- 参数:
- eigs1 维 ndarrays
相关矩阵的特征值
- seed{None, int,
numpy.random.Generator
,numpy.random.RandomState
}, 可选 如果 seed 为 None(或 np.random),则使用
numpy.random.RandomState
单例。如果 seed 是 int,则使用新的RandomState
实例,并用 seed 初始化。如果 seed 已是Generator
或RandomState
实例,则使用该实例。- tolfloat,可选
输入参数检查的容差
- diag_tol浮点,可选
目标矩阵对角线偏差的容差。默认值:1e-7
- 返回值:
- rvsndarray或标量
随机大小的N维矩阵,尺寸(size、dim、dim),各自都具有特征值eigs。
- 引发:
- RuntimeError
浮点错误阻止生成了有效的相关矩阵。
注释
遵循Davies & Higham给出的数值稳定算法生成一个随机相关矩阵。此算法使用一个O(N)相似变换来构建一个对称正定矩阵,并应用一系列Givens旋转将其缩放为对角线上的1。
参考
[1]戴维斯、菲利普一世;海厄姆、尼古拉斯·J;“相关矩阵及其因子的数值稳定生成”,BIT 2000,第40卷,第4期,第640-651页
示例
>>> import numpy as np >>> from scipy.stats import random_correlation >>> rng = np.random.default_rng() >>> x = random_correlation.rvs((.5, .8, 1.2, 1.5), random_state=rng) >>> x array([[ 1. , -0.02423399, 0.03130519, 0.4946965 ], [-0.02423399, 1. , 0.20334736, 0.04039817], [ 0.03130519, 0.20334736, 1. , 0.02694275], [ 0.4946965 , 0.04039817, 0.02694275, 1. ]]) >>> import scipy.linalg >>> e, v = scipy.linalg.eigh(x) >>> e array([ 0.5, 0.8, 1.2, 1.5])
方法
rvs(eigs=None, random_state=None)
绘制随机相关矩阵,全部具有特征值eigs。