numpy的的協方差採用兩種不同類型的權重參數 - 我沒有SAS對證,但它可能是一個類似的方法。
https://docs.scipy.org/doc/numpy/reference/generated/numpy.cov.html#numpy.cov
一旦你有一個協方差矩陣,也可以使用公式這樣
https://en.wikipedia.org/wiki/Covariance_matrix#Correlation_matrix
完整示例
import numpy as np
x = np.array([1., 1.1, 1.2, 0.9])
y = np.array([2., 2.05, 2.02, 2.8])
np.cov(x, y)
Out[49]:
array([[ 0.01666667, -0.03816667],
[-0.03816667, 0.151225 ]])
cov = np.cov(x, y, fweights=[10, 1, 1, 1])
cov
Out[51]:
array([[ 0.00474359, -0.00703205],
[-0.00703205, 0.04872308]])
def cov_to_corr(cov):
""" based on https://en.wikipedia.org/wiki/Covariance_matrix#Correlation_matrix """
D = np.sqrt(np.diag(np.diag(cov)))
Dinv = np.linalg.inv(D)
return Dinv @ cov @ Dinv # requires python3.5, use np.dot otherwise
cov_to_corr(cov)
Out[53]:
array([[ 1. , -0.46255259],
[-0.46255259, 1. ]])
'numpy.cov轉換爲相關矩陣'需要一個權重參數,試試? https://docs.scipy.org/doc/numpy/reference/generated/numpy.cov.html#numpy.cov – chrisb
不,雖然返回協方差?還是有一種簡單的方法可以從協方差變爲相關性(比如縮放協方差結果)?我在數據方面更新,所以我非常感謝幫助。 – Nizag