北太天元:心理学试验
北太天元卢朓
2024年08月21日 23:26

在心理学研究领域,数据的收集、处理与分析是至关重要的一环。而北太天元,作为一款集数值计算、矩阵运算、信号处理和图形显示等功能于一体的科学计算软件,凭借其强大的功能和灵活性,成为了心理学研究者们不可或缺的辅助工具。

北太天元的数值计算和矩阵运算功能,使得心理学家能够轻松应对复杂的数据处理任务。在心理学实验中,往往需要收集大量的数据,这些数据可能包括受试者的反应时间、选择偏好、情绪评分等。利用北太天元,研究者可以迅速地对这些数据进行整理、清洗和转换,为后续的分析工作打下坚实的基础。

图形显示功能也是北太天元在心理学研究中不可或缺的一部分。通过北太天元,研究者可以轻松地绘制出各种图表,如散点图、折线图、柱状图等,来直观地展示数据之间的关系和趋势。这对于理解实验结果、撰写研究报告以及进行学术交流都具有重要的意义。

此外,北太天元还支持自定义函数和脚本的编写,这使得研究者能够根据自己的需求,开发出特定的数据处理和分析程序。这种灵活性不仅提高了研究效率,还有助于推动心理学研究方法的创新和发展。

综上所述,北太天元凭借其强大的功能和灵活性,在心理学研究中发挥着举足轻重的作用。它不仅能够帮助研究者高效地处理和分析数据,还能够提供直观的图形展示和自定义的程序开发,为心理学研究的深入和发展提供了有力的支持。因此,对于每一位心理学研究者来说,掌握北太天元的使用技能无疑将是一笔宝贵的财富。

我下面举一个例子来说明如何用北太天元做试验,收集数据,分析数据。 

我上一个文章北太天元生成一个小猫图像 - 哔哩哔哩 (bilibili.com)​ 给出了一个小猫图像 animalImage 

在下面的脚本中使用, 

undefined_7.m 

代码块
JavaScript
自动换行
复制代码
% 响应运动刺激的实验  
% 其他想法:Stroop任务、Flanker任务、有或无响应的反应时间、延迟匹配样本任务  
  
% 询问用户姓名,创建一个文件用于保存数据  
clc;  
受试者姓名 = input('请输入您的姓名首字母缩写:');  
文件名 = [受试者姓名 date '.mat'];  
save(文件名, '受试者姓名');  
  
% 加载图像处理插件  
load_plugin("DIP");  
  
% 显示实验指导语并开始实验  
指导图 = imread('instructions.png');  
dip::figure;  
imshow(指导图);  
pause(2);  
dip::close;  
close;  
  
% 确定不同的试验类型并随机排序  
% 目标是生成一个包含1、2和3的随机顺序向量,其中1=左,2=右,3=随机  
条件顺序 = [1 1 1 2 2 2 3 3 3];  
颜色顺序 = [1 2 3 1 2 3 1 2 3];  
试验次数 = size(条件顺序, 2);  
随机顺序 = randperm(试验次数);  
条件顺序 = 条件顺序(随机顺序);  
颜色顺序 = 颜色顺序(随机顺序);  
  
试验数据矩阵 = [];  
  
% 开始试验循环  
for 试验次数索引 = 1:试验次数  
    % 定义图像1和图像2  
    背景图像 = rand(100,120);  
    背景图像(1:90,1:90) = animalImage; % animalImage是通过运行undefined_9 获得一个图片
      
    图像1 = 背景图像(:, 30:110);  
      
    % 根据条件定义图像2  
    if 条件顺序(试验次数索引) == 1  
        % 图像2应有向左的运动  
        图像2 = 背景图像(:, 40:120);  
    elseif 条件顺序(试验次数索引) == 2  
        % 图像2应有向右的运动  
        图像2 = 背景图像(:, 20:100);  
    else  
        % 图像2应是随机的  
        图像2 = rand(100,81);  
    end  
      
    % 显示图像1一段时间  
    subplot(1,2,1);  
    imagesc(图像1); axis equal; axis off;  
    title("原图");  
      
    % 显示图像2一段时间  
    subplot(1,2,2);  
    imagesc(图像2); axis equal; axis off;  
    title("和原图相比有什么变化?");  
      
    % 收集响应(按键)和反应时间  
    tic;  
    L = 'L';  
    R = 'R';  
    O = 'O';  
    按键 = input("请输入'L','R'或者'O':");  
    if 按键 == L  
        响应 = 1; % 1=左  
    elseif 按键 == R  
        响应 = 2; % 2=右  
    elseif 按键 == O  
        响应 = 3; % 3=随机  
    else  
        响应 = 0;  
    end  
    反应时间 = toc;  
      
    % 更新并保存试验数据  
    试验数据矩阵(试验次数索引,:) = [试验次数索引 条件顺序(试验次数索引) 响应 反应时间];  
    save(文件名, '试验数据矩阵');  
      
    close all;  
    pause(.5);  
end  
  
% 感谢受试者参与,并结束程序  
disp('感谢您的参与!');
复制成功

代码中的 instructions.png 如下: 

instructions.png

