以下で定義される共分散を計算するスクリプトを書きます。
$\text{Cov}(X, Y) = \frac{\sum_{i=1}^{n} (x_i – \mu_X)(y_i – \mu_Y)}{n}$
目次
方法1
import numpy as np
x = np.array([i for i in range(100)])
y = np.array([-i for i in range(100)])
def cov_xy(x: np.ndarray, y: np.ndarray) -> float:
product_xy = sum((x)*(y))-sum(x)*sum(y)/len(x)
cov_xy = product_xy/len(x)
return cov_xy
cov_xy(x,y)
>>>
-833.25方法2
import numpy as np
x = np.array([i for i in range(100)])
y = np.array([-i for i in range(100)])
def cov_xy2(x: np.ndarray, y: np.ndarray) -> float:
return sum([(i-np.mean(x))*(j-np.mean(y)) for i,j in zip(x,y)])/len(x)
cov_xy2(x,y)
>>>
-833.25

