当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy stats.random_correlation用法及代码示例


本文简要介绍 python 语言中 scipy.stats.random_correlation 的用法。

用法:

scipy.stats.random_correlation = <scipy.stats._multivariate.random_correlation_gen object>#

随机相关矩阵。

返回一个随机相关矩阵,给定一个特征值向量。

eigs 关键字指定相关矩阵的特征值,并暗示维度。

参数

eigs 一维数组

相关矩阵的特征值

seed {无,int, numpy.random.Generator numpy.random.RandomState },可选

如果种子是无(或np.random), 这numpy.random.RandomState使用单例。如果种子是一个 int,一个新的RandomState使用实例,播种种子.如果种子已经是一个Generator或者RandomState实例然后使用该实例。

tol 浮点数,可选

输入参数检查的容差

diag_tol 浮点数,可选

结果矩阵对角线偏差的容差。默认值:1e-7

返回

rvs ndarray 或标量

随机大小的N维矩阵,维度(size,dim,dim),每个都有特征值eigs。

抛出

RuntimeError

浮点错误阻止生成有效的相关矩阵。

注意

按照 Davies 和 Higham 阐述的数值稳定算法生成随机相关矩阵。该算法使用单个 O(N) 相似变换来构造对称正半定矩阵,并应用一系列吉文斯旋转来缩放它以使其在对角线上。

参考

[1]

戴维斯,菲利普一世;海厄姆,尼古拉斯 J; “相关矩阵及其因子的数值稳定生成”,BIT 2000,Vol。 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])

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.random_correlation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。