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?
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:
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:
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: