两个变量之间的分析方法选择概述

共同鼓励

写在顶部:

请查看以下问题。如果您可以轻松地知道问题的答案,则可以停止阅读本文或快速浏览本文。如果您不容易知道答案,建议花一点时间阅读本文。

数据分析师在实际工作中经常遇到以下情况:

1.一个变量会影响另一个变量吗?使用什么方法?这种方法适合我的数据吗?

2. EDA探索性数据分析不仅仅可以描述单变量的分布。

3.当使用机器学习进行分类或回归问题时,他们都说数据决定了准确性的上限,并且模型仅接近该上限,因此在探索数据时可以使用什么方法。

内容1.实际案例中的想法2.实际工作中的常见数据类型3.探索两个连续数值变量之间的关系4.连续数值变量与类别变量之间的关系5.之间的关系研究两个类别变量之间的关系6.思考:我们正在谈论AB测试的原理是什么一、实际案例引发的思考

在审理此案之前,有以下问题,请在审理该案时考虑以下问题:

1.如果您在工作,该如何进行分析?

2.他的分析正确吗?

3.如果不正确,问题出在哪里,应该如何解决?

4.如果您不能回答上述1-3个问题,阅读本文后,您可以回答1-3个吗

[注]该案例来自《知乎》一书:“使用数据:数据分析来推动业务发展”,如果有任何侵权,则必须删除联系人!我们要进行精确的服装营销

该案例来自《使用数据:数据分析推动业务发展的实际战斗》一书

该案例来自《使用数据:数据分析推动业务发展的实际战斗》一书

该案例来自《使用数据:数据分析推动业务发展的实际战斗》一书

二、实际工作中的常见数据类型

对于分析,有必要弄清楚分析的数据类型。不同类型的数据分析方法和处理方法不同,因此有必要在实际工作中弄清常见的数据类型。

什么是数据?我认为可以电子记录的一切都是数据。因此,随着技术的进步和计算机的发展,数据范围将继续扩大并变大。关于当前的技术和计算机开发水平,我个人认为数据可以分类如下:

个人可以理解的当前数据类型分类

离题一些话:如今,许多人非常迷信并崇拜深度学习。他们认为,使用深度学习来提高自己的水平会取得很好的效果凤凰体育下载 ,但是目前,深度学习还有很长的路要走。尽管当前的深度学习在非结构化数据处理中是最好的,但是我们需要了解深度学习的训练,参数的调整亚博lol ,可解释性以及对计算机性能的要求。这些事情在个人工作中很难满足。学习不是那么神秘,也不是什么都做的最好,只要考虑各种因素就可以找到解决方案。 三、探索两个连续数值变量之间的关系

为探究两个连续数值变量之间的关系,我们更容易想到相关性(将不首先讨论回归)。在日常工作中,我们经常将相关性与因果关系混淆(通常用于回归分析和探索)。这是一个简短的谈话:

相关变量之间的关系也可以分为两种类型:

两个变量之间平行关系的影响

一个变量的变化受另一变量-依赖关系的影响

对应的分析方法:

相关分析是研究平行关系的相关变量之间的关系

回归分析是研究相关变量之间的关系。

回归分析和相关分析都是研究变量之间关系的方法。两种分析方法结合在一起并相互渗透。可以归纳为:相关分析不一定使用回归分析;回归分析必须首先使用相关性分析探讨变量之间的关系。

使用相关性分析探索两个连续数值变量之间的关系:

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方法进行相关分析

您可以看到,在熊猫中使用corr()方法进行相关性分析只会给出相关系数,而不会给出与相关系数相对应的显着性水平值,因此,如果您想更加严格变量间的相互关系,请使用scipy.stats库更好。

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

在显着性水平0. 05上,测试结果

可以看出,在0. 05的置信度下,认为变量A和变量B之间没有显着的相关性;但是实际上,如果P = 0. 099,则P的值并不大,如果它在[在k31的置信度下] 1,则可以认为变量A与变量之间存在显着相关性。 B.这时可以说相关系数是。

四、连续数值变量和分类变量之间的关系研究

统计检查方法:

1.单向方差分析(如果分类变量的类别级别为2,则单向方差分析等效于独立样本T检验,并且可以将两个统计量转换为每个其他)

2.独立样本T检验(仅适用于分类变量下类别级别为2的情况)

