zoukankan      html  css  js  c++  java
  • 相关配对检验

    其他类型假设检验如何实现?

    配对相关样本检验项目实战:如何验证统计学现象?

    双独立样本检验项目实战:键盘布局A/B测试

    (二)相关配对检验

    斯特鲁普效应

    斯特鲁普效应是当有与原有认知不同的情况出现时,人们的反应时间会较长。

    实验设计

    通过网上的stroop实验做测试人的反应时间(https://faculty.washington.edu/chudler/java/ready.html)。 

    每名参与者得到两组有颜色的文字,第一组数据是字体内容和字体颜色一致,第二组数据是字体内容和字体颜色不一致。

    每名参与者对每组文字说出文字的颜色,并分别统计完成每组的时间。

    此次实验共记录25组数据(样本量),并汇总到Excel表格中。

    一、描述统计分析

    #导入包
    import numpy as np 
    import pandas as pd
    import matplotlib.pyplot as plt
    
    '''
    路径和文件名中不要用中文,不然会报错
    encoding用于指定文件的编码,因为读取的csv中有中文,所以指定文件编码为中文编码“GBK”
    '''
    data = pd.read_csv('斯特鲁普效应.csv')
    data.head()
    观察数据结果:“一致”列是(第一组数据)字体内容和字体颜色一致情况下,实验者的反应时间(单位:秒)。

    “不一致”列是(第二组数据)字体内容和字体颜色不一致情况下,实验者的反应时间。
    #获取描述统计信息
    data.describe()
    '''
    第一组数据:字体内容和字体颜色一致情况下,实验者的反应时间
    '''
    #第一组数据均值
    con1_mean = data['Congruent'].mean()
    # 第一组数据标准差
    con1_std = data['Incongruent'].std()
    
    '''
    第一组数据:字体内容和字体颜色一致情况下,实验者的反应时间
    '''
    # 第二组数据均值
    con2_mean = data['Incongruent'].mean()
    # 第二组数据标准差
    con2_std = data['Incongruent'].std()
    
    #两个样本数据集对比
    #画板
    fg = plt.figure(figsize = (20,10))
    #画纸
    ax = fg.add_subplot(1,1,1)
    #绘制柱状图
    data.plot(kind = 'bar',ax = ax)
    #显示图形
    plt.show()
    print('描述统计分析结果:')
    print('第一组数据:字体内容和字体颜色一致情况下,实验者的平均反应时间是:',con1_mean,'秒,标准差是',con1_std,'')
    print('第二组数据:字体内容和字体颜色不一致情况下,实验者的平均反应时间是:',con2_mean,'秒,标准差是',con2_std,'')
    print('“不一致”情况下所用时间均大于“一致”情况,也就是当字体内容和字体验证不一致时,实验者的平均反应时间变长')

    二、推论统计分析

     

    进行假设检验

     

    1.问题是什么?

    自变量是指原因。因变量是指结果,也就是自变量发生变化导致改变的值就是因变量。

    自变量:我们有两组实验数据,第一组是字体内容和颜色一致。第二组数据值是字体内容和颜色不一致。所以自变量是实验数据的颜色和文字是否相同

    因变量:实验者的反应时间

    所以,我们要考察的是自变量(字体内容和颜色是否相同)两种情况下对因变量(反应时间)的影响。

     

    零假设和备选假设

     

    假设第一组“一致”的均值为 u1 ,第二组“不一致”的均值为 u2

    零假设H0:人们的反应时间不会因为字体内容和字体颜色是否相同(u1 = u2 ,或者 u1-u2=0 )

    备选假设H1:特鲁普效应确实存在。根据特鲁普效应的定义,颜色和文字不同的情况下,人们的完场测试的时间会变长( u1 < u2 )

     

    检验类型

    检验类型有很多种,因为该使用两组数据是相关样本,所以选择相关配对检验。

    相关配对检验只关注每对相关数据的差值,从而避免得到的结论受到参与人员间正常反应时间独立性的影响。

    在只关注差值集的情况下,样本集处理后只有一组(差值集)。下面我们对样本数据进行处理,从而得到差值集。

    '''
    获取差值数据集,也就是“一致”这一列数据,对应减去“不一致”这一列的数据
    '''
    #差值数据集
    data['差值'] =data['Congruent'] -data['Incongruent']
    data.head()

    抽样分布类型

    我们还要判断抽样分布是哪种?因为抽样分布的类型,决定了后面计算p值的不同。
    
    在我们这个案例中,样本大小是25(小于30),属于小样本。那小样本的抽样分布是否满足t分布呢?

    因为t分布还要求数据集近似正态分布,所以下面图片我们看下差值数据集的分布长什么样。
    """设置字体,用于显示中文"""
    plt.rcParams['font.sans-serif']=['FangSong']
    """SimSun 宋体,Microsoft YaHei微软雅黑 YouYuan幼圆 FangSong仿宋"""
    plt.rcParams['font.size']=20
    plt.rcParams['axes.unicode_minus']=False# 负号乱码
    
    '''
    直方图能够粗略估计数据密度,如果想给数据一个更精确的拟合曲线(专业术语叫:核密度估计kernel density estimate (KDE)),
    Seaborn 可以很方便的画出直方图和拟合曲线。
    查看数据集分布官网教程地址:https://seaborn.pydata.org/tutorial/distributions.html
    
    安装绘图包seaborn:
    conda install seaborn
    '''
    #导入绘图包
    import seaborn as sns
    #查看数据集分布
    sns.distplot(data['差值'])
    plt.title('差值数据集分布')
    plt.show()

    通过观察上面差值数据集分布图,数据集近似正态分布,所以满足t分布的使用条件,我们可以使用相关样本t检验。

    检验方向

    单尾检验(左尾,右尾),还是双尾检验?

     

    因为备选假设是:特鲁普效应确实存在,根据Stroop Effect的定义,颜色和文字不同的情况下,人们的完场测试的时间会变长( u1 < u2 )。

    所以我们使用单尾检验中的左尾检验,显著水平为5%,t检验的自由度df=n-1=25-1=24

    2.证据是什么?

    在零假设成立前提下,得到样本平均值的概率p是多少?

    '''
    用python统计包scipy自动计算
    用scipy计算出的是:双尾检验
    单(1samp)样本t检验(ttest_1samp):https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_1samp.html
    相关(related)配对t检验(ttest_rel):https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_rel.html
    双独立(independent)样本t检验(ttest_ind):https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_ind.html
    '''
    #导入统计模块(stats)
    from scipy import stats
    
    '''
    ttest_rel:相关配对检验
    返回的第1个值t是假设检验计算出的(t值),
    第2个值p是双尾检验的p值
    '''
    t,p_twoTail = stats.ttest_rel(data['Congruent'],data['Incongruent'])
    
    print('t值=',t,'双尾检验的p值=',p_twoTail) 
    '''
    因为scipy计算出的是双尾检验的t值和p值,但是我们这里是左尾检验。
    根据对称性,双尾的p值是对应单尾p值的2倍
    '''
    #单尾检验的p值
    p_oneTail=p_twoTail/2
    print('单尾检验的p值=',p_oneTail)

    3.判断标准是什么?

    #显著水平使用alpha=5%
    alpha=0.05

    4.做出结论

    '''
    因为scipy计算出的是双尾检验的t值和p值,但是我们这里是左尾检验。
    根据对称性,双尾的p值是对应单尾p值的2倍
    左尾判断条件:t < 0 and  p/2 < alpha
    右尾判断条件:t > 0 and  p/2 < alpha
    '''
    #单尾检验的p值
    p_oneTail=p_twoTail/2
    #显著水平
    a=0.05
    #决策
    if(t<0 and p_oneTail< a):
        print('拒绝零假设,有统计显著')
        print('也就是接受备选假设:特鲁普效应存在')
    else:
        print('接受备选假设,没有统计显著,也就是特鲁普效应不存在')

    假设检验报告:

    相关配对检验t(24)=-8.35,p=7.32e-09 (α=5%),左尾检验

    统计上存在显著差异,拒绝零假设,从而验证斯特鲁普效应存在。

    5. 置信区间

    '''
    1)置信水平对应的t值(t_ci)
    查t表格可以得到,95%的置信水平对应的t值=2.262
    2)计算上下限
    置信区间上限a=样本平均值 - t_ci ×标准误差
    置信区间下限b=样本平均值 - t_ci ×标准误差
    '''
    
    '''
    95%的置信水平,自由度是n-1对应的t值
    查找t表格获取,
    也可以通过这个工具获取:https://www.graphpad.com/quickcalcs/statratio1/(利用这个工具获取t值,需要注意输入的概率值是1-95%=0.05)
    注意:课程中这里对应的下面t_ci值有误,以下面的值为准
    '''
    t_ci=2.064
    #差值数据集平均值
    sample_mean=data['差值'].mean()
    #使用scipy计算标准误差
    se=stats.sem(data['差值'])
    #置信区间上限
    a=sample_mean - t_ci * se
    #置信区间下限
    b=sample_mean + t_ci * se
    print('两个平均值差值的置信区间,95置信水平 CI=[%f,%f]' % (a,b))

    6.效应量

    '''
    效应量:差异指标Cohen's d
    '''
    #差值数据集对应的总体平均值是0
    pop_mean=0
    #差值数据集的标准差
    sample_std=data['差值'].std()
    d=(sample_mean - pop_mean) / sample_std
    
    print('d=',d)

    三、数据分析报告总结

     

    1、描述统计分析

    第一组样本数据:字体内容和字体颜色一致情况下,平均反应时间是: 13.89 秒,标准差是 3.47 秒

    第二组样本数据:字体内容和字体颜色不一致情况下,平均反应时间是: 22.62 秒,标准差是 5.09 秒

    “不一致”情况下所用时间均大于“一致”情况,也就是当字体内容和字体验证不一致时,实验者的平均反应时间变长

    2、推论统计分析

    1)假设检验

    相关配对检验t(24)=-8.35,p=7.32e-09 (α=5%),左尾检验

    统计上存在显著差异,拒绝零假设,从而验证斯特鲁普效应存在。

    2)置信区间

    两个平均值差值的置信区间,95%置信水平 CI=[-8.80,-8.67]

    3)效应量

    d= - 1.67

  • 相关阅读:
    网络诊断工具:[tcpdump]
    网络诊断工具:iproute
    C语言编译全过程
    (Ruby)Ubuntu12.04安装Rails环境
    (Life)牛人的学习方法(转译文)
    (WPF)WPF事件要点WPF宝典笔记
    (WPF)依赖属性要点WPF宝典笔记
    (DP)降低代码重构的风险(转载)
    (WPF)路由事件要点WPF宝典笔记
    JDBC,MYBATIS,Hibernate性能对比!
  • 原文地址:https://www.cnblogs.com/foremostxl/p/12126353.html
Copyright © 2011-2022 走看看