这段代码是一个用于心理学实验的北太天元脚本,旨在研究受试者对运动刺激的反应。它结合了Stroop任务和Flanker任务的一些元素,通过显示不同的图像并要求受试者根据图像的变化做出反应来收集数据。以下是代码的详细解释:

  1. 初始化

    • 询问受试者的姓名首字母缩写,并创建一个以该缩写和当前日期命名的文件来保存数据。

    • 加载图像处理插件(这里假设load_plugin("DIP");是一个自定义函数,用于加载图像处理相关的工具箱或函数库)。

  1. 显示实验指导语

    • 显示一张名为instructions.png的图片作为实验指导语,然后关闭图片窗口。

  1. 确定试验类型和顺序

    • 定义三种条件(左、右、随机),每种条件重复三次,并随机排序。

    • 定义一个颜色顺序(虽然在这个脚本中并未使用)。

  1. 试验循环

    • 对于每次试验,生成一个背景图像,并在其上叠加一个动物图像(animalImage,这个变量在脚本中未定义,可能是之前已经加载或定义的图像)。

    • 根据试验条件,生成第二个图像,该图像相对于第一个图像有向左、向右或随机的变化。

    • 显示两个图像,并要求受试者输入L(左)、R(右)或O(其他/随机)来指示他们观察到的变化。

    • 记录受试者的响应和反应时间。

    • 将试验数据保存到之前创建的文件中。

  1. 结束程序

    • 感谢受试者的参与,并结束程序。

注意

  • 脚本中有一些未定义的变量(如animalImage),在实际使用前需要定义或加载。

  • load_plugin("DIP"); 加载图像工具箱, dip::figure;dip::close;是北太天元图像工具箱的函数。

  • 脚本中的pause函数用于在显示图像和指导语之间提供短暂的延迟,以便受试者有时间阅读和理解。

  • 脚本使用了randperm函数来随机化试验顺序,这是心理学实验中常用的方法来减少顺序效应。

我输入的是 'L',  产生的 .mat 文件是'L21-Aug-2024.mat' 

因此, 写一个北太天元脚本来分析试验数据

undefined_19.m 

代码块
JavaScript
自动换行
复制代码
% 分析运动感知实验的数据  
数据列表 = {'L21-Aug-2024.mat'};  
受试者数量 = length(数据列表);  
所有反应时间 = [];  
  
for s = 1:受试者数量  
    load(数据列表{s});  
      
    左向试验 = find(试验数据矩阵(:,2) == 1);  
    右向试验 = find(试验数据矩阵(:,2) == 2);  
    随机试验 = find(试验数据矩阵(:,2) == 3);  
      
    平均反应时间_左向试验 = mean(试验数据矩阵(左向试验, 4));  
    平均反应时间_右向试验 = mean(试验数据矩阵(右向试验, 4));  
    平均反应时间_随机试验 = mean(试验数据矩阵(随机试验, 4));  
      
    所有反应时间(s, :) = [平均反应时间_左向试验 平均反应时间_右向试验 平均反应时间_随机试验];  
      
    figure(s);  
    bar([平均反应时间_左向试验 平均反应时间_右向试验 平均反应时间_随机试验]);  
    title(['受试者 ' num2str(s) ' 的平均反应时间']);  
    xlabel('试验类型');  
    ylabel('平均反应时间');    
    set(gca, 'XTickLabel', {'                          左向  ', '      右向', '随机'});  
end
复制成功

Stroop任务和Flanker任务都是心理学实验中常用的范式,用于研究不同的认知过程和行为反应。

Stroop任务

Stroop任务是一种经典的认知实验范式,最早由美国心理学家斯特鲁普(Stroop)在1935年提出。该任务主要用于研究反应冲突,特别是自动加工与控制加工之间的冲突。在Stroop任务中,实验材料通常是颜色词(如“红”、“绿”等),这些颜色词会用不同颜色的墨水书写。实验要求被试者忽略颜色词的意义,仅对颜色词的颜色进行命名。然而,由于颜色词的意义与颜色之间可能存在的冲突(如用绿色墨水书写的“红”字),被试者在命名颜色时往往会受到颜色词意义的干扰,导致反应时间延长。这种干扰效应被称为Stroop效应。

Stroop任务的因变量是被试者的反应时,自变量是实验条件(如颜色词与颜色的关系),而控制变量则包括被试者的视力水平、识字水平、实验室环境的恒定、屏幕呈现位置、色词组合呈现次数与顺序等。Stroop任务及其变体被广泛应用于认知心理学、神经科学、发展心理学等领域,用于研究注意、抑制控制、自动化加工等认知过程。

Flanker任务

Flanker任务又称侧抑制任务,是一种研究认知冲突的实验范式。该任务最初由Eriksen等人在探究干扰字母对目标字母识别影响的研究中提出。在Flanker任务中,实验材料通常是一系列字母或数字,其中中心的一个字母或数字作为目标刺激,而两侧则呈现相同的或不同的字母或数字作为分心刺激。实验要求被试者忽略分心刺激,仅对目标刺激进行反应(如按键判断目标刺激的类型)。然而,由于分心刺激与目标刺激之间可能存在的冲突(如目标刺激为“H”,两侧分心刺激为“S”时),被试者在反应过程中往往会受到分心刺激的干扰,导致反应时间延长或错误率增加。这种干扰效应被称为Flanker效应。

Flanker任务的因变量通常包括反应时和正确率,自变量是实验条件(如分心刺激与目标刺激的关系),而控制变量则包括实验材料的呈现方式、被试者的注意集中程度等。Flanker任务及其变体被广泛应用于认知心理学、神经科学等领域,用于研究注意分配、冲突监测、认知控制等认知过程。

综上所述,Stroop任务和Flanker任务都是心理学实验中重要的研究范式,它们分别用于研究不同的认知过程和行为反应。通过这两个任务,心理学家可以深入了解人类的认知机制和行为表现。