python+统计学对心理学现象进行假设验证,个人记录(双样本的配对T检验)

python+统计学对心理学现象进行假设验证,个人记录(双样本的配对T检验)

背景信息

在一个Stroop (斯特鲁普)任务中,参与者得到了一列文字,每个文字都用一种油墨颜色展示。参与者的任务是将文字的打印颜色大声说出来。这项任务有两个条件:一致文字条件,和不一致文字条件。在一致文字条件中,显示的文字是与它们的打印颜色匹配的颜色词,如“红色”、“蓝色”。在不一致文字条件中,显示的文字是与它们的打印颜色不匹配的颜色词,如“紫色”、“橙色”。在每个情况中,我们将计量说出同等大小的列表中的墨色名称的时间。每位参与者必须全部完成并记录每种条件下使用的时间。

调查问题

作为一般说明,请确保记录你在创建项目时使用或参考的任何资源。作为项目提交的一部分,你将需要报告信息来源。

(1) 我们的自变量是什么?因变量是什么?

自变量是: 文字的打印颜色是否和文字意思描述一致

因变量是:被试者正确把文字的打印颜色说出来所需要的时间变化

(2) 此任务的适当假设集是什么?你需要以文字和数学符号方式对假设集中的零假设和对立假设加以说明,并对数学符号进行定义。你想执行什么类型的统计检验?为你的选择提供正当理由(比如,为何该实验满足你所选统计检验的前置条件)。

μ0: 字体的文字意思和其打印的颜色一致时的用时的总体均值

μ1: 字体的文字意思和其打印的颜色不一致时的用时的总体均值

x_bar0 :字体的文字意思和其打印的颜色一致时的用时的样本均值

x_bar1 :字体的文字意思和其打印的颜色不一致时的用时的样本均值

s0: 字体的文字意思和其打印的颜色一致时的用时的样本标准差

s1: 字体的文字意思和其打印的颜色不一致时的用时的样本标准差

v0: μ0/标准差σ0 字体的文字意思和其打印的颜色一致时的用时的总体变异系数

v1 μ1/标准差σ1 字体的文字意思和其打印的颜色不一致时的用时的总体变异系数

假设集:

原假设H0 :字体的文字意思和其打印的颜色是否一致 不会 对被试者正确念出他们造成影响。即μ0=μ1

备择假设Ha : 字体的文字意思和其打印颜色的是否一致 会 对被试者正确念出他们造成影响。即μ0≠μ1

t检验使用的假设前提:

1)因为目前只有两个样本,然后一般总体的分布应该还是符合正态分布的,所以就假设总体也是符合正态分布。(假设总体的情况)

2)因为实验有两个样本的比较,所以应该是双样本检验。

3)然后被试者分别对两种实验进行测试并且记录所用时间,每个被试者的状态水平是不同的,这也会间接造成每个人的两次实验的水平不一样,所以前次一致的实验和后次不一致的实验收集到的数据是属于相关的样本,一致或者不一致的样本各个都是 24 行,小于30行,所以不适用正态分布,比较适用于T分布。然后因为是相关样本,所以比较适合使用相关样本的T检验,即使用双样本检验中的配对样本T检验。 (受试者独立性分析和t检验使用的假设)

现在轮到你自行尝试 Stroop 任务了。前往此链接,其中包含一个基于 Java 的小程序,专门用于执行 Stroop 任务。记录你收到的任务时间(你无需将时间提交到网站)。现在下载此数据集,其中包含一些任务参与者的结果。数据集的每行包含一名参与者的表现,第一个数字代表他们的一致任务结果,第二个数字代表不一致任务结果。

(3) 报告关于此数据集的一些描述性统计。包含至少一个集中趋势测量和至少一个变异测量。

如下面方框可以看到包括 均值,和方法的集中性趋势测量,通过describe()查看,和变异值测量v= μ/σ

# 在这里执行你的分析,先导入需要用的一些包
import pandas as pd
import numpy as np 
import matplotlib.pyplot as plt
df_data = pd.read_csv("stroopdata.csv")  

下面是均值,方差和变异系数的输出结果

df_data.describe()  #查看数据集的长度
CongruentIncongruent
count24.00000024.000000
mean14.05112522.015917
std3.5593584.797057
min8.63000015.687000
25%11.89525018.716750
50%14.35650021.017500
75%16.20075024.051500
max22.32800035.255000
data_describe = df_data.describe()    #使用describe函数输出计算结果
data_describe.loc['变异系数测量'] = data_describe.loc['std']/data_describe.loc['mean']    #增加测量变异系数
print("均值,方差和变异系数的输出结果")
print("x_bar0="+str(data_describe.loc['mean'][0])+"  ")  
print("x_bar1="+str(data_describe.loc['mean'][1])+"  ")   
print("s0="+str(data_describe.loc['std'][0]))
print("s1="+str(data_describe.loc['std'][1]))   
print("v0="+str(data_describe.loc['变异系数测量'][0]))
print("v1="+str(data_describe.loc['变异系数测量'][1]))   

