PsychPen
AI加持的在线统计分析和数据可视化工具 / AI-powered web-based statistic and data visualization tool.
Install / Use
/learn @LeafYeeXYZ/PsychPenREADME
- [ ] TODO:
webr v0.5.7+与vite存在兼容性问题, 暂时回退到v0.5.6, 等待webr修复后再升级
PsychPen
AI加持的在线统计分析和数据可视化软件, 立即体验: https://psychpen.leafyee.xyz
|
|
|
|
| :---------------------: | :---------------------: | :---------------------: |
|
|
|
|
|
|
|
|
文档更新可能滞后于软件版本更新, 请以软件实际功能为准
引用信息
如果你在学术论文中使用了 PsychPen, 请引用以下信息 (APA格式) (请注意年份和版本号区别)
v2.0.0-最新版本:叶一杉. (2025). PsychPen: AI加持的在线统计分析和数据可视化工具 (v2.x.0) [Computer software]. GitHub. https://github.com/LeafYeeXYZ/PsychPen/tree/v2.x.0v1.9.0:叶一杉. (2025). PsychPen: 在线统计分析和数据可视化工具 (v1.9.0) [Computer software]. GitHub. https://github.com/LeafYeeXYZ/PsychPen/tree/v1.9.0v1.0.0-v1.8.0:叶一杉. (2024). PsychPen: 在线统计分析和数据可视化工具 (v1.x.0) [Computer software]. GitHub. https://github.com/LeafYeeXYZ/PsychPen/tree/v1.x.0
目录
- PsychPen
- PsychPen 使用文档
- PsychPen 开发文档
PsychPen 使用文档
1 项目简介
PsychPen 是一个AI加持的在线统计分析和数据可视化软件. 相比于传统的心理学统计软件, PsychPen 具有以下优势:
- 无需下载安装: PsychPen 直接在浏览器中运行, 支持电脑、平板、手机等多种设备
- 跨平台: 可以在 Windows、macOS、Linux、iPadOS、iOS、HarmonyOS 等多种系统中运行
- 初学者友好: PsychPen 交互设计优良, 操作简单, 文档齐全
- 与AI深度集成: PsychPen 具有内置的、与各个模块深度集成的 AI 辅助功能, 让使用者能通过自然语言完成统计处理和分析
- 功能丰富: 具有统计分布动态抽样演示、统计量与P值转换、交互式3D图表、词云图等独特功能
- 开源免费: PsychPen 是开源项目, 你可以在遵守开源协议的前提下自由使用、修改、分发, 也欢迎你参与到项目的开发中
PsychPen 有 数据、变量、绘图、统计、工具 五大主要功能模块, 以及 AI辅助分析 和 R语言运行器 (基于 WebAssembly 和 webR 项目) 两大独立辅助模块, 本文档将分别介绍它们的使用方法
2 数据视图
数据视图包含数据导入导出功能和一些软件设置
2.1 数据导入
进入 PsychPen 主页, 通过点击 点击导入数据 按钮, 选择你的数据文件 (支持 .csv, .xlsx, .dta, .parquet, .sav, .json, .numbers 等格式) 即可导入数据. 导入成功后, 你可以在数据视图中看到你的数据表格
| 导入前 | 导入后 |
| :--------------------: | :--------------------: |
|
|
|
2.2 数据预览/导出/删除
导入数据后, 你可以在数据视图中查看数据表格. 点击表头可以对数据进行排序; 按住并拖动表头的竖线可以调整列宽; 按住并拖动表头单元格可以调整列的顺序. 如果在变量视图定义了数据筛选规则, 还可以点击上方漏斗图标查看当前生效的数据筛选表达式

点击左上角 导出数据 按钮, 在弹窗中输入文件名 (也可以留空) 并选择你要导出的数据格式 (支持 .csv, .xlsx, .numbers, .json), 点击 确定 即可导出数据
导出的数据是经过 定义缺失值、缺失值插值、生成标准化/中心化/离散化子变量、数据筛选 等处理后的数据, 即在数据视图实际显示的数据

点击左上角 删除数据 按钮, 在确认框中确认删除即可删除当前的数据表格. 删除数据的操作仅将数据从 PsychPen 内部移除, 不会影响到数据的原始文件. 删除后, 你可以重新导入数据 (注: 网页刷新不会使数据丢失, 必须先删除原数据才能导入新数据)

