web-dev-qa-db-fra.com

comment vérifier la corrélation entre les variables continues et catégorielles en python?

J'ai un ensemble de données comprenant des variables catégorielles (binaires) et des variables continues. J'essaie d'appliquer un modèle de régression linéaire pour prédire une variable continue. Quelqu'un peut-il me faire savoir comment vérifier la corrélation entre les variables catégorielles et la variable cible continue.

Code actuel:

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()

Toutes les variables, à l'exception de la durée du séjour, sont catégoriques. Cela devrait-il fonctionner?

9
funnyguy

Convertissez votre variable catégorielle en variables factices ici et placez votre variable dans numpy.array. Par exemple:

data.csv :

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

Extraire des données:

import numpy as np
import pandas as pd

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

df:

df

Convertir la variable catégorielle color_head en variables factices:

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

Mettez cela dans un tableau numpy:

x = df_new.values

Calculez la corrélation:

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

Production:

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.        ]])

Voir:

numpy.corrcoef

8
glegoux