如何检查连续变量和分类变量之间的相关性?
问题描述
我有一个包含类别变量(二进制)和连续变量的数据集。我正在尝试应用线性回归模型来预测一个连续变量。有人能告诉我如何检查分类变量和连续目标变量之间的相关性吗?
当前编码:
import pandas as pd
df_hosp = pd.read_csv('C:UsersLAPPY-2DesktopLengthOfStay.csv')
data = df_hosp[['lengthofstay', 'male', 'female', 'dialysisrenalendstage', 'asthma',
'irondef', 'pneum', 'substancedependence',
'psychologicaldisordermajor', 'depress', 'psychother',
'fibrosisandother', 'malnutrition', 'hemo']]
print data.corr()
除停留时间外,所有变量都是绝对的。这应该起作用吗?
解决方案
将类别变量转换为虚拟变量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:
将类别变量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:
将其放入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
相关文章