2.4 AI辅助分析设置
PsychPen 创新性地引入了 AI 辅助分析功能, 可以让 AI 助手基于你的数据和需求, 针对性地给出建议或直接替你操作 PsychPen 完成变量处理、统计分析和图表绘制
PsychPen 支持所有实现了 function calling 并兼容 OpenAI API 规范的大语言模型 (如 DeepSeek-V3、GPT-4o、Qwen-max), 你只需根据你所用的 AI 模型提供商的使用文档, 在右上角的 AI辅助分析设置 中点击 开启AI辅助分析 按钮, 并填写 baseUrl、apiKey、modelId 等参数, 之后点击 确认 按钮, 即可点击页面右上角的 Ask AI 按钮, 与 AI 助手进行交互

2.5 AI助手使用示例
在根据2.4 AI辅助分析设置 设置好 AI 辅助分析后, 你可以点击右上角的 Ask AI 按钮, 与 AI 助手进行交互. 你可以询问它 PsychPen 的使用方法、对你的数据的见解、统计分析的建议等, 也可以直接指示它帮你操作 PsychPen 完成数据导出、变量处理、统计分析、图表绘制等操作
注: 以下所有示例操作如果使用性能更强/弱的AI模型, 可能会得到更好/差的效果
2.5.1 让AI助手操作数据导出
以下示例使用
qwen-plus-latest(2025.01.17更新版本) 模型

2.5.2 让AI助手操作变量标准化
以下示例使用
qwen-plus-latest(2025.01.17更新版本) 模型

2.5.3 让AI助手操作计算变量
以下示例使用
deepseek-chat(deepseek-v3-0324版本) 模型

2.5.4 让AI助手操作数据筛选
以下示例使用
qwen-plus-latest(2025.01.17更新版本) 模型

2.5.5 询问AI助手数据分析建议
以下示例使用
qwen-plus-latest(2025.01.17更新版本) 模型
|
|
|
| :---------------------: | :---------------------: |
2.5.6 让AI助手介绍PsychPen
以下示例使用
qwen-plus-latest(2025.01.17更新版本) 模型

2.5.7 让AI助手解释统计结果
以下示例使用
deepseek-chat(deepseek-v3-0324版本) 模型
|
|
|
| :---------------------: | :---------------------: |
3 变量视图
变量视图包含了一系列变量处理相关的功能
注: 变量处理的内部顺序是:
定义缺失值->缺失值插值->标准化/中心化/离散化->描述统计->数据筛选->计算变量; 变量视图所展示的信息、生成新变量所用统计量为数据筛选前的信息, 数据视图、统计视图、绘图视图所用的是数据筛选后的数据
3.1 变量预览
在变量表格中, 你可以查看你导入的数据表格中的变量信息. 包括变量名、类型 (决定了能否用该变量进行一些数学运算)、缺失值情况、描述统计信息 (如均值、标准差、最大值、最小值) 等

注: PsychPen 延用 PsychLib 的计算众数的方式: 如果有多个众数, 则显示皮尔逊经验公式计算的众数 (中位数 x 3 - 均值 x 2)
3.2 定义缺失值
通常, 在研究数据中不会直接将缺失值留空, 而是将缺失值标注为特定的值, 以便于后续的数据处理 (例如用 -1、-99、99 等值表示缺失值). 在变量视图中, 你可以点击 定义缺失值 按钮, 在此页面定义这些缺失值, 以便将它们删除或插值
在 定义缺失值 页面, 你可以选择变量 (可多选或直接选择 全部变量), 输入缺失值的值 (如果要取消定义缺失值, 可以将输入框留空), 点击 确认 按钮即可定义缺失值. 设置缺失值后, 你可以在 变量表格 中看到定义的缺失值的情况

3.3 缺失值插值
研究中可能会因为各种原因导致数据缺失, 如果样本量较大, 直接删除缺失值是一个不错的选择; 但当实验样本比较珍贵, 或直接删除缺失值会带来误差时, 研究者往往会选择合适的插值法来将缺失值替换为有效值. 在变量视图中, 你可以点击 缺失值插值 按钮, 在此页面选择合适的插值方法, 以便将缺失值替换为有效值
在 缺失值插值 页面, 你可以选择变量 (可多选), 选择插值方法 (均值、中位数、最临近点插值、拉格朗日插值), 如果使用了后两种插值方法, 还需要选择插值参考的变量. 选择好插值方法后, 点击 确认 按钮即可进行插值. 插值处理后, 你可以在 变量表格 中看到插值的设置情况

