サムネがコーヒーの記事は書きかけです。

Pythonで共分散を計算する方法【研究用スクリプト】

以下で定義される共分散を計算するスクリプトを書きます。

$\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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です