web-dev-qa-db-ja.com

Pythonで連続変数とカテゴリ変数間の相関をチェックするにはどうすればよいですか?

カテゴリ変数(バイナリ)と連続変数を含むデータセットがあります。連続変数を予測するために線形回帰モデルを適用しようとしています。カテゴリ変数と連続ターゲット変数間の相関関係を確認する方法を教えてください。

現在のコード:

import pandas as pd
df_hosp = pd.read_csv('C:\Users\LAPPY-2\Desktop\LengthOfStay.csv')

data = df_hosp[['lengthofstay', 'male', 'female', 'dialysisrenalendstage', 'asthma', \
              'irondef', 'pneum', 'substancedependence', \
              'psychologicaldisordermajor', 'depress', 'psychother', \
              'fibrosisandother', 'malnutrition', 'hemo']]
print data.corr()

Lengthofstayを除くすべての変数はカテゴリカルです。これでうまくいくでしょうか?

9
funnyguy

カテゴリ変数をダミー変数 here に変換し、変数をnumpy.arrayに配置します。例えば:

data.csv

age,size,color_head
4,50,black
9,100,blonde
12,120,brown
17,160,black
18,180,brown

データを抽出する:

import numpy as np
import pandas as pd

df = pd.read_csv('data.csv')

df:

df

カテゴリー変数color_headをダミー変数に変換します。

df_dummies = pd.get_dummies(df['color_head'])
del df_dummies[df_dummies.columns[-1]]
df_new = pd.concat([df, df_dummies], axis=1)
del df_new['color_head']

df_new:

df_new

それをnumpy配列に入れます:

x = df_new.values

相関を計算します。

correlation_matrix = np.corrcoef(x.T)
print(correlation_matrix)

出力:

array([[ 1.        ,  0.99574691, -0.23658011, -0.28975028],
       [ 0.99574691,  1.        , -0.30318496, -0.24026862],
       [-0.23658011, -0.30318496,  1.        , -0.40824829],
       [-0.28975028, -0.24026862, -0.40824829,  1.        ]])

見る :

numpy.corrcoef

8
glegoux