序列反应时范式简介
序列反应时范式由Nissen和Bullemer于1987年提出的,用于研究内隐学习。其基本逻辑是:被试在重复学习复杂规律的序列之后,对刺激的反应时会逐渐降低,但是不能外显的报告出序列的规律,说明被试进行了内隐学习。
在经典研究中,刺激会在四个位置之一出现,被试需要在刺激出现时快速按下对应位置的按键。刺激在不同位置出现的顺序满足一个复杂序列,例如:“423132412313”(数字代表不同的位置),但告诉被试的是“刺激随机出现”。
实验分成很多组(blocks),每一组重复出现多次序列。例如,实验包含十组测试,每组测试重复八次序列,序列为“423132412313”,那么被试一共要进行的反应次数为:
为了与内隐学习的反应时(规律组)进行比较,通常将倒数第二组设置为真正随机。
所有10组测试完成之后,会对被试进行外显的测验,以确定没有发生外显学习
下面开始使用psychopy builder完成经典的序列反应时程序。
1. 设置开始指导语
首先插入一个text component,用于呈现指导语。具体设置如下:
![7e9499940f16d18b0fd76a0c76c951bd.png](https://i-blog.csdnimg.cn/blog_migrate/f53d65d6b6eacf4095fbda83c5ee5d63.jpeg)
记得将data子窗口的save onset/offset times勾去掉
接着插入一个keyboard component,用于退出指导语,具体设置如下:
![be073a4da58a0143a1320b39b57af289.png](https://i-blog.csdnimg.cn/blog_migrate/997f3a153330048a3ec0152f21c84d74.png)
其中start time设置为1是为了避免被试误触,还没仔细看指导语就跳过了。
2. 设置练习
新建一个routine,命名为trial
2.1 添加四个方框,以及对应的按键标签
在trial中添加四个polygon component,设置为:
- start time:0
- stop duration:空白
- shape:rectangle
- size:(0.1,0.1)
- position:四个分别设置为(-0.3,-0.25),(-0.1,-0.25),(0.1,-0.25),(0.3,-0.25),使其呈现位置从左到右排列
- advanced-fill color:$None
其中一个的设置如图:
![90aba8ef213f1dcb437cea8138a89d23.png](https://i-blog.csdnimg.cn/blog_migrate/16185654018014e4ed9b56b956348a93.jpeg)
接下来添加四个text components,用于显示方框对应的标签。
- 文字分别填写:D,F,K,L
- position分别为:(-0.3,-0.1),(-0.1,-0.1),(0.1,-0.1),(0.3,-0.1)。保证标签呈现在方框正上方
2.2 设置注视点
添加polygon component作为注视点,设置如下:
![5ddd9887849988c5c44290db21e25da3.png](https://i-blog.csdnimg.cn/blog_migrate/25b5ecf6a2111b66fa44b12184f4c6b1.jpeg)
2.3 设置condition的excel文件
将从左右到的位置依次编号为1,2,3,4。任意设置一个复杂序列,如:“423132412313”。
新建一个Excel文件,随意命名,此处使用SRT_trial_condition.xlsx。各变量设置如下:
![dc6e89286e737c3caf47e7967a71a119.png](https://i-blog.csdnimg.cn/blog_migrate/8224a4c8eac1a55a0461cab6e5d20927.png)
其中:
- order只是用于标识出现的位置,不作为变量使用
- position是呈现的位置,与各方框一致,注意设置变量时需要加上方括号,符合builder的position格式
- resp_key是正确的反应按键
2.4 添加刺激和反应按键
添加polygon component,作为红色圆形刺激,设置如下:
![6acf1100a5abf6a5d1cb797c69024d68.png](https://i-blog.csdnimg.cn/blog_migrate/910d6ebcd5f9322ed73701447b876711.jpeg)
此外,advanced-fill color改为红色
接下来,添加keyboard component作为反应按键,设置如下:
![ba62d135d1cdaa6d802ab20a1d7e9cee.png](https://i-blog.csdnimg.cn/blog_migrate/3f5f05d78da83308f2047bc6ef734789.jpeg)
2.5 添加练习loop
在trial routine上添加loop,由于是练习,可命名为prac_loop,
因为此时是练习,可不用既定序列呈现,使用随机呈现,而且试次数量不需太多,具体设置为:
- loop type设置为 fullrandom。
- nreps设置为2
- conditions中选择之前设置好的Excel文件
如图:
![e26141a870add3e4eb1ed7743f9b5f05.png](https://i-blog.csdnimg.cn/blog_migrate/9a7b40f74fc0085893a996b49ea028f9.png)
2.6 设置练习结束提示
新建routine,可命名为pracEnd。注意插入在prac_loop外面
在其中添加text componet,如图:
![89668b40c9fa06fffa2102deca5ff010.png](https://i-blog.csdnimg.cn/blog_migrate/ed70297b10912e5a21cef2422ebd8539.jpeg)
在添加一个keyboard component作为按键。
3.设置正式实验
3.1 插入trial routine,不用新建
正式实验的trial与练习是相同的,只是使用不同的loop。所以,点击insert routine,插入之前已经使用过的trial到练习结束指导语后面即可(同一个routine可以重复使用)
3.2 设置实验组(block)loop
前文提到,实验一共进行10组,每组重复序列8次。并且前8组和第10组都是按照序列呈现,第9组是随机呈现。在每组结束之后,设置一个提示,也便于被试进行短暂休息。
此时,我们先设置一个loop,用于组(block)的循环
新建一个loop,可命名为block_end,插入到正式实验trial的前后。设置为:
![08a04cf0d384b31c95d0c681f9519d54.png](https://i-blog.csdnimg.cn/blog_migrate/6782bb6d9309f1a782667e0623567b50.png)
- loop type为sequential,按照序列呈现
- nreps为8,一共重复8次
- conditions同样为之前的Excel文件
3.3设置block结束提示
新建routine,可命名为block_end,插入到实验trial后面,注意放置在循环之外
同样插入一个text和keyboard component。
text的文字可写为:本组测试结束,请稍事休息。如果你已经准备好,按空格继续下一组测试。
具体可参照2.6
3.4 插入外层循环,用于重复block
前8个组(block)都是一模一样的,所以直接插入一个外层循环,可命名为block_loop。
起点和终点分别放在正式实验trial前面和block_end后面,如图:
![774a6ffd9bd51f0c49b13b1baa9efb54.png](https://i-blog.csdnimg.cn/blog_migrate/94cc48440c27973cc148f2c38f56215e.png)
其中将nreps设置为8即可
3.5 插入第9组随机测试
再次插入trial routine,并且在其后插入block_end routine。
新建一个loop在trial之上,设置为:
- loop type为 full random
- nreps为8
- condition同样是之前的excel文件
3.6 插入最后一个序列测试
再次插入trial routine到最后,并在之前加入loop,所有设置与序列loop相同。
4.测试结束,进行外显调查
新建routine,用于设置测试结束后的外显调查。以确认被试是否进行了外显学习。
在其中加入text 和keyboard component。。
text文字可写:
本轮测试结束,谢谢你的参与!
现在请你仔细思考,然后回答以下问题。
你是否注意到红色圆形出现的位置有什么规律?
1.根本没注意到
2.没有规律
3.似乎有些规律
4.很明显有规律
请仔细思考,按键盘上对应的数字键作答
keyboard的allowed keys设置为:'1','2','3','4'
5.外显测试
如果被试选择的是'3'或'4',那么还需增加一项测试。
按照序列逐一呈现刺激,此时要求被试预判下一次出现的位置
新建routine,作为外显测试指导语
首先添加code component,用于判断被试的选择,从而判断是否需要进行外显测试。
选择begin routine,输入代码:
if endtest_key.keys=='1' or endtest_key.keys=='2':
core.quit()
即被试如果选择1或者2,程序就结束。
接着添加指导语和空格按键,设置同2.6
指导语可写:现在请你对红色圆形出现的位置进行预测,一会红色圆形出现后,请你预测下一次出现的位置,按对应的按键进行反应。注意!本次测试不需要快速作答,请仔细思考后再按键。如果你已经准备好,按空格键进入测试。
具体的测试也可以直接使用trial routine,loop的nreps设置为1就可以了。
要注意的是,在最后分析的时候与正式测试区分开来。
6. 完善程序
目前基本的程序已经编写好了,不过仍有一些地方可以完善,例如:
- 每次反应后添加反馈
- 可将序列实验组最开始的4-6个试次设置成完全随机,以减少非内隐学习影响
大家可以尝试一下进行完善,并不需要复杂的操作。