因此,出于篇幅考虑变量间的相互关系pp电子 ,本文采用单向方差分析的应用案例。

使用单向方差分析的步骤:

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()

数据中的teate1-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<0.05:
    print("警告:Levene test 显示方差齐性假设不成立(p=%.2f)"%p)
else:
    print("通过齐性检验")
#方差分析
f,p=stats.f_oneway(*args)
print(f,p)

方差同质性检验结果

#第三步:绘制箱线图
df_melt=df.melt()
df_melt.columns=['Treat','Value']
import seaborn as sns
sns.boxplot(x='Treat',y='Value',data=df_melt)

箱形图

#第四步:单因素方差分析
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
model = ols('Value~C(Treat)',data=df_melt).fit()
anova_table=anova_lm(model,typ=2)
print(anova_table)

单向方差分析的结果

#第五步:邓肯多重检验(Tukey HSD test)
from statsmodels.stats.multicomp import MultiComparison
mc =MultiComparison(df_melt['Value'],df_melt['Treat'])
tukey_result = mc.tukeyhsd(alpha=0.5)
print(tukey_result)

多个测试结果

通过以上分析,可以看出不同肥料水平对应的植物生长具有显着影响秒速快三 ,通过箱线图和多次试验,可以看出与treat3和treat4对应的植物生长显着。与其他对照不同,treat3和trea4对应的植物生长更好,因此建议使用Treat3下的肥料水平。款待4的植物生长与款待3无明显差异;您甚至可以继续使用一些肥料水平来确定肥料水平是否超过治疗水平3。以后,化学肥料的增加不会进一步影响植物的生长。

五、两个类别变量之间的关系研究

统计检查方法:

卡方检验(卡方检验既适用于自变量,因变量也适用于分类数据,即具有属性的数据)

以美国人口收入数据为例,研究性别与收入之间的关系。

data.head()

pivot_table = pd.crosstab(
    data['sex'],
    data['income'],
    margins = True #总计
)
pivot_table

列队表

Female_income = pivot_table.iloc[0][0:2].values
Male_income = pivot_table.iloc[1][0:2].values
#画图
fig = plt.figure(figsize=(5, 5))
sns.set(font_scale=1.8)
categories = ["<=50K",">50K"]
p1 = plt.bar(categories, Female_income, 0.55, color='#d62728')
p2 = plt.bar(categories, Male_income, 0.55, bottom=Female_income)
plt.legend((p1[0],p2[0]), ('Female', 'Male'))
plt.ylabel('Count')
plt.show()

拍照

f_obs = np.array([Female_income,
                  Male_income])
from scipy import stats
stats.chi2_contingency(f_obs)[1]    #得出的是卡方检验的P值

卡方检验结果

通过卡方检验,我们可以看到P值接近0且小于0. 05。我们可以认为男女之间的收入差异很大;结合列联表和我们制作的图表,可以看出,在高收入人群中,男性所占比例相对较大。

六.思考:我们正在谈论的AB测试原理是什么?

现在回头看第一部分,我们正在研究性别与颜色偏爱之间的关系。这是两个类别变量之间的关系。应该使用卡方检验代替方差的单向分析。

在本文中,没有特定的方法论原理。如果您有兴趣,可以自己参考。现在我们可以考虑AB测试原理中使用的方法了吗?如何为AB测试选择指标更合理,如何设计计划更可行,以及如何正确分析获得的数据。关于AB测试的摘要将在下周进行。

参考:

简单的相关分析(两个连续变量)

统计变量的分类

老王
地址:深圳市福田区国际电子商务产业园科技楼603-604
电话:0755-83586660、0755-83583158 传真:0755-81780330
邮箱:info@qbt8.com
地址:深圳市福田区国际电子商务产业园科技楼603-604
电话:0755-83174789 传真:0755-83170936
邮箱:info@qbt8.com
地址:天河区棠安路288号天盈建博汇创意园2楼2082
电话:020-82071951、020-82070761 传真:020-82071976
邮箱:info@qbt8.com
地址:重庆南岸区上海城嘉德中心二号1001
电话:023-62625616、023-62625617 传真:023-62625618
邮箱:info@qbt8.com
地址:贵阳市金阳新区国家高新技术开发区国家数字内容产业园5楼A区508
电话:0851-84114330、0851-84114080 传真:0851-84113779
邮箱:info@qbt8.com