探索变量之间的关系
引言
深入探索分析数据价值有几个重要步骤:①变量的分布检验,②探索变量间的关系,③建立关系模型,④评估,⑤总结结论与建议。接下来看看数据分析的重要一环–「探索变量间的关系」。
1 思路
探索数据变量之间是否存在某种关系/关联。大致步骤有:
- 变量的类型:类别型/数值型;
- 可视化给出可能的方向:散点图、箱型图、直方图、…;
- 更严格的检验:假设检验。假设变量间存在某种函数/逻辑等关联关系,进行检验。
2 工具及数据
工具:我们用python3,jupyter notebook编辑器。先导入python数据分析常用的几个库。
import numpy as np #科学计算基础库,多维数组对象ndarray
import pandas as pd #数据处理库,DataFrame(二维数组)
import matplotlib as mpl #画图基础库
import matplotlib.pyplot as plt #最常用的绘图库
from scipy import stats #scipy库的stats模块
mpl.rcParams["font.family"]="SimHei" #使用支持的黑体中文字体
mpl.rcParams["axes.unicode_minus"]=False # 用来正常显示负号 "-"
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
# % matplotlib inline #jupyter中用于直接嵌入图表,不用plt.show()
import warnings
warnings.filterwarnings("ignore") #用于排除警告
#用于显示使用库的版本
print("numpy_" + np.__version__)
print("pandas_" + pd.__version__)
print("matplotlib_"+ mpl.__version__)
案例数据:某餐厅顾客消费记录数据作为主要的案例数据。数据源:https://download.csdn.net/download/weixin_41685388/12144418
'''
某餐厅顾客消费记录.
解释数据结构:
total_bill:消费,
tip:小费,
sex:服务员性别,
smoker:是否抽烟,
day:星期几,
time:午餐/晚餐,
size:本桌人数
'''
tips = pd.read_csv(r"E:\tips.txt",sep='\t',encoding='utf-8')
#导入txt格式数据
print("样本量:",tips.shape)
display(tips.sample(3)) #随机抽样3行
display(tips.describe()) #统计信息
display(tips.info()) #是否有空值
类别型与类别型数据独立性检验
卡方检验(通用)、费舍尔检验(小样本)
通用:卡方检验
小样本:费舍尔检验(劣势:只能检验2*2) 问题1:探索案例数据中服务员性别与星期几的关系?类别型与类别型变量需要生成交叉表,用pd.crosstab()
'''①看变量的类型:类别型/数值型'''
#两个变量均是类别型数据,统计往往是进行分类汇总,
#需要生成交叉表,用pd.crosstab()
display(tips.sample(3)) #随机抽样3行
statistics = tips[["sex","day"]].describe() #统计