python - 如何检查连续变量和分类变量之间的相关性?

标签 python linear-regression correlation categorical-data

我有一个数据集,包括分类变量(二进制)和连续变量。我正在尝试应用线性回归模型来预测连续变量。谁能告诉我如何检查分类变量和连续目标变量之间的相关性。

当前代码:

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 之外的所有变量都是分类变量。这应该有效吗?

最佳答案

将分类变量转换为虚拟变量 here并将您的变量放入 numpy.array 中。例如:

数据.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

关于python - 如何检查连续变量和分类变量之间的相关性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44694228/

相关文章:

python - pandas - 如何过滤 "most frequent"日期时间对象

python - 如何使用 "range_key_condition"通过 boto 查询 DynamoDB 表?

python - Keras - 应使用什么精度指标与稀疏分类交叉熵来编译模型

r - 如何基于 Shiny 的 react 变量的线性模型进行预测

python - 多维数组的相关系数

python - 在 python 中轻松创建 bash 脚本

machine-learning - 机器学习的回归、分类

objective-c - Objective-C 或 C 中的线性回归

sql - 大查询 : How to get top 20 correlations in a table?

使用 ggcorrplot2 : "x-axis" labels get cropped 的 R 相关图