Skip to content
心理學實驗

用 Potato 做心理學與行為實驗

在你自己的伺服器上執行被試間實驗,實驗中可以包含計時試次和 jsPsych 任務,參與者從 Prolific 或 SONA 招募平臺進入研究。

Potato 用一個 YAML 檔案執行一項線上行為實驗,支援被試間條件、拉丁方平衡順序、記錄反應時的計時試次、自定步速閱讀,以及與 Prolific 或 SONA 之間的來回跳轉。Potato 免費開源,執行在你自己的機器或所在機構的伺服器上,jsPsych 時間線也可以作為研究中的一個頁面執行。

除了任務本身,線上實驗還需要一臺託管頁面和儲存資料的伺服器、一種把每名參與者分配到某個條件的方法、知情同意和篩選頁面,以及返回招募平臺的連結。jsPsych 和 PsychoPy 負責構建任務,託管則交給 Pavlovia、JATOS 或 Cognition.run;Gorilla 等託管式搭建平臺則在自己的伺服器上執行全部內容。Potato 在你控制的伺服器上執行整項研究,一些倫理委員會和資料保護規定要求這樣做;Potato 還會在匯出中記錄每一次分配和每一項計時。

Potato 中的行為實驗設計

每一行是 Potato 2.12 自帶的一項設定或一種頁面類型,連結頁面列出了它的選項。

任務Potato 的做法文件
被試間設計conditions 以平衡、隨機或輪轉方式給每名參與者分配一個單元格,頁面重新載入後保持不變實驗流程
平衡順序phases.counterbalance 為每名參與者隨機或按拉丁方排列區組順序實驗流程
篩選與分支頁面上的 show_when 和 exit_when,以及題目上的 display_logic實驗流程
快速判斷trial_timing,含注視點、刺激呈現時長、作答時限、按鍵與反應的對映以及反應時計時試次
自定步速閱讀與迷宮任務移動視窗、累積和居中三種呈現方式,記錄每個區域的時間自定步速閱讀
jsPsych 任務一條 jsPsych 8 時間線作為一個頁面,由 Potato 提供頁面並存儲資料執行時階段
問卷與量表經過驗證的量表、李克特與滑塊題目,以及從 Qualtrics 或 REDCap 匯入調查工具
激勵相容任務價格列表、BDM 和信念誘導,併為 Prolific 計算獎金激勵支付

一項帶 jsPsych 任務的雙條件研究

下面這段配置把參與者分配到兩種反饋條件之一,在整項研究中保持平衡,並在知情同意和主任務之間執行一條 jsPsych Stroop 時間線。線上行為實驗搭建了完整的研究。

yaml
conditions:
  factors:
    feedback: [none, immediate]
  assignment: balanced
 
phases:
  order: [consent, stroop, annotation, debrief]
  stroop:
    type: jspsych
    timeline: tasks/stroop.js
    plugins: [instructions, html-keyboard-response]

assignment: balanced 把每名新參與者分到目前人數最少的單元格,即使各單元格的流失率不同,人數也能保持均衡。Potato 自帶 jsPsych 8.3.0 及其 15 個外掛,只用到這些外掛的研究不會從 CDN 載入任何內容。

通過 Prolific 或 SONA 招募

參與者從 Prolific 進入時,研究 URL 中帶有他們的 PROLIFIC_PID,無需密碼即可登入。結束時,參與者會看到完成碼和一個返回 Prolific 的按鈕;未通過注意力檢查或培訓階段的參與者可以拿到另一個單獨的完成碼。Prolific 和 SONA 的設定見眾包整合。

資料與匯出

每名參與者的答案、所分配的條件、頁面順序和試次計時都儲存在你的伺服器上。CSV 匯出會寫出 participants.csv(含條件、順序和篩除記錄)、trials.csv(每個計時試次一行,包括超時),以及用於自定步速閱讀的 regions.csv。data_package 匯出會附加一份 Frictionless Data Package 描述,psych_ds 則按 Psych-DS 佈局寫出同樣的表格,方便共享。

常見問題

能否把 jsPsych 實驗託管在我自己的伺服器上,而不是 Pavlovia?

能。新增一個 type: jspsych 頁面並指定你的時間線檔案,Potato 會提供這個頁面,把參與者的 ID 和條件傳給時間線,儲存每一個試次,並在時間線結束時讓參與者進入下一步。知情同意、問卷、返回 Prolific 和匯出都留在 Potato 中完成。Potato 可以在任何能安裝 Python 的機器上執行,包括大學的伺服器。

如何讓 Prolific 參與者帶著完成碼返回?

把登入設定為從 URL 讀取 PROLIFIC_PID,並在配置中填入你的完成碼。研究結束時,參與者會看到完成碼和一個返回 Prolific 的按鈕。prolific 提供方還會為未通過注意力檢查或培訓階段的參與者提供第二個完成碼。

瀏覽器中測得的反應時夠準確嗎?

對大多數被試內比較來說,夠準確。Potato 在 requestAnimationFrame 回呼中呈現刺激,並以下一幀作為刺激起始時間,因此起始時間精確到幀,在 60 Hz 下約為 17 ms。鍵盤和顯示器會額外帶來 5 到 30 ms 瀏覽器察覺不到的延遲,而且延遲因機器而異,所以請在被試內比較反應時,或在模型中加入參與者項。如果需要毫秒級精度或音訊起始時間,請在 jsPsych 頁面中執行任務。

能否不寫 JavaScript 就線上執行自定步速閱讀實驗?

能。trial_timing 下的 presentation 塊以移動視窗、累積或居中模式逐個區域顯示每個條目的文本,並記錄參與者在每個區域上花了多長時間。迷宮任務的做法相同,理解題作為普通題目跟在後面。自定步速閱讀給出了配置。

延伸閱讀

從這裡開始

示例設計

每個設計都是可以下載並直接執行的 Potato 配置。

其他領域

全部應用場景