浏览 AI使用教程

AI 数据分析代码怎么写:先定分析规格,再核对 R、Python 和 SPSS 结果

AI 生成的分析代码能运行,只证明语法和当前数据没有立即报错。先冻结分析规格、字段字典和脱敏小样本,再要求分步检查、已知结果重算和环境记录。

按实际操作顺序推进

每完成一段就检查当前输出,确认结果符合预期后再继续。

  1. 01准备让 AI 先生成检查,再生成分析;遇到未知项必须停下来
  2. 02执行可运行的最小Python练习
  3. 03检查先证明数据读对,再证明变量算对,最后才讨论模型结果
  4. 04完成能输出结果不代表可以进入论文
先看“代码能跑”的假安全感

AI 把 9 当成真实评分、把参考组设反,最后仍生成了一张漂亮显著性表

数据字典规定满意度 1–5,数字 9 代表拒答;分组字段 0 是干预、1 是对照。学生只把 CSV 和一句‘比较两组满意度’交给 AI。代码顺利运行,却把 9 纳入均值,把 1 自动当成参考组,还对同一参与者的重复测量按独立样本处理。输出格式完整,但回答的已不是原来的统计问题。

AI 不知道字段的研究含义,也不会因为代码成功退出就自动发现设计错误。正确顺序是先由研究者和统计责任人写分析规格,再提供最小可复现、已脱敏的数据结构;代码必须分成导入、校验、变换、分析和导出,并用人工可算的小样本和另一条可信路径交叉验证。

  • 写出软件无关的分析规格
  • 让代码主动暴露字段和样本问题
  • 交付可复现、可审查的分析包
先写规格再选语言

R、Python 和 SPSS 可以换,研究口径不能跟着工具漂移

分析规格字段必须写到什么程度缺失时会怎样错
研究问题与目标估计比较对象、结局、时间、目标人群和效应尺度自动选择一个方便的检验,却回答了别的问题
数据身份文件版本、主键、一人多行规则、分析单位把重复测量当独立样本或重复计数
变量定义类型、单位、编码、参考组、派生公式和时间点参考方向、单位或类别被静默改写
缺失与排除特殊编码、缺失类型、完整案例或插补计划、排除原因把 9/999 当真值,或不同模型使用不同样本
统计方法模型、协变量、聚类/重复、假设检查和敏感性分析套用默认模型并忽略设计结构
输出规范描述统计、效应量、区间、样本量、精度和图表单位只返回 p 值或无法与正文对账
复现信息语言、版本、包、随机种子、命令、警告和会话信息同一脚本换环境后结果变化却无法解释
只在允许的数据环境中使用

让 AI 先生成检查,再生成分析;遇到未知项必须停下来

可复制使用

让 AI 先生成检查,再生成分析;遇到未知项必须停下来

我需要把一份已经确定的分析规格实现成可审查脚本。先不要选择统计方法,也不要先跑模型;如果下面任何一项没写清楚,先列缺口并停在这里。

【软件】R / Python / SPSS 及版本:
【输入】脱敏小样本文件、数据版本/哈希、主键和一人多行规则:
【字段字典】字段名、含义、类型、单位、编码、特殊缺失值、时间点:
【研究问题】
【主要结局与目标效应尺度】
【比较组与参考组】
【协变量及纳入理由】
【缺失、排除、重复测量或聚类处理】
【预先指定的模型、假设检查和敏感性分析】
【输出要求】每组 N、描述统计、效应量、95% 区间、p 值、图表和机器可读结果:

请按五个可单独运行的部分输出:
1. 导入与校验:打印行列数、主键重复、类型、类别、范围、特殊缺失和样本流转;不符合字典就停止。
2. 变换:保留原字段,逐个创建派生变量,并用正常、边界、缺失行展示前后值。
3. 分析:只实现我明确指定的方法,说明每个模型回答哪个问题,不用默认检验替我决定。
4. 诊断:输出警告、假设检查、实际分析样本和未纳入的行。
5. 导出与复现:从结果对象生成表图,记录软件/包版本、随机种子、命令、日志和输入版本。

代码之外再给“人工必须确认”的清单。禁止上传未经批准的敏感数据;不要把代码成功运行、p 值或漂亮图表写成研究结论。

统计方法本身仍需由具备相应能力的人确认。提示词只能约束交付过程,不能证明分析正确。

教学示例

同一人两行,先按参与者配对再算变化