3.4 中心化/标准化/离散化
在数据分析中, 有时需要对原始数据进行处理. 标准化是指把 x 转换为 (x - μ) / σ, 从而让数据的均值为 0, 方差为 1; 中心化是指把 x 转换为 x - μ, 从而让数据的均值为 0, 方差不变; 两种处理均不会改变数据的分布形状. 离散化是指把连续变量通过某种规则转换为离散变量, 以便于分组分析
在变量视图中, 你可以点击 中心化/标准化化/离散化 按钮, 在此页面选择变量 (可多选), 并选择一个或多个子变量; 如果选择了离散化, 你还需要选择离散化的方法 (等宽、等频、聚类分析 k-means) 和离散化的区间数. 生成子变量后, 你可以在 变量表格 和 数据 视图中看到生成的子变量
注: 生成的子变量名为
xxx_标准化、xxx_中心化、xxx_等宽离散、xxx_等频离散、xxx_聚类分析离散, 其中xxx为原变量名

3.5 数据筛选
数据筛选可以让你根据自己的需求, 选择性地使用满足过滤规则的数据来进行统计分析和数据可视化. 在变量视图中, 你可以点击 数据筛选 按钮, 在此页面输入过滤表达式 (见 3.7 表达式语法), 点击 确认 按钮即可生成新数据. 生成后, 你可以在 数据视图 中看到过滤后的数据 (而变量视图中的变量描述统计信息仍是过滤前数据的信息)
注意: 如果筛选所用的表达式中的任意变量为缺失值, 则该行数据会被自动过滤; 如果需要保留该行数据, 请提前进行缺失值插值

3.6 生成新变量
在心理学和教育学研究中, 通常需要对原始数据进行一些计算, 以得到最终用于分析的变量. 在变量视图中, 你可以点击 生成新变量 按钮, 在此页面输入计算表达式 (见 3.7 表达式语法) 和新变量名, 点击 计算 按钮并确认即可生成新变量. 生成后, 你可以在 变量表格 和 数据视图 中看到生成的新变量

3.7 表达式语法
在计算变量和数据筛选中, 你可以使用 PsychPen 内置的表达式语法来生成新变量或进行筛选数据. 表达式中, 你可以使用 :::变量名::: 来引用其他变量的值, 并通过 + - * / 等运算符进行计算、通过 > < >= <= 等运算符进行判断. 下面是一些常见的表达式语法示例:
- 在计算变量中, 给数个题目的分数求均值:
( :::题目1::: + :::题目2::: + :::题目3::: + :::题目4::: + :::题目5::: ) / 5 - 在计算变量中, 处理反向计分的题目:
( :::题目1::: + ( 6 - :::题目2::: ) + :::题目3::: + ( 6 - :::题目4::: ) + :::题目5::: ) / 5 - 在计算变量中, 计算开方、平方、绝对值:
( :::题目1::: ** 2 ) + ( Math.sqrt( :::题目2::: ) ) + ( Math.abs( :::题目3::: - :::题目4::: ) ) - 在计算变量中, 手动进行变量标准化:
( :::题目1::: - mean(:::题目1:::) ) / std(:::题目1:::)(仅为演示, 实际使用时推荐直接使用标准化/中心化/离散化功能) - 在计算变量中, 将高/低分数标记为
高/低::::分数::: >= mean(:::分数:::) ? '高' : '低' - 在数据筛选中, 筛选出变量
a大于变量b的数据::::a::: > :::b::: - 在数据筛选中, 筛选出变量
a大于均值的数据::::a::: > mean(:::a:::) - 在数据筛选中, 筛选出变量
a大于均值且小于中位数的数据:( :::a::: > mean(:::a:::) ) && ( :::a::: < q2(:::a:::) )
实际上, PsychPen 的表达式语法在将变量替换为其数值后, 就是一个
JavaScript表达式, 所以你可以使用JavaScript的数学函数和逻辑运算符来进行计算和判断
3.7.1 变量相关语法
| 符号 | 含义 | | :------------------: | :---------------------------------
Related Skills
bluebubbles
352.0kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
slack
352.0kUse when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
111.1kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
