AI——认知建模工具:PsychoPy

以下是关于 PsychoPy 的详细使用方法指南,涵盖安装、实验设计、代码编写、数据记录及高级功能的完整流程:


一、PsychoPy 简介

PsychoPy 是一款开源的心理学实验设计工具,支持通过图形界面(Builder)或Python代码(Coder)创建实验,适用于行为实验、认知任务(如Stroop、Flanker)、眼动追踪等。其核心优势是跨平台兼容性毫秒级时间精度


二、安装与启动

  1. 下载安装

  2. 启动界面

    • Builder:图形化拖拽设计(适合新手)。
    • Coder:直接编写Python代码(适合高级用户)。

三、使用 Builder 设计实验(以Stroop任务为例)

1. 创建实验流程

  1. 新建实验
    • 打开Builder → 点击“New Experiment”。
  2. 添加Routine
    • 右键点击“Flow” → 添加“Routine”(如trial)。
  3. 设计刺激组件
    • trial中添加组件:
      • Text:显示颜色词(如“红”显示为蓝色)。
      • Keyboard:记录被试按键反应。
      • Fixation Cross:注视点(500ms)。
  4. 设置循环(Loop)
    • 右键点击trial → 添加“Loop”,导入CSV文件定义实验条件(如词义、颜色、正确答案)。

2. 关键参数配置

  • Text组件
    • Text字段:$word(从CSV文件中读取变量)。
    • Color字段:$color(同上)。
  • Keyboard组件
    • Allowed Keys['left','right'](对应答案选项)。
    • Store Correct$corrAns(根据CSV中的正确答案自动标记对错)。

3. 运行与调试

  • 点击“Run” → 选择“Full Screen”或窗口模式运行。
  • 调试技巧:
    • 使用print()函数在控制台输出变量值。
    • 启用“Logging”记录时间戳和事件。

四、使用 Coder 编写实验(Python代码示例)

1. 基础代码框架

from psychopy import visual, core, event

# 创建窗口
win = visual.Window(size=(800, 600), units='pix')

# 定义刺激
text_stim = visual.TextStim(win, text='Hello PsychoPy!', color='white')

# 显示刺激并记录反应
text_stim.draw()
win.flip()
core.wait(2.0)  # 显示2秒

# 关闭窗口
win.close()

2. Stroop任务代码示例

from psychopy import visual, core, event, data
import random

# 初始化窗口和参数
win = visual.Window()
conditions = [{'word': '红', 'color': 'blue', 'corrAns': 'right'},
              {'word': '蓝', 'color': 'red', 'corrAns': 'left'}]
trials = data.TrialHandler(conditions, nReps=5)

# 实验循环
for trial in trials:
    # 显示注视点
    fixation = visual.TextStim(win, text='+', color='white')
    fixation.draw()
    win.flip()
    core.wait(0.5)
    
    # 显示刺激
    text = visual.TextStim(win, text=trial['word'], color=trial['color'])
    text.draw()
    win.flip()
    
    # 记录反应
    keys = event.waitKeys(keyList=['left', 'right'], timeStamped=True)
    trials.addData('RT', keys[0][1])  # 记录反应时
    trials.addData('Accuracy', 1 if keys[0][0] == trial['corrAns'] else 0)

# 保存数据
trials.saveAsExcel('stroop_data.xlsx')
win.close()

五、数据记录与导出

  1. 自动记录
    • Builder模式下,数据默认保存为.csv.xlsx文件(含时间戳、反应时、正确率等)。
  2. 自定义字段
    • 在代码中使用addData()添加额外变量(如被试ID、实验版本)。
  3. 数据清洗
    • 使用Pandas处理数据:
      import pandas as pd
      df = pd.read_csv('stroop_data.csv')
      df = df[df['RT'] > 0.1]  # 过滤过快反应
      

六、高级功能

1. 时间精度控制

  • 刷新同步
    win = visual.Window(..., useFBO=True)  # 启用帧缓冲
    
  • 硬件同步
    • 使用psychopy.parallel模块连接触发器(如EEG/MRI设备)。

2. 眼动追踪集成

  • 支持设备:Tobii、EyeLink。
  • 示例代码:
    from psychopy.iohub import launchHubServer
    io = launchHubServer(eyetracker='Tobii')
    

3. 扩展插件

  • Pavlovia:在线运行实验(需注册账号)。
  • PyEPL:与Python生态库(如NumPy、SciPy)无缝集成。

七、调试与优化

1. 常见问题

  • 刺激不同步:确保win.flip()在每次刷新前调用。
  • 按键延迟:使用event.clearEvents()清空事件缓存。
  • 跨平台差异:在目标系统上提前测试。

2. 性能优化

  • 预加载刺激
    images = [visual.ImageStim(win, image='img1.png'), ...]
    
  • 减少实时计算:避免在循环内创建对象。

八、学习资源

  1. 官方文档PsychoPy Documentation
  2. 书籍推荐
    • Programming Visual Illusions for Everyone》(PsychoPy实战案例)
    • Experimental Psychology with Python》(结合理论与代码)
  3. 社区支持

九、应用场景

  • 认知心理学:注意力、记忆、决策实验。
  • 神经科学:fMRI/EEG实验范式设计。
  • 教育研究:学习行为分析。
  • 人因工程:界面可用性测试。

参考:PsychoPy 系列指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值