6.2 模拟决策和反应时
在上一节中,我们仅使用一致性(coherence)和持续时间(duration)模拟了被试的决策正确率。然而,在认知心理学中,我们不仅关注被试在决策时的正确率,还关注他们做出决策的反应时(Reaction Time),即从接收到感知信息到做出决策所需的时间长度。
因此,为了更全面地理解被试的决策过程,我们需要引入在知觉决策领域最常见的模型:漂移扩散模型(Drift Diffusion Model, DDM),漂移扩散模型是一种证据积累模型,模型假设在决策过程中,个体会从环境中连续的获取信息,这些信息被视为“证据”。这些证据以随机但有方向性的方式积累,逐渐接近决策边界。
在之前的模型中,我们在每一帧刺激中统计向左或者向右移动的点的数量,并在$T$帧后将向两个方向移动的点的数量相加进行比较。在这一节中,我们尝试另一种替代方法:在每一帧中,我们计算向正确方向运动的点的数量和向错误方向运动的点的数量的差,最后累加每一帧中所得到的差值delta。
接下来,我们用这个方法来模拟一次决策:
import numpy as np
from scipy.stats import bernoulli
import matplotlib.pyplot as plt
T = 20 # 刺激呈现的帧数
D = 10 # 刺激中点的数量
f = 0.55 # 正确点所占的比例
N_correct = 0 # 正确点的计数器
N_wrong = 0 # 错误点的计数器
delta = np.empty(T+1) # 计算每帧中的数量差
delta[0] = 0
#
for t in range(T): # 循环每一帧
dir = bernoulli.rvs(f, size=1)
N_correct = N_correct + dir # 正确点数量+1
N_wrong = N_wrong + (1-dir) # 错误点数量+1
# 数完这一帧中点的数量之后,计算并保存他们的差值
delta[t+1] = N_correct - N_wrong可视化出随着刺激呈现帧数增加而变化的差值:

根据上图,尽管正确点和错误点之间的Running differnce随着$T$的变化略有波动,但总体呈现上升趋势。这个过程就可以视为一个证据积累的过程:在每一帧中,如果,那么被试就会获得一些支持正确方向的证据;反之,如果,则会会的一些支持错误方向的证据。如果感觉证据随着时间积累,总体证据(即决策变量,上图中的蓝色曲线)会增加,是的被试有可能做出正确的选择。
对于固定持续时间的刺激,被试根据最终决策变量的符号来做出决策。然而,由被试自行决定持续时间的刺激(即反应时),我们该如何对这一过程进行建模呢?在这种情况下,我们假设一旦决策变量漂移到一个固定的边界,漂移扩散过程就会停止。在这里,我们假设这个边界为:
让我们来可视化出这个漂移扩散过程:

上述代码只能模拟出一次漂移扩散过程,我们像之前一样将这个过程写成一个函数,以便于我们进行多次模拟:
现在我们可以利用这个函数来同时进行多次模拟了,让我们模拟20个试次并看看结果怎么样吧:

我们可以看到,大多数试次的感觉证据在以不同的速度不断上升,这是一个简单的随机游走过程,我们可以进一步分析当证据到达决策边界时的反应时间:

我们可以发现,模拟出的反应时服从一个Gamma分布,这与认知心理学中已有的关于反应时的发现一致。
最后更新于