NumPy 相関関数

Vaibhhav Khetarpal 2024年2月15日
  1. NumPy での相関
  2. np.corrcoef() 関数を使用して Python で相関を実装する
  3. Matplotlib ライブラリで相関を使用して相関グラフを作成する
NumPy 相関関数

このチュートリアルでは、Python の NumPy ライブラリの相関関数 np.corrcoef() 関数を示します。

NumPy での相関

相関係数は、データセットの特定の特徴間の関係を示す数値です。

相関関係は正の場合、つまり直接的な関係がある場合と、1つの機能の増加が別の機能につながる場合があります。 負の相関関係も考えられます。これは、両方の機能が互いに逆の関係にあることを示唆しています。つまり、一方の機能が上昇すると、もう一方の機能が低下することを意味します。

以下は、いくつかのさまざまな相関関係です。

  • ピアソンの相関
  • ケンドールの相関
  • スピアマンの相関

ただし、NumPy ライブラリ関数 np.corrcoef() は、ピアソンの相関値のみに注目して計算します。 他の相関関係は、SciPy ライブラリによって提供される直接関数を使用して見つけることができます。

このチュートリアルでは、np.coefcorr() 関数とその実装のみに焦点を当てています。

np.corrcoef() 関数を使用して Python で相関を実装する

NumPy ライブラリの np.corrcoef() 関数を使用して、任意の 2つの配列間のピアソンの相関係数の行列を取得します。ただし、両方の配列が同じ形状である場合に限ります。 この関数は通常、相関係数を表す 2 次元配列を返します。

NumPy ライブラリを Python コードにインポートして、エラーに直面することなくこの関数を実装します。

コード例:

import numpy as np

a = np.arange(20, 30)
b = np.array([8, 12, 29, 33, 60, 48, 21, 44, 78, 96])
x = np.corrcoef(a, b)
print(x)

出力:

[[1.          0.82449488]
 [0.82449488  1.        ]]

出力行列の主対角は、常にすべての値を 1 にします。 この場合、左上の要素の値は x と x の相関係数を返すため 1 であり、右下の要素は y と y の相関係数を返します。

与えられた出力行列から考慮する必要がある主な値は、他の 2つの値です。 この値は、このケースではおよそ 0.82 になります。 さらに、これらの要素は両方とも常に同じ値を保持します。

Matplotlib ライブラリで相関を使用して相関グラフを作成する

NumPy ライブラリは、Matplotlib ライブラリと一緒に利用することもでき、ユーザーは相関グラフを出力として持つことができます。 次のコードは、Matplotlib ライブラリで相関関数 corrcoef() を使用して相関グラフを作成します。

コード例:

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

x = np.arange(20, 30)
y = np.array([8, 12, 29, 33, 60, 48, 21, 44, 78, 96])
print(np.corrcoef(x, y))

# %matplotlib inline
matplotlib.style.use("ggplot")
plt.scatter(x, y)
plt.show()

出力:

matplotlib ライブラリとの相関を使用

上記のグラフは、グラフが一般的に上向きの軌道を持っているように見えるため、正の相関を示しています。 このタイプのグラフは、指定された配列内の要素数が多いほどうまく機能します。

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

関連記事 - Python NumPy