测试感知现象

作者: 彭健平6点30 | 来源:发表于2017-06-06 02:16 被阅读44次
    import numpy as np
    import pandas as pd
    from scipy import *
    import math
    %matplotlib inline
    import matplotlib.pyplot as plt
    

    现在进行的是重复衡量设计:相依样本的t检验,检验并衡量不同总体的样本
    重复衡量设计:零假设两个总体均值将相同
    还有另外两种相依样本t检验 :

    df=pd.read_csv('/Users/zhongyaode/Desktop/stroopdata.csv')
    

    检验的自变量是:单词含义和字体颜色是否一致

    检验的因变量是:识别这个词的颜色所需要的时间

    这里因为只要识别字体的颜色,而不需要识别单词的含义,所以认为单词含义和字体颜色是否一致对与识别颜色的时间没有影响,

    零假设:H0:μ = μ0;认为单词含义和字体颜色是否一致对识别颜色没有显著差异
    当前总体的参数和干预后出现的新总体参数没有显著差异

    对立假设:H1:μ!=μ0;认为单词含义和字体颜色是否一致对识别颜色有显著差异
    当前总体的参数和干预后出现的新总体参数有显著差异

    这里μ表示单词含义与单词颜色一致所用的平均时间即Congrent的均值
    μ0表示单词含义与单词颜色不一致所用的平均时间即Incongruent的均值

    这里不需要预测效应的方向所以对立假设用μ!=μ0;

    这里选择a=0.05的水平

    因为不知道两个样本的的总体均值和标准偏差,所以这里使用t统计法

    这里样本有24个自由度为23,α水平是005的双尾检验,

    t的临界值是 2.69和-2.69

    t的统计量 即标准误差 t=(M-μ0)/(S/sqrt(n))

    s是标准误差,求方差时除以(n-1)再开根号

    如果t统计量不在t临界值的范围内就拒接h0假设

    α、β、δ、Σ

    双尾检验:H0:μ = μ0 ,H_1:\mu\ne\mu_0
    教学中的做法:
    1.根据实际情况提出原假设和备择假设;
    2.根据假设的特征,选择合适的检验统计量;
    3.根据样本观察值,计算检验统计量的观察值(obs);
    4.选择许容显著性水平,并根据相应的统计量的统计分布表查出相应的临界值(ctrit);
    5.根据检验统计量观察值的位置决定原假设取舍。

    
    

    μc表示Congruent的均值
    μI表示Incongruent的均值
    样本量是24
    零假设是 H0: μc=μI
    对立假设是: HA: μc!=μI

    c=df['Congruent'].mean()
    I=df['Incongruent'].mean()
    #μc-μI的差异点点估计是,均值的差异
    Md=c-I
    print'均值的差异是:',Md
    
    均值的差异是: -7.96479166667
    
    #想直到这个差异与其他差异的对比结果,所以需要算出差异的标准误差 即s
    
    #这个例子中需要计算每个差异的标准偏差
    #用分母 n-1 算出标准偏差,用D表示差异
    
    
    D=df['Congruent']-df['Incongruent']#这是所有的差异
    #计算平均差异
    D_mean=DN.mean()
    #现在计算标准偏差
    d_mean=np.power(D-D_mean,2)#距离均值的平方偏差
    SS=(d_mean.sum())/(d_mean.count()-1)
    S=sqrt(SS)
    
    print '差异的标准偏差S:',S
    
    差异的标准偏差S: 4.86482691036
    
    #下面计算t统计量
    #t=(μc-μI)/(S/(sqrt(n)))
    t=Md/(S/sqrt(d_mean.count()))
    print 't的统计量是:',t
    
    t的统计量是: -8.02070694411
    
    print '对于a为0.05来水,t的临界值查表得是2.69和-2.69'
    
    对于a为0.05来水,t的临界值查表得是2.69和-2.69
    
    print 'Md的差异点估计是',Md
    
    Md的差异点估计是 -7.96479166667
    

    因为t统计量已经超过这个t临界值位于临界区内

    所以我们拒绝零假设,这意味着单词含义和单词颜色一致与单词含义和单词颜色不一致相比

    单词含义和单词颜色一致时所需的时间少些

    因为这是实验性设计,可以作出因果陈述,我们可以说单词含义与单词颜色是否一致与识别颜色时间之间存在因果关系

    
    

    现在计算效应衡量指标

    效应衡量指标等于均值差异除以差异标准偏差,均值差异是Md,标准偏差是S

    #Cohen's d
    d=Md/S
    print '效应衡量指标是d:',d
    
    效应衡量指标是d: -1.63721994912
    
    
    

    计算总体均值差异的置信区间

    #CI:MD-tcrihcal(Sd/sqrt(n)),MD+tcrihcal(Sd/sqrt(n))
    #这里的tcrihcal是t临界值
    Md-2.69*(S/(sqrt(24))),Md+2.69*(S/(sqrt(24)))
    
    (-10.636038694220403, -5.2935446391129304)
    

    可以得出结论,平均下来与单词含义和单词颜色不一致相比,辨别单词颜色和含义一致的时间要少5.29-10.63秒

    参考资料https://classroom.udacity.com/nanodegrees/nd002-cn-basic/parts/b4c7a2f7-3554-407c-8d55-ac1470b19921/modules/975b5faa-1462-4a84-be94-d3e6381629a0/lessons/4578095863/concepts/1470193510923

    
    

    可视化展示数据

    #数据是连续数据,用直方图
    fig=plt.figure()
    x=df['Congruent']
    ax=fig.add_subplot(111)
    numBins=7
    ax.hist(x,numBins,color='red',alpha=0.8,rwidth=0.5)
    plt.title(u'Congruent')
    plt.xlabel('time')
    
    <matplotlib.text.Text at 0x10d79ad90>
    
    output_34_1.png
    
    
    #正态分布图
    
    %config InlineBackend.figure_format='retina'
    def normfun(x,mu,sigma):
        pdf=np.exp(-((x-mu)**2)/(2*sigma**2))/(sigma*np.sqrt(2*np.pi))
        return pdf
    
    
    
    
    c_mean=df['Congruent'].mean()
    c_std=df['Congruent'].std()
    x=np.arange(5,30,1)
    y=normfun(x,c_mean,c_std)
    plt.plot(x,y)
    plt.hist(df['Congruent'],bins=10,rwidth=0.9,normed=True)
    plt.title('Congruent')
    plt.xlabel('time')
    
    <matplotlib.text.Text at 0x10cdad850>
    
    output_39_1.png
    c_mean ,c_std
    
    (14.051124999999999, 3.5593579576451955)
    

    结果分析

    数据集的平均值是14.05;偏差是3.559波动行很小

    过了十五之后呈促步下降趋势

    数据在15频数最大

    
    
    mean=df['Incongruent'].mean()
    std=df['Incongruent'].std()
    x=np.arange(10,40,1)
    y=normfun(x,mean,std)
    plt.plot(x,y)
    plt.hist(df['Incongruent'],bins=10,rwidth=0.9,normed=True)
    plt.title('Incongruent')
    plt.xlabel('time')
    
    <matplotlib.text.Text at 0x110fabd90>
    
    output_44_1.png
    mean,std
    
    (22.015916666666666, 4.7970571224691376)
    

    结果分析

    数据集均值是22.01;偏差是4.79波动行很小,但是比Congruent大

    数据集在16-10之间较为稳定

    偏差较大的地方:1)在20时频数最大,2)在30左右没有数据,3)在35有个较大的频数

    
    
    
    

    中心性测量

    #均值
    df['Congruent'].mean(),df['Incongruent'].mean()
    
    (14.051124999999999, 22.015916666666666)
    
    dff=df
    
    #排序选择中位数
    # Con=sort(dff['Congruent'])
    # median=(Con[dff['Congruent'].count()/2]+Con[dff['Congruent'].count()/2-1])/2
    #直接用函数
    median=dff['Congruent'].median()
    print 'Congruent的中位数是:',median
    print 'Congruent的中位数是:',c_mean
    
    Congruent的中位数是: 14.3565
    Congruent的中位数是: 14.051125
    
    median=dff['Incongruent'].median()
    print 'Incongruent的中位数是:',median
    print 'Incongruent的均值是:', mean
    
    Incongruent的中位数是: 21.0175
    Incongruent的均值是: 22.0159166667
    
    #对比中位数,发现Incongruent比Congruent的中位数是多了大概7秒
    
    
    

    可变性测量

    #方差
    print 'Congruent的方差是:',dff['Congruent'].var()
    print 'Incongruent的方差数是:',dff['Incongruent'].var()
    
    Congruent的方差是: 12.6690290707
    Incongruent的方差数是: 23.0117570362
    
    #可以发现Incongruent的波动性比Congruent更大
    

    参考资料https://classroom.udacity.com/nanodegrees/nd002-cn-basic/parts/b4c7a2f7-3554-407c-8d55-ac1470b19921/modules/975b5faa-1462-4a84-be94-d3e6381629a0/lessons/4578095863/concepts/1470193510923
    https://classroom.udacity.com/nanodegrees/nd002-cn-basic/parts/b4c7a2f7-3554-407c-8d55-ac1470b19921/modules/975b5faa-1462-4a84-be94-d3e6381629a0/lessons/4578095863/concepts/2310203270923

    [!正态分布]<http://www.jianshu.com/p/83cc892eb24a>
    

    < 《http://www.psychology.emory.edu/clinical/bliwise/Tutorials/TOM/meanstests/assump.htm
    [纵向研究 ]https://en.wikipedia.org/wiki/Longitudinal_study

    
    

    相关文章

      网友评论

      本文标题:测试感知现象

      本文链接:https://www.haomeiwen.com/subject/pktgfxtx.html