scipy.stats.random_correlation#

scipy.stats.random_correlation = <scipy.stats._multivariate.random_correlation_gen object>[原始碼]#

隨機相關矩陣。

返回一個隨機相關矩陣,給定一個特徵值向量。

eigs 關鍵字指定相關矩陣的特徵值,並暗示維度。

參數:
eigs1 維 ndarray

相關矩陣的特徵值

seed{None, int, numpy.random.Generator, numpy.random.RandomState}, 可選

如果 seed 為 None (或 np.random),則使用 numpy.random.RandomState 單例。如果 seed 是一個整數,則使用一個新的 RandomState 實例,並以 seed 作為種子。如果 seed 已經是一個 GeneratorRandomState 實例,則使用該實例。

tolfloat, 可選

輸入參數檢查的容差

diag_tolfloat, 可選

結果矩陣的對角線偏差的容差。預設值:1e-7

返回:
rvsndarray 或 純量

隨機大小 N 維矩陣,維度 (size, dim, dim),每個都具有特徵值 eigs。

引發:
RuntimeError

浮點錯誤阻止產生有效的相關矩陣。

註解

產生一個隨機相關矩陣,遵循 Davies & Higham 提出的數值穩定演算法。此演算法使用單個 O(N) 相似變換來構造一個對稱正半定矩陣,並應用一系列 Givens 旋轉來縮放它,使其對角線上為 1。

參考文獻

[1]

Davies, Philip I; Higham, Nicholas J; “Numerically stable generation of correlation matrices and their factors”, BIT 2000, Vol. 40, No. 4, pp. 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。