两变量之间分析方法选用总结

您所在的位置:网站首页 哪些统计分析方法可以分析数据两个特征的关系 两变量之间分析方法选用总结

两变量之间分析方法选用总结

2023-10-21 00:41| 来源: 网络整理| 查看: 265

共勉 写在最前面:

请看下面几个问题,如果你能轻松的知道问题的答案,那么可以不再阅读本文或快速浏览一下本文,如果不是很轻松就能知道答案,那么建议花一点时间读一下本文。

数据分析师在实际工作中经常遇见以下的情形:

1.一个变量是否对另一个变量有影响?用什么方法?这个方法适合我的数据吗? 2.EDA探索性数据分析除了描述单变量的分布,还能做些什么。 3.在用机器学习做分类或回归问题时,都说数据决定精度的上界,模型只是去逼近这个上界,那么在对数据进行探索时,可以用哪些方法来做。

目录 1.一个实际案例引发的思考 2.实际工作中常见的数据类型 3.两个连续型数值变量之间的关系探究 4.一个连续型数值变量与一个分类变量之间的关系探究 5.两个分类变量之间的关系探究 6.思考:我们说的AB Test原理是什么 一、一个实际案例引发的思考

在看这个案例之前,有下面几个问题,请带着这些问题边看案例边思考: 1.如果你在工作中会怎么做这个分析? 2.他这样分析对吗? 3.如果不对,问题出在哪里,应该怎么修改? 4.如果回答不上来上述1-3问题,再看完这篇文章后,你是否可以回答1-3

【注】该案例来自知乎上的书:《活用数据:驱动业务的数据分析实战》,若有侵权,联系必删! 我们想对服装进行精准营销 案例来自书--《活用数据:驱动业务的数据分析实战》 案例来自书--《活用数据:驱动业务的数据分析实战》 案例来自书--《活用数据:驱动业务的数据分析实战》 二、实际工作中常见的数据类型

要做分析,那么必然要清楚分析的数据是什么类型,不同类型的数据分析方法与处理方式是不同的,因此有必要清楚实际工作中常见的数据类型。 什么是数据?我认为凡是可以电子化记录的都是数据。因此,数据范围会随着科技进步和计算机发展不断扩充变大。就目前技术水平与计算机发展,个人认为数据可以做如下分类:

个人理解的目前数据类型分类 啰嗦几句题外话:现在很多人对深度学习很迷信崇拜,觉得用深度学习高大上,效果会很好,但是就目前来看深度学习还有很长的路要走;虽然目前深度学习在非结构化数据处理上一骑绝尘,但是我们要知道深度学习的训练,参数的调整,可解释性,对计算机性能的要求,这些东西对于个人工作中是很难去满足的,深度学习没有那么神秘,也不是干什么都是最好的,综合考虑各种因素找到可解决的办法就行。

三、两个连续型数值变量之间的关系探究

对于两个连续型数值变量之间的关系探究,我们比较容易想到相关关系(回归先不探讨),日常工作中,我们常把相关关系和因果关系(常用回归分析探索)弄混,这里简单说一下: 相关变量的关系也可分为两种: 两个变量间相互影响——平行关系 一个变量变化受另一个变量的影响——依存关系 它们对应的分析方法: 相关分析是研究呈平行关系的相关变量之间的关系 回归分析是研究呈依存关系的相关变量之间的关系 回归分析和相关分析都是研究变量之间关系的方法,两种分析方法相互结合和渗透;可以总结为:用相关分析不一定要用回归分析;用回归分析,必先用相关分析探索一下变量之间的关系。

使用相关分析探究两个连续型数值变量之间的关系步骤:

1.绘制散点图 2.计算相关系数并完成相关系数显著性检验

import numpy as np import pandas as pd import matplotlib.pyplot as plt import scipy.stats as stats #Python中做统计检验的库 # 导入数据 data = pd.DataFrame(np.random.randn(200,4)*100, columns = ['A','B','C','D']) data.head() data.head() #研究变量A和变量B之间的相关关系 #第一步:画出变量A与变量B的散点图 plt.figure(figsize = (3,3)) # 图片像素大小 plt.scatter(data.A, data.B,color="blue") # 散点图绘制 plt.grid() # 显示网格线 plt.show() # 显示图片 变量A与B之间的散点图

