Harness Research 第3讲:统计分析

Aug 15, 2026·
Yn Lo
Yn Lo
· 5 min read
blog
Quote

抛弃繁琐的 SPSS 与 R 语言,拥抱通用高效的 AI 分析工作流。

让非统计学专业背景的护理人员也能拥有顶级的数据分析能力,打破技术壁垒。

系列导览

Harness Research 系列共 3 讲,从 Harness Engineering 理念出发,逐步构建 AI 驱动的科研工作流:

本讲(第3讲)覆盖科研的统计分析环节,分为两部分:第一部分是入门——通用九步 AI 分析工作流,适用于任何临床数据;第二部分是进阶——护理统计协作,以 Trae 为工具掌握"评估-执行"人机协作模型与六步协作流程。

想了解系列全貌与学习路径,请查看系列导览页


第一部分:通用统计分析工作流(入门)

为什么选择 AI 分析?

专为临床科研设计,解决 95% 以上的统计问题。

  • 极速高效:无需编写复杂的代码,AI 自动生成分析逻辑,从拿到数据到出结果只需几分钟。
  • 通用性强:不依赖特定的统计软件环境,一套逻辑解决各种常见的临床数据对比问题。
  • 技术平权:只需会描述需求,无需深厚的编程功底,AI 编程工具也可以是你的数据分析师。

准备工作

工欲善其事,必先利其器。

工具

工具的具体配置方法(MCP、Skill 等)已在第1讲:导论与工具配置中详细讲解,这里不再赘述。

技术储备

  • 必备善学的悟性与好奇心。比代码本身更重要的是你提问和探索的逻辑。
  • 可选:编程知识、统计学基础。有基础更好,没有也没关系,AI 会填补这部分空白。

核心工作流(9 步法)

这是我总结的一套人机协作的最佳实践,按照这个步骤,你可以解决绝大多数数据分析问题。

graph TD A["用户: 描述数据结构"] --> B["提供需求"] B --> C{"AI: 提供分析建议"} C -->|用户审核不通过| B C -->|用户审核通过| D["AI 撰写 Python 代码"] D --> E["辅助部署运行环境"] E --> F["运行代码 & 告知 AI 结果"] F --> G{"结果是否报错/需修正?"} G -->|是| H["AI 修正代码"] H --> F G -->|否| I["补充额外需求 (图表)"] I --> J["撰写统计报告"] style A fill:#e0f2fe,stroke:#0ea5e9 style D fill:#dcfce7,stroke:#10b981 style J fill:#f3e8ff,stroke:#a855f7

