Skip to content
调查研究

用 Potato 做调查研究与社会科学

导入 Qualtrics、REDCap 或 LimeSurvey 问卷,在你自己的服务器上运行调查实验、列表实验和自我中心网络问题。

Potato 能导入来自 Qualtrics、REDCap、LimeSurvey、SurveyJS、Network Canvas 或 XLSForm 的问卷并运行它,支持随机分配实验条件,针对敏感话题的列表实验和随机化回答,以及自我中心网络的提名生成器。Potato 免费开源,运行在你自己的机器或所在机构的服务器上,回答数据也就留在那里。

调查实验需要的不只是一个表单生成器:随机分配要在各条件之间保持平衡,题目要按规则显示或跳过,要有让人能私下回答敏感问题的设计,导出还要记录每位受访者被分配到什么、看到了什么。Potato 在一份 YAML 配置中满足这些需求。由于 Potato 运行在你自己的服务器上,回答数据受你所在机构的数据协议约束。随着一些大学和院系停止使用 Qualtrics,自己运行服务器变得更加重要。例如,拉德堡德大学社会科学学院要求其研究人员在 2026 年 12 月 1 日前迁移到 LimeSurvey。

Potato 中的调查研究设计

每一行是 Potato 2.12 自带的一项功能,链接页面列出了它的选项。

任务Potato 的做法文档
调查实验与情境实验(vignette)conditions 给每位受访者分配因子设计中的一个单元格,页面和题目上的规则可以读取所分配的条件实验流程
列表实验list_experiment 只向处理组显示敏感条目,导出时估计其发生率敏感问题
随机化回答randomized_response,支持强制回答设计和交叉设计敏感问题
个人网络ego_network,含提名生成器、提名解释器、他者之间的关系和社会关系图自我中心网络
经过验证的量表55 套工具,涵盖人格、心理健康筛查、情感、态度和人口统计信息调查工具
跳题逻辑与分支题目上的 display_logic,以及页面上的 show_when 和 exit_when多阶段工作流
编码开放式回答把回答作为条目载入,由多名编码者依据码本编码,并计算 Krippendorff's alpha内容分析

一个列表实验

下面这段配置把受访者分成对照组和处理组,敏感陈述只出现在处理组的列表中。受访者只报告有几条陈述符合自己的情况,从不说明是哪几条;survey_experiments 导出会估计敏感条目的发生率,并给出标准误和 95% 区间。

yaml
conditions:
  factors:
    list_group: [control, treatment]
 
annotation_schemes:
  - annotation_type: list_experiment
    name: lists
    description: How many of these have you done in the last year?
    items:
      - Gone to a live music concert
      - Bought a book in a shop
      - Volunteered for a local group
    sensitive_item: Driven a car after drinking alcohol
    treatment: {factor: list_group, level: treatment}

对照陈述要选那些对大多数受访者来说既不全真、也不全假的。如果每一条陈述都符合、或者没有一条符合某位受访者,计数就会暴露敏感问题的答案,这个设计也就失效了。

导入已有问卷

potato import 能读取 Qualtrics .qsf、REDCap 数据字典、LimeSurvey .lss、ODK、KoboToolbox、SurveyCTO 或 Ona 使用的 XLSForm、SurveyJS JSON、Beiwe 问卷,以及 Network Canvas 协议。题目、页面和显示/隐藏逻辑会转换为 Potato 的问卷页面和规则。这些文件都不含回答数据,所以导入迁移的是问卷本身,已收集的数据留在原处。

bash
potato import -i my-survey.qsf -o survey-project/

与 Qualtrics、REDCap、ODK 和 Network Canvas 的分工

这些工具各自面向不同的使用场景。Qualtrics 是托管式商业调查平台,通常由大学统一购买许可。REDCap 面向联盟成员机构的临床与研究数据库。ODK 和 KoboToolbox 在野外用移动设备离线采集数据,Network Canvas 用于访员辅助的网络访谈。Potato 在你自己的服务器上运行网络问卷,并额外提供实验条件、敏感问题设计、同一会话中的标注任务、Prolific 和 SONA 招募,以及统一的导出。

常见问题

不用 Qualtrics,能运行带随机分配的调查实验吗?

能。conditions 以跨单元格平衡、随机或轮转的方式,给每位受访者分配被试间设计中的一个单元格,页面重新加载后受访者仍留在原单元格。页面和题目可以根据所分配的条件做判断,CSV 导出会把每位受访者的条件写入 participants.csv。

如何在线搭建列表实验?

使用一道 list_experiment 题,包含一个对照列表和一个敏感条目,再加一个两水平的条件来决定谁能看到敏感条目。survey_experiments 导出用均值差法估计敏感条目的发生率,并给出标准误和 95% 区间。随机化回答题的用法相同。

为满足 IRB 或 GDPR 的要求,问卷回答能留在我自己的服务器上吗?

能。Potato 运行在你选择的服务器上,回答写入这台服务器的磁盘。除非你配置了外部服务,例如托管的 AI 端点,否则不会向任何第三方发送数据。某套具体部署是否满足你的 IRB 或 GDPR 要求,由你所在的机构决定。

能在网络问卷中用提名生成器收集自我中心网络数据吗?

能。一道 ego_network 题在同一个问卷页面上依次运行各个环节,包括提名生成器、关于每位被提名者的问题、这些人之间的关系,以及在图上摆放位置。ego_network 导出写出 ego、alter 和 edge 三张表,并为每个网络写出一个 GraphML 文件;除非设置 export_names=true,否则不包含姓名。

延伸阅读

从这里开始

示例设计

每个设计都是可以下载并直接运行的 Potato 配置。

其他领域

全部应用场景