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 已是 GeneratorRandomState 实例,则使用该实例。

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。