jax.numpy.corrcoef#
- jax.numpy.corrcoef(x, y=None, rowvar=True)[原始碼]#
計算 Pearson 相關係數。
JAX 版本的
numpy.corrcoef()
實作。這是由
jax.numpy.cov()
計算的樣本共變異數的標準化版本。對於樣本共變異數 \(C_{ij}\),相關係數為\[R_{ij} = \frac{C_{ij}}{\sqrt{C_{ii}C_{jj}}}\]它們的建構方式使得值滿足 \(-1 \le R_{ij} \le 1\)。
- 參數:
x (ArrayLike) – 形狀為
(M, N)
(如果rowvar
為 True) 或(N, M)
(如果rowvar
為 False) 的陣列,表示M
個變數的N
個觀測值。x
也可能是一維的,表示單一變數的N
個觀測值。y (ArrayLike | None) – 額外觀測值的選用集合,格式與
m
相同。如果指定,則y
會與m
組合,即對於預設的rowvar = True
情況,m
會變成jnp.vstack([m, y])
。rowvar (bool) – 如果為 True (預設值),則
m
的每一列代表一個變數。如果為 False,則每一欄代表一個變數。
- 傳回:
形狀為
(M, M)
的共變異數矩陣。- 傳回型別:
另請參閱
jax.numpy.cov()
:計算共變異數矩陣。
範例
考量以下兩個完全相關的變數的觀測值。在這種情況下,相關矩陣是 2x2 的 1 矩陣
>>> x = jnp.array([[0, 1, 2], ... [0, 1, 2]]) >>> jnp.corrcoef(x) Array([[1., 1.], [1., 1.]], dtype=float32)
現在考量以下兩個完全負相關的變數的觀測值。在這種情況下,相關矩陣的非對角線上有
-1
>>> x = jnp.array([[-1, 0, 1], ... [ 1, 0, -1]]) >>> jnp.corrcoef(x) Array([[ 1., -1.], [-1., 1.]], dtype=float32)
或者,這些序列可以指定為個別引數,在這種情況下,它們會在繼續計算之前堆疊。
>>> x = jnp.array([-1, 0, 1]) >>> y = jnp.array([1, 0, -1]) >>> jnp.corrcoef(x, y) Array([[ 1., -1.], [-1., 1.]], dtype=float32)
相關矩陣的項目會標準化,使其值落在 -1 到 +1 的範圍內,其中 +1 表示完全正相關,-1 表示完全負相關。例如,以下是從 3 維標準常態分佈中繪製的 100 個點的相關性
>>> key = jax.random.key(0) >>> x = jax.random.normal(key, shape=(3, 100)) >>> with jnp.printoptions(precision=2): ... print(jnp.corrcoef(x)) [[1. 0.03 0.12] [0.03 1. 0.01] [0.12 0.01 1. ]]