PythonのNumpyを使って相関回帰分析を実装する方法

スポンサーリンク

本日は、Pythonで相関回帰分析にフォーカスしていきます。

それでは、始めましょう

スポンサーリンク

まず、変数間の相関とは何でしょうか?

データサイエンスと機械学習の文脈で相関の概念を理解してみましょう。

データサイエンスと機械学習の分野では、まずデータを分析し、さらに処理するためにデータをきれいにすることが第一のステップです。

データの前処理では、すべての変数/列が他の変数や応答/ターゲット変数に与える影響を知ることが非常に重要です。

このようなときに、相関回帰分析が登場するのです!

相関回帰分析は,独立変数と目標値の間の関係性を検出し,分析することができる手法である.

これによって、我々は独立変数が目標値に代わってどのような情報や値を追加しようとするかを分析しようとします。

通常、相関分析は回帰値、すなわち連続(数値)変数に対して働き、相関行列と呼ばれる行列を通して描かれます。

相関行列では、変数間の関係は、範囲-1 から +1 の間の値です。

相関分析を使用すると、冗長な変数、つまり目標値に対して同じ情報を表現する変数を検出することができます

もし2つの変数の相関が高ければ、同じ情報を表現しているとして、どちらかの変数を排除するようにとの警告を与えてくれます。

では、相関回帰の概念を実装してみましょう。

Pandasモジュールによる相関回帰分析 ## Pandasモジュールによる相関回帰分析

この例では、銀行ローンのデータセットを使用して、数値列の値の相関行列を決定しています。

  1. 最初に、pandas.read_csv()関数を使用してデータセットを環境にロードします。
  2. 2.さらに、以下の例のように、数値列を別のPythonリスト(変数)に分離します。
    1. 次に、すべての数値変数に `corr()’ 関数を適用し、この関数の同じ出力に対して相関行列を作成します。

例えば、以下の様になります。

import os
import pandas as pd
import numpy as np
 
# Loading the dataset
data = pd.read_csv("loan.csv")
numeric_col = ['age', 'employ', 'address', 'income', 'debtinc', 'creddebt', 'othdebt']
 
#Using Correlation analysis to depict the relationship between the numeric/continuous data variables
corr = data.loc[:,numeric_col].corr()
print(corr)

結果は以下の通りです。

numpy.corrcoef(col1, col2)

NumPy モジュールを使って変数間の相関を調べる

相関回帰分析に使えるのは、corr()メソッドだけではありません。

相関を計算するための関数がもう一つ用意されています。

Python NumPy は、数値変数間の相関を計算するために numpy.corrcoef() 関数を提供してくれています。

構文は以下の通りです。

import numpy as np
 
x = np.array([2,4,8,6])
y = np.array([3,4,1,6])
  
corr_result=np.corrcoef(x, y)
 
print(corr_result)

結果として、それは入力回帰変数の相関行列を返すでしょう。

例えば、以下の様になります。

[[ 1.         -0.24806947]
 [-0.24806947  1.        ]]

出力。

Correlation Regression Analysis Output
Correlation Regression Analysis Output

まとめ

以上で、このトピックを終了します。

Pythonに関連するこのような記事のために、ご期待ください! 相関分析のコンセプトを様々なデータセットに実装してみて、あなたの経験をコメント欄で教えてください。

タイトルとURLをコピーしました