stimulus-coding or accuracy coding?怎么编码?上边界是正确还是选A?
Created: June 11, 2023 9:26 AM Last edited by: Pan Wanke Last edited time: June 11, 2023 9:26 AM Owner: Pan Wanke
问题:用correct和incorrect做DDM的两条边界,和用左右键做DDM的两条边界,他们的区别是什么呀?算出的参数含义上和解释上会发生什么变化
编码对v的影响
如果上边界是正确。
drift rate表示的是获得有效信息的速度。
drift越大,那么信息累计的速度越快。
如果上边界是选择A,相对于选择B。
drift rate表示的是获得偏好信息的倾向性。
drift越大,那么越偏好收集与A信息有关的信息。
此时的 drift rate不能直接表达为信息累计的速度,而更多反应的是一种偏好。
编码对z的影响
如果上边界是选择A,相对于选择B。
当z>0.5,表示个体对A选项的偏好存在倾向性或者偏差。
比如,在食物选择的研究中,个体可能对某一类零食存在偏好。
又比如,在歧视研究中,个体可能对黑人有判断偏差。
如果上边界是正确。
此时的z难以解释。如果z>0.5,z大概可以解释为在没有累计信息前就获得了有关正确反应的信息。
如点探测类任务,可能在正式决策前给被试提供cue,因此被试在没有累计信息前就获得了有关正确反应的信息。
一般以正确率为指标的任务,会将z设置为0.5,以避免难以解释的问题。
如何选择编码?
选择编码主要取决于实验任务和实验目的。
实验任务决定了你的指标是正确率还是选择比率;
实验目的决定了你如何解释参数,此时可以根据实验目的调整编码。比如在社会决策的sDDM中,选择的上边界可以是与他人选择一致,也可以是与自己之前的选择保持一致。
常见误区
-
试图通过两个v来解释
当在考虑如何解释编码的影响时,研究者可能会想,我既然知道了被试选择A的drift偏好,那我是否能求他关于选项B的偏好呐?
进而,我是否可以比较被试在两种选择下drift偏好的差异性?
回答:一般来说,这是不可以的。
一方面,DDM会把上下两个方向的drift融和为一个,并且表达为上边界的drift,这使得另一个drift被忽略。比如,在四参数DDM中,上下边际drift的大小是一样的。在加入drift的trial层面变异sv后,对于下边界的drift的估计虽然会与上边界不同,但是彼此也相互影响。
另一方面,DDM的意义就是联合选择和rt共同解释。上述的操作等于把选择和rt分开分析了,这和把被试的选择作为自变量,把rt作为因变量进行GLM的区别很小。
编码对数据的影响
由于编码对于数据的影响反映为对rt的翻转(flip),如下图

因此,如果以正确为上边界,那么错误的rt会翻转为负数。
如果以选择A为上边界,那么选择B的rt会翻转为负数。
HDDM中的stim coding
stim coding的意义在于探查被试对某些反应是否存在偏好。
比如被试是否更喜欢按右键,而不是左键。
stim coding的本质
首先是多加入了一列协变量(stim)
然后假设,v或者z,对于stim1为正(z就是大于0.5),对于stim2为负(z就是小于0.5)。
实际的模型设定也是这样。
对于stim1,
res = 1(可以是正确或者选择A),使用wiener(…,v,z)
res = 0,使用wiener(…,-v,1-z)
对于stim2,
res = 1,使用wiener(…,-v,z) 或者 wiener(…,v,1-z)
res = 0,使用wiener(…,v,1-z) 或者 wiener(…,-v, z)
一般在代码中会默认使用accuary coding,如果需要stim coding ,可以参照https://hddm.readthedocs.io/en/latest/howto.html 里的代码进行设置
model = hddm.HDDMStimCoding(data, include='z', stim_col='stim', split_param='v')