规格本练习约定
环境Python 3,仅标准库;保存为check_scores.py,在终端运行python check_scores.py
字段id唯一标识参与者;group中0=干预、1=对照;visit为baseline/followup
评分1至5有效,9为拒答;9必须先转缺失,不能加入均值
分析每人随访分减基线分;只演示完整前后测者的分组均值差,不做p值或因果推断
缺失P02随访为9,排除这一人的变化值,保留排除ID;真实研究是否用完整案例须事前决定

8行、4人均为虚构教学数据。该样例只验证数据口径,不是处理真实重复测量研究的通用统计方案。

可复制练习

可运行的最小Python练习

教学输入

可运行的最小Python练习

import csv, io, json, statistics

raw = """id,group,visit,score
P01,0,baseline,2
P01,0,followup,4
P02,0,baseline,3
P02,0,followup,9
P03,1,baseline,2
P03,1,followup,3
P04,1,baseline,3
P04,1,followup,3
"""
# 教学字典:0=干预,1=对照;1-5为评分,9=拒答。
# 分析单位为参与者;仅演示完整前后测的个体变化及分组均值。
people = {}
for row in csv.DictReader(io.StringIO(raw)):
    pid, group, visit = row["id"], row["group"], row["visit"]
    if not pid or group not in {"0", "1"} or visit not in {"baseline", "followup"}:
        raise ValueError("字段不符合字典: " + repr(row))
    value = int(row["score"])
    if value not in {1, 2, 3, 4, 5, 9}:
        raise ValueError("评分超出字典: " + repr(row))
    p = people.setdefault(pid, {"group": group})
    if p["group"] != group or visit in p:
        raise ValueError("同人分组不一致或访视重复: " + pid)
    p[visit] = None if value == 9 else value

changes = {"0": [], "1": []}
excluded = []
per_person = []
for pid, p in people.items():
    if p.get("baseline") is None or p.get("followup") is None:
        excluded.append(pid)
        continue
    delta = p["followup"] - p["baseline"]
    changes[p["group"]].append(delta)
    per_person.append({"id": pid, "group": p["group"], "change": delta})
if not all(changes.values()):
    raise ValueError("至少一组没有完整前后测,不能计算两组均值差")
means = {g: statistics.mean(v) for g, v in changes.items()}
result = {
    "participants": len(people),
    "complete_pairs": len(per_person),
    "excluded_ids": excluded,
    "per_person": per_person,
    "mean_change_intervention": means["0"],
    "mean_change_control": means["1"],
    "difference_intervention_minus_control": means["0"] - means["1"]
}
print(json.dumps(result, ensure_ascii=False, indent=2))

预期结果由下面手算给出;没有把本页示例标为真实研究或已运行的模型输出。改变字典或分析单位时需同步改代码。

教学示例

先手算,再逐字段核对程序输出

对象手算预期输出
P01,干预4−2变化2
P02,干预随访9是拒答excluded_ids包含P02;不能得到变化6
P03,对照3−2变化1
P04,对照3−3变化0
人数4名参与者;3个完整配对participants=4,complete_pairs=3;不能当8个独立人
组均值干预=2;对照=(1+0)/2=0.5均值差(干预−对照)=1.5

若改为R/SPSS,继续使用同一CSV、9的缺失定义、0/1标签、个体变化和同一排除名单;先对齐这几个确定结果,再讨论真实分析模型。

代码生成后分层验收

先证明数据读对,再证明变量算对,最后才讨论模型结果

  1. 01

    人工核对导入摘要

    对照原始文件检查行列数、主键、字段类型、类别水平、范围和特殊缺失值。任何静默转换先修复,不继续跑模型。

  2. 02

    逐个核对派生变量

    抽取正常、边界和缺失记录,手工计算派生值;保留原字段、公式、单位和时间点。

  3. 03

    用可手算的小数据测试

    构造几行能够预知均值、差值、分组和缺失结果的数据,检查参考方向、分母和排除规则。不要只用真实大表测试。

  4. 04

    检查模型实际使用的样本

    输出每一步纳入、排除和缺失数量,按组列出最终 N;确认重复测量、聚类和权重确实进入方法。

  5. 05

    与独立路径交叉验证

    对关键结果使用成熟软件、另一段独立实现或统计人员复算。只比较最终 p 值不够,还要比较 N、估计、标准误和区间。

  6. 06

    保存完整分析包

    固定输入版本、脚本、环境、日志、警告、结果对象和导出文件。论文数字必须从这些对象生成,不在 Word 或图片里手工修正。

这些情况必须停止

能输出结果不代表可以进入论文

本篇依据

可复现信息和统计责任不能外包给代码生成器