print()
# print(data_describe)
均值,方差和变异系数的输出结果
x_bar0=14.051125  
x_bar1=22.0159166667  
s0=3.55935795765
s1=4.79705712247
v0=0.25331480274
v1=0.217890410611
df_data
CongruentIncongruent
012.07919.278
116.79118.741
29.56421.214
38.63015.687
414.66922.803
512.23820.878
614.69224.572
78.98717.394
89.40120.762
914.48026.282
1022.32824.524
1115.29818.644
1215.07317.510
1316.92920.330
1418.20035.255
1512.13022.158
1618.49525.139
1710.63920.429
1811.34417.425
1912.36934.288
2012.94423.894
2114.23317.960
2219.71022.058
2316.00421.157

(4) 提供显示样本数据分布的一个或两个可视化。用一两句话说明你从图中观察到的结果。

# 在这里创建可视化图表
df_data.hist()    #绘制直方图
# plt.show() #整体数据集的可视化概略,说明人对词义的发音与打印颜色应该是有影响的。
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7ff9324dbac8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x7ff9304527b8>]], dtype=object)

实验两组样本的直方图

分析 :两样本的直方图可以看出,样本因为容量比较小(<30) 所以本身不太适合使用正态分布,所以比较适合使用t分布

# 挥之箱线图
df_data.boxplot()
<matplotlib.axes._subplots.AxesSubplot at 0x7ff9304109e8>

实验两种情况的箱型图

分析 :两样本的箱型图也可以看出,两种的均值是不一样的,不一致的时间均值比较大,不一致的整体也比一致的时间要长一点,所以也基本符合我们的备择假设猜想,于是我们计算证明

(5) 现在,执行统计测试并报告你的结果。你的置信水平和关键统计值是多少?你是否成功拒绝零假设?对试验任务得出一个结论。结果是否与你的期望一致?

print("数据总体有:"+str(len( df_data ))+"个")
数据总体有:24个

在这里执行统计检验,各关键统计量分析如下:

1、因为备择假设是μ0≠μ1 ,所以使用双边检测

2、因为统计的样本数量为24<30 属于小样本,所以样本使用T分布。并且根据需要选用了两组样本的配对T检验

3、这儿设置置信水平为95%,显著性水平设置为5% ;自由度v=观测值-1(即v=24-1=23);

4、t 临界值: 因为使用双边检验,所以每边为0.025,又因为自由度v=23,所以查t分布表可以得到临界值t=±2.069

# 使用配对样本T检验的方法来计算出p值
from  scipy.stats import ttest_rel     #导入scipy 中用于计算配对样本t检验的方法

x = df_data.Congruent
y = df_data.Incongruent
print(ttest_rel(x, y))      #代入两列样本集合计算输出得到的p值
Ttest_relResult(statistic=-8.020706944109957, pvalue=4.1030005857111781e-08)
# 又因为检测所得P值 小于 置信水平α,所以结果落入了拒绝域,如下
4.1030005857111781e-08<0.05
True

决策:由独立t检验的结果p值来看为 p < α ,所以结论应该是在检验水平为5%时,可以拒绝原假设H0,接收备择假设:字体的文字意思和其打印颜色的是否一致 会 对被试者正确念出他们时间长短造成影响。μ0≠μ1

参考/引用

注:考虑到这个数据集特别的少,数量非常少,数据集直接粘贴到下面:

CongruentIncongruent
12.07919.278
16.79118.741
9.56421.214
8.6315.687
14.66922.803
12.23820.878
14.69224.572
8.98717.394
9.40120.762
14.4826.282
22.32824.524
15.29818.644
15.07317.51
16.92920.33
18.235.255
12.1322.158
18.49525.139
10.63920.429
11.34417.425
12.36934.288
12.94423.894
14.23317.96
19.7122.058
16.00421.157

[1] https://blog.csdn.net/qq_38214903/article/details/82965090 引用了关于 独立样本t检验的 scipy中 ttest_ind的操作方法

[2] https://support.minitab.com/zh-cn/minitab/18/help-and-how-to/statistics/basic-statistics/supporting-topics/tests-of-means/how-are-dependent-and-independent-samples-different/ 样本相关性知识,来源于这儿

[3] https://blog.csdn.net/qtlyx/article/details/52852034dataFrame 如何绘制箱型图的操作方法,参考自此博文

[4] https://blog.csdn.net/qq_38214903/article/details/82965697 Python统计分析-配对样本t检验

[5] https://github.com/ShiChJ/DAND-Basic-Materials/blob/master/P1/t-table.jpg T值表参考这儿

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值