从散点图来看,变量A与变量B之间可能不存在线性相关关系。

#第二步:计算相关系数与显著性检验 #方法一:使用pandas中的corr()方法 print(data.corr()) #如果由数据框调用corr函数,那么将会计算每个列两两之间的相似度,返回DataFrame print(data['A'].corr(data['B'])) #如果由序列调用corr方法,那么只是该序列与传入的序列之间的相关度,返回一个数值型,大小为相关度 使用pandas的corr方法做相关分析

可以看到使用pandas中的corr()方法求相关分析是只会给出相关系数,不会给出相关系数对应的显著性水平值的,因此如果想更严谨的话还是使用scipy.stats库比较好。

r,p = stats.pearsonr(data.A,data.B) # 相关系数和P值 if p0: print("变量之间存在显著正相关关系,相关系数r=%.3f"%r) else: print("变量之间存在显著负相关关系,相关系数r=%.3f"%r) else: print("P=%.3f,我们没有理由拒绝原假设,可以认为变量之间不存在相关关系显著。"%p) 在显著性为0.05的水平下,检验结果

可以看到,在0.05的置信水平下,认为变量A和变量B是不存在显著相关关系的;但看P=0.099,其实P值不算大,如果在0.1的置信水平下,就可以认为变量A和变量B是存在显著相关关系的,这时是可以说相关系数为多少。

四、一个连续型数值变量与一个分类变量之间的关系探究

统计检验方法: 1.单因素方差分析(若分类变量下类别水平为2,此时单因素方差分析等价于独立样本T检验,两者可以统计量互相转换) 2.独立样本T检验(仅适用于分类变量下类别水平为2的情况)

因此为了篇幅考虑,就以单因素方差分析适用案例作为本文的内容。

使用单因素方差分析的步骤:

1.对数据是否符合正态分布和组间方差是否一致做检验(完成单因素方差分析的前提假设) 2.描述性分析;建议使用箱线图来进行 3.采用单因素方差分析判断分类变量是否对连续型变量有显著影响 4.若不同组间有差异,通过多重检验来判断哪个处理间存在差异

在日常工作中,我们经常碰到这样的问题,就是一个分类变量对一个连续型变量是否有影响,以植物生长作为一个案例,探究施肥是否会促进植株生成(植株生长以树高作为指标来衡量),采用控制变量的方法,采取清水作为对照组,实验组以某肥料四个浓度梯度,分别是A,B,C,D,施肥一段时间之后测量树高(要控制其他变量保持一致,比如施肥之前的树高要基本保持一致,生长势基本保持一致等等)。

import numpy as np import pandas as pd df = {'ctl':list(np.random.normal(10,5,100)), 'treat1':list(np.random.normal(15,5,100)),\ 'treat2':list(np.random.normal(20,5,100)),\ 'treat3':list(np.random.normal(30,5,100)),\ 'treat4':list(np.random.normal(31,5,100))} df = pd.DataFrame(df) df.head() data.head()

数据中的teat1-4代表的就是A-D四个化肥浓度。

#第一步:正态性检验 import scipy.stats as stats #Shapiro检验(常用Shapiro检验和K-S检验来检验数据是否服从正态分布,若数据量低于5000,则使用Shapiro检验比较合理,否则使用K-S检验) print(stats.shapiro(df['ctl'])) print(stats.shapiro(df['treat1'])) print(stats.shapiro(df['treat2'])) print(stats.shapiro(df['treat3'])) print(stats.shapiro(df['treat4'])) 正态检验结果 #第二步:方差齐性检验 d1=df['ctl'] d2=df['treat1'] d3=df['treat2'] d4=df['treat3'] d5=df['treat4'] args = [d1,d2,d3,d4,d5] #levene test w,p=stats.levene(*args) if p


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3