详细步骤拆解

  1. 数据认知:告诉 AI 你的数据长什么样(列名、数据类型、缺失情况)。
  2. 需求明确:告诉 AI 你想做什么(“比较两组患者的术后疼痛评分是否有差异”)。
  3. 方案共识:让 AI 提供统计学建议(“建议使用独立样本 t 检验…"),并由你确认。
  4. 代码生成:用户同意后,让 AI 撰写完整的 Python 分析脚本。
  5. 环境铺设:辅助 AI 安装所需的库(pandasscipymatplotlib 等)。
  6. 执行反馈:运行代码,将报错信息或初步结果直接复制给 AI。
  7. 迭代修正:根据反馈结果,AI 自动修正代码中的 Bugs。
  8. 可视化增强:补充额外需求,如绘制"小提琴图”、“热力图"等高阶图表。
  9. 报告生成:最后,让 AI 根据最终结果撰写一份标准的统计学报告。

提示:第 1 步"数据认知"之前,原始数据通常还需要脱敏、清洗与编码等预处理。这些护理场景下的数据准备细节将在本讲第二部分展开,这里先聚焦拿到"就绪数据"之后的分析流程。

实战案例复盘

Note

今天演示的资料是一个从未细看过的 Excel 文件。这是朋友委托帮忙分析的数据,他自己尝试分析后认为"两组没有差异”。

由于近期事务繁忙,我抽空利用上述的 9 步法快速完成了分析。结果发现,通过更精细的分组和可视化,两组在特定时间点存在显著差异。

视频演示

生成的代码示例

import pandas as pd
import scipy.stats as stats
import seaborn as sns
import matplotlib.pyplot as plt

# 1. 加载数据
df = pd.read_excel("clinical_data.xlsx")

# 2. 自动化正态性检验
def check_normality(data):
    stat, p = stats.shapiro(data)
    return p > 0.05

# 3. 智能选择统计方法
if check_normality(group_A) and check_normality(group_B):
    print("使用 t 检验")
    stat, p = stats.ttest_ind(group_A, group_B)
else:
    print("使用 Mann-Whitney U 检验")
    stat, p = stats.mannwhitneyu(group_A, group_B)

# 4. 可视化
sns.violinplot(x="Group", y="PainScore", data=df)
plt.title("Pain Score Distribution by Group")
plt.show()

第二部分:护理统计协作(进阶)

课程大纲

目标受众:护理人员(具备基础统计概念,无编程背景) 核心工具:Trae(AI 编程助手,免费调用 AI数据场景:① 随机对照试验(RCT)② 横断面调查研究

开场:从"问不到"到"做得出"

痛点共鸣:传统 AI 的局限 vs. Trae 的突破

  • 过去困境:问 ChatGPT"怎么算 t 检验",它给你一段公式文字,但你还得打开 SPSS 点菜单,容易出错
  • Trae 的变革:AI 直接在你的电脑里写代码、跑数据、出图,从"口头指导"变成"手把手带教"
  • 核心理念:你不是在"用软件",而是在"带一个会编程的实习生"——它动手,你指挥,不懂就问

工具认知——为什么是 Trae?

AI 辅助统计的三次进化

  1. 第一代:对话顾问(如早期 ChatGPT)
    • 只能"告诉"你怎么做:“你应该做 t 检验”
    • 问题:说完你还得自己去操作,步骤多容易出错,遇到报错无处可问
  2. 第二代:代码生成器(如 GitHub Copilot)
    • 能写代码,但要在编辑器、终端、浏览器间来回切换
    • 问题:代码写出来了,运行报错还得自己搜解决方案,对护士不友好
  3. 第三代:闭环协作环境(Trae/Cursor)
    • 一体化:AI 就在工作区里,左边写代码,右边看结果,报错直接现场修
    • 对话式编程:你描述需求 → AI 写代码 → 运行出结果 → 看不懂就问 → AI 解释 → 修改,全程在同一窗口完成
    • 护士友好度:像有个统计学助教坐在你旁边,你指哪它打哪,问什么答什么

Trae 的独特优势

工具AI 调用费用配置难度适合人群
Trae免费图形界面,简单易上手护理学生、初学者
Cursor每月 $10-20需熟悉编辑器有预算的专业用户
Claude Code免费但需 CLI命令行操作,学习曲线陡开发者

Trae 的安装与配置方法已在第1讲:导论与工具配置中详细介绍,本讲不再重复。

一句话定位:Trae = 一个永远耐心、不会嫌你问题多、且能直接动手干活的统计助教

人机协作的"评估-执行"分工模型

护理评估护理操作是护理工作中最经典的分工模式——评估护士负责整体判断和决策,执行护士负责具体操作。人机协作与此高度类似

护士角色(评估者)AI 角色(执行者)协作要点
护理评估:全面了解患者病情、制定护理计划护理操作:按照医嘱和护理计划执行具体操作评估者把握方向,执行者高效落实
判断数据异常:收缩压 220 是录入错误还是真实危重症?执行数据清洗:按指令标记、处理异常值追问:“这个异常值保留和删除,对结果影响大吗?”
选择统计方法:选协方差分析(控制基线差异)而非简单 t 检验立即生成代码:按选定方法编写并运行确认:“ANCOVA 的三个前提假设,我的数据满足吗?”
临床解读:“β=-0.35"意味着"疼痛教育每增加 1 个频次,NRS 评分降低 0.35 分”提供效应量参照:告诉你在护理研究中这个效应量算大还是小深挖:“和同类研究的效应量比,这个结果如何?”

“不懂就问"文化(关键原则)

  • 禁止假设:不要假设 AI 知道你的科室特点(如 ICU 的 APACHE 评分特殊性),主动告知并追问
  • 术语必问:当 AI 说"异方差性"“多重共线性"时,立即要求:“请用护士能听懂的话解释,并告诉我怎么解决”
  • 追问模板
    • “我是 [XX 科室] 护士,这个结论在我科临床实践中意味着什么?”
    • “如果审稿人质疑这个分析方法,我该怎么辩护?请帮我准备 3 个回应理由”
    • “这段代码我看不懂,请逐行注释,并告诉我如果改 XX 参数会怎样”

为什么 Trae 能做到可靠统计?

“所见即所得” vs. “黑箱幻觉”

防幻觉的核心机制:代码透明化

  • 传统风险:AI 直接说"p=0.02”,可能是编的(幻觉)
  • Trae 保障:AI 生成 Python 代码实际运行返回真实结果。你能看到计算公式、数据来源、每一个中间值
  • 护士的验证权:你可以问:“请把计算 t 值的手工公式步骤也展示出来,我要核对”

与传统工具对比(聚焦可靠性)

维度SPSS 菜单操作Trae AI 协作
错误类型点错菜单(如选成配对 t 检验)、漏看前提条件AI 自动检查前提(如正态性),不满足时会提醒你并给出替代方案
过程追溯需手动截图保存每一步自动生成分析日志(代码+注释+结果),直接贴论文附录
纠错成本发现错误需从头重新点菜单改一个参数,AI 自动重新跑全流程,秒级修正
知识获取翻教材查公式含义选中代码直接问 AI:“这行在做什么?”即时教学

护士专属可靠性保障

  • 医学逻辑校验:AI 可能建议做复杂回归,你要追问:“根据 CONSORT 声明,RCT 分析应该遵循 ITT 原则,你考虑了吗?”
  • 结果合理性审查:当 AI 给出"干预组死亡率 100%"(明显错误),人因判断立即叫停

数据处理——从原始数据到分析数据

重要原则:虽然 AI 可以辅助数据处理,但你应当了解常规统计数据的处理步骤。AI 是助手,你才是主人。

基础数据处理五步流程:脱敏 → 清洗 → 编码 → 衍生 → 导出。这里强调两个护理场景要点:

  • 脱敏是底线:姓名、床号、住院号、身份证号等直接标识符必须删除或编码;当科室人数很少时,性别+科室等间接标识符组合也可能识别个人
  • 导出格式:首选 CSV(UTF-8 编码),避免 Word 表格、PDF 截图——AI 无法直接读取

AI 操作前最后确认

“请帮我检查这份数据有没有任何可能识别患者身份的信息”

六步协作流程——每个节点都有"追问点”

核心逻辑:每一步都是对话,不是单向指令。重要原则——背景信息从第一步就注入,让 AI 带着临床语境分析数据。

Step 1:注入背景 + 数据结构认知(同时进行)

背景告知优先:先告诉 AI 你的研究场景,让后续分析都在正确的临床语境下进行

  • 你说(背景):

    “这是 [某科室] 的 [某种研究设计],主要结局是 [XX],样本量 [XX],分组情况是 [XX],混杂因素我猜测可能包括 [XX]” 举例:“这是骨科病房的前瞻性 RCT,主要结局是第 7 天 NRS 疼痛评分,每组 10 人,预计年龄和基线 NRS 可能是混杂因素”

  • 你说(数据认知):“这是我的数据,请先做体检”

  • AI 做:生成数据字典(变量类型、缺失值分布)

必追问(带着背景问):

  • “我的研究是 RCT,缺失值主要集中在失访患者,这在 RCT 中属于什么类型的缺失?对结论偏倚方向的影响是什么?”
  • “基于 RCT 设计,有哪些护理领域常见的统计误区我需要警惕?”
  • “变量 X 被识别为’连续型’,但在临床上它是 Likert 5 级量表,这会影响分析方法吗?”

Step 2:AI 初步诊断(让 AI 当侦探)

  • 你说:“给出数据质量报告,指出 3 个最可能影响分析质量的问题”
  • AI 做:列出异常值、分布偏态、样本量不足等
  • 必追问
    • “针对第 2 个问题(基线不均衡),除了统计调整,我在论文里该怎么用文字解释?”
    • “如果我想提高检验效能(Power),AI 能帮我做样本量回溯分析吗?”

Step 3:方法论协商(反复打磨)

  • 协作模式:不是"AI 给方案 → 你同意",而是多轮对话
  • 追问策略
    • “方案 A(简单线性回归)和方案 B(分层回归)各有什么优缺点?用临床意义而不仅是统计学显著性来比较
    • “如果我选择方案 B,结果更难解释,审稿人可能怎么质疑?请帮我预判 3 个风险”
    • 确认指令:“请用表格对比各方法的前提假设,并检查我的数据满足哪些”

Step 4:代码执行与透明化学习(边看边问)

  • AI 做:配置环境(自动装包)、编写代码、运行
  • 你的动作要求 AI 逐行教学
  • 追问模板
    • “请把这段代码分成’数据准备-分析核心-结果提取’三块,每块用一句话告诉我目的”
    • “如果我想把置信区间从 95% 改成 99%,该改哪一行?改了后 p 值门槛要调整吗?”
    • “运行报错 ‘ConvergenceWarning’,这是什么意思?对我的结论影响大吗?”

Step 5:报告撰写与临床转化(医学升华)

  • AI 做:生成统计结果表格、森林图、CONSORT 流程图(RCT)
  • 必追问(体现护士专业价值)
    • “这个统计显著的结果,在 [我的科室] 日常护理工作中可操作化的建议是什么?”
    • “请用 SBAR 沟通模式帮我写一段向护士长汇报研究结果的简报”
    • “基于这个发现,AI 能帮我设计一个后续研究的选题吗?考虑可行性限制”

常见陷阱与急救包

常见报错与应对

报错信息含义护士能理解的解释如何修正
SyntaxError代码语法错误“AI 写的句子有错别字,Python 看不懂”让 AI"检查这段代码的语法"
KeyError找不到变量名“AI 叫了一个人的名字,但花名册上没有”核对列名大小写,检查是否有空格
ValueError: could not convert string to float数据类型不匹配“Excel 里有些格是文字不是数字,Python 算不了”检查原始数据,可能是"-“或"“而非空值
ConvergenceWarning模型未收敛“计算转太多圈还没找到答案,放弃了”通常数据量不足或变量间相关性太强
MemoryError内存不足“电脑累了,跑不动了”减少分析变量或分批处理

救命追问模板

当报错时,这样问 AI: “请用最简单的话解释这个报错,并告诉我下一步怎么改。如果涉及统计学概念,请用护理场景类比。”

当结果看起来不对时: “这个结果符合常识吗?(比如死亡率应该在 0-100% 之间)如果不符合,可能是哪一步出问题了?”

当 AI 的建议太复杂时: “我是一个护理研究生,没有统计学基础。能否提供一个更简单的替代方案,同时告诉我这个方案有什么局限性?”

Mini Case——完整协作演示

案例背景

研究问题:比较"递进性疼痛教育"干预组与常规护理对照组在干预 7 天后 NRS 疼痛评分的差异

数据概况

  • 样本量:20 人(干预组 10 人,对照组 10 人)
  • 变量:编号、组别、性别、年龄、入院时 NRS(基线)、第 7 天 NRS(结局)

模拟数据(CSV 格式):

编号,组别,性别,年龄,基线NRS,第7天NRS
01,干预组,女,45,7,3
02,对照组,女,48,6,5
03,干预组,男,52,8,4
...

六步协作全程对话

Step 1:注入背景 + 数据结构认知

(背景):这是骨科病房的前瞻性 RCT,主要结局是第 7 天 NRS 疼痛评分,每组 10 人,预计年龄和基线 NRS 可能是混杂因素。

(数据):这是我的数据,请先做数据质量检查

AI:[生成数据字典,显示 20 行、6 列,无缺失值,变量类型正确]

(追问):基于 RCT 设计,有哪些护理领域常见的统计误区我需要警惕?

AI 提醒

  1. 未报告 ITT 分析:RCT 应遵循 ITT 原则(所有随机化患者均纳入分析)
  2. 忽视脱落:需报告每组脱落人数及原因
  3. 多重比较:如果有多个结局,不要重复做 t 检验导致假阳性增加

(追问):基线 NRS 是"连续型”,但我在录入时有些值是整数有些是小数,这会影响分析吗?

AI:不会,连续型变量可以接受任意数值。你的基线 NRS 范围是 5-9,符合 Likert 量表特征。


Step 2:AI 初步诊断

:给出数据质量报告,指出最影响分析质量的问题

AI:发现 2 个潜在问题:

  1. 干预组和对照组基线 NRS 不完全匹配(干预组均值 7.2,对照组 6.4),可能需要统计调整
  2. 样本量较小(每组 10 人),检验效能可能不足

(追问):针对第 1 个基线不均衡问题,除了统计调整,我在论文里该怎么解释?

AI:可从以下角度解释:

  • 说明随机分配已执行,基线差异为随机变异
  • 报告基线特征比较表(表 1)
  • 采用 ANCOVA 调整基线差异
  • 进行敏感性分析

Step 3:方法论协商

:我想比较两组第 7 天 NRS 差异,初步想用 t 检验

AI

  • 方案 A:独立样本 t 检验(简单,但不调整基线)
  • 方案 B:协方差分析 ANCOVA(调整基线 NRS 差异,更准确)
  • 方案 C:非参数检验(Mann-Whitney,当数据不正态时)

(追问):用临床意义而非统计学显著性来比较方案 A 和 B

AI

  • 方案 A 结论:“干预组比对照组低 2 分”
  • 方案 B 结论:“调整基线差异后,干预组比对照组低 2.1 分”
  • 临床意义:两者均显示干预有效,但 B 更准确反映"干预本身的效果"而非"基线差异+干预效果”

:好,我选择方案 B


Step 4:代码执行

AI:[生成 Python 代码,包含数据读取、ANCOVA 分析、结果输出]

(追问):请把这段代码分成三块,每块用一句话告诉我目的

AI

  • 数据准备:读取 CSV 文件,提取组别和 NRS 变量
  • 分析核心:执行 ANCOVA,调整基线 NRS,比较组间差异
  • 结果提取:输出 F 值、p 值、效应量、估计边际均值

(追问):如果我想把置信区间从 95% 改成 99%,改哪一行?

AI:找到 alpha=0.05 那一行,改成 alpha=0.01 即可。p 值门槛也相应变为 0.01。


Step 5:结果解读与论文写作

AI 输出结果

ANCOVA结果:
F(1,17) = 12.35, p = 0.003
效应量 η² = 0.42
干预组调整后均值 = 3.2 (95%CI: 2.5, 3.9)
对照组调整后均值 = 5.3 (95%CI: 4.6, 6.0)

:请帮我把结果写成论文表格形式

AI

指标干预组 (n=10)对照组 (n=10)组间差异 (95%CI)p 值
第 7 天 NRS(调整后)3.2 (2.5-3.9)5.3 (4.6-6.0)-2.1 (-3.4, -0.8)0.003

(追问):这个结果如何转化为我们骨科日常护理建议?

AI 建议

  1. 在患者入院时即进行疼痛教育宣教
  2. 每日评估 NRS 评分,及时反馈
  3. 将"递进性疼痛教育"纳入护理常规流程

结果解读与论文表格写法

统计结果 → 论文表述的转换模板

AI 输出原始结果

β = -0.35, 95%CI [-0.52, -0.18], p < 0.001

你应该学会写的论文表述

“多因素线性回归结果显示,在控制年龄、基线 NRS 后,干预组患者第 7 天 NRS 评分平均比对照组低 0.35 分(95%CI: 0.18-0.52),差异具有统计学意义(p<0.001),表明递进性疼痛教育可显著降低患者疼痛程度。”

效应量的临床意义解读

效应量统计含义护理实践解读
小效应 (d≈0.2)组间差异约 1/5 SD临床意义有限,需权衡实施成本
中效应 (d≈0.5)组间差异约 1/2 SD具有临床意义,可考虑推广
大效应 (d≈0.8)组间差异约 4/5 SD显著临床价值,值得广泛推广

你的追问

“这个效应量在护理干预研究中算大还是小?请和同类 RCT 研究做个对比。”

CONSORT Checklist 中与统计相关的核心条目

条目内容AI 辅助
7b样本量计算依据AI 可帮你回顾计算过程
12主要和次要结局的统计分析方法AI 可帮你描述方法
17a疗效和危害指标的估算AI 输出效应量和置信区间

结尾与行动清单

带走三句话

  1. AI 是你的实习生:不会嫌你问得多,只怕你不问(医学背景必须交代清楚)
  2. 代码即证据:要求 AI 始终展示"怎么算的",而不仅是"算出来是什么"
  3. 追问公式:看到不懂的术语 → “请用护理场景类比解释”;看到结果 → “这对患者意味着什么”

行动清单

  • 在自己电脑上安装 Trae(免费,配置见第1讲
  • 准备一份脱敏后的模拟数据(10-20 行即可)
  • 先用本讲第一部分的 9 步工作流跑通一次通用分析
  • 再用本讲第二部分的六步流程走一遍护理协作分析
  • 把 AI 生成的代码保存下来,作为未来分析的模板

Yield Nursing Logic, Optimized.

Weibo
Douban
Yn Lo
Authors
Yn Lo (Yield Nursing Logic, Optimized)
硕士 | 主管护师 | 程序员
护理界的极客,代码圈的男丁格尔。