ARTICLE · 1044331
把 Excel 交给 AI 分析前,先让它交一张数据体检单
把 Excel 交给 AI 分析前,先让它交一张数据体检单
你有没有过这种时刻——数据表已经躺在对话框里了,手指悬在发送键上,突然想不起来:这几列的缺失值当时是怎么填的?两个表拼的时候有没有重复的人?单位到底是万元还是元?
然后你还是发出去了,因为"先跑跑看"。跑出来的结果挺漂亮,R² 也好看。至于那份表里到底有没有问题——你已经不记得了,而且现在也没法回去查了。
问题不在于 AI 会不会算错。真正的问题是:它不会告诉你数据本身有病。
它拿到一张有缺失、有重复、有量纲错位的表,照样能跑出结果,照样给你解释。它不会停下来问:"你这列里有两个数差了三个数量级,是单位没统一吧?"——它只会照算,把错误平滑地混进结论里。
所以真正该在分析之前做的一件事是:先让 AI 交一张数据体检单。
第一步:提示词,直接复制
下面这段整段复制,把你的表贴进去:
先不要分析,只做一件事:给我一张数据体检单。
规则:一、逐字段登记:字段名、数据类型、缺失条数、取值示例、单位是否明确;二、登记重复记录:哪些行可能是同一条记录重复出现,给出依据;三、登记异常值:数值明显偏离同列的,给出具体数值和偏离倍数;四、登记单位与量纲疑点:同一字段内是否存在量纲不一致;五、登记口径疑点:同一含义的取值写法不一致的地方;六、只登记你能从表里看到的事实,不要猜字段的业务含义,不要替我决定哪条要删、哪条要改;七、每条登记都要能回指到具体行号或行标识;八、最后单独列一张「待你确认清单」:列出你无法从表内确定、必须由我来回答的问题。
两处是刻意的。第六条那句"不要猜字段的业务含义"——这是整段的核心,AI 最大的越权不是算错,是替你猜"数字化投入的单位应该是万元";最后那条待确认清单——逼它把不知道的东西显式交回来,而不是含糊带过或自己填一个。
这个时候做实证的朋友又会说这不就是古法科研需要去做的吗?是的,现在我们只是把这些经典的方法交给了AI让他去完成而已。以此类推,你的课题组可能还沉淀了其他关于数据清理的方法,你都可以把它整理成一个清单发给 AI。
还有一个小的方法,很多导师可以用这种类型的方式去检验,组内学员的原始数据也许会有不同的发现~~
第二步:你会拿到什么
下面是一份真跑出来的体检单片段。输入是我们构造的演示数据(29 家企业、8 个字段,按真实数据常见的问题埋了缺陷),输出原样截取:
逐字段登记
字段 缺失条数 缺失行号 单位是否明确 员工数 1 行28 未标注单位 数字化投入 1 行5 未标注单位 营收 1 行29 未标注单位 利润率 1 行30 未标注单位(取值形态疑为百分数) 重复记录登记
疑似重复组 行号 依据 组1 行2 / 行9 成立年份同为 2015;营收同为 8600;行业同为制造业;员工数 320/325、数字化投入 120/125 极接近 组2 行4 / 行15 成立年份同为 2012;营收同为 32000;是否上市同为是;员工数 890/880、数字化投入 450/445 极接近 异常值登记
字段 行号 数值 同列对照 偏离倍数 数字化投入 行26 1,250,000 同列其余最大值 980 约 1,275 倍 营收 行27 520,000 同列其余最大值 68,000 约 7.6 倍 利润率 行10 -3.2 全列其余为正(3.8~13.2) 同列唯一负值
读法就一条:每条登记都要能回指到行号,对不上的整条作废。
注意最后那张表——它是本篇最值钱的部分,下面单独讲。
边界行:AI 会如实登记"看到什么",但它不会替你判断"所以呢"。
第三步:这张表最好用的地方,是它的最后一部分
体检单末尾那张「待你确认清单」,是一份真跑输出的原样(截取前六条):
1. 行28(AA电机)只有 7 个字段,请确认缺失的是哪一列,以及"6800""7.1"分别应对应哪个字段。 2. "数字化投入"的单位是什么?行26(Y测试设备,1,250,000)是否与其它行同单位? 3. "营收"的单位是什么?行27(Z液压件,520,000)是否与其它行同单位? 4. "利润率"是否为百分数(%)口径? 5. 行3 的"2018年"是否等同于数值 2018? 6. 行业列中"制造业""制造""制造业-机械"是否为同一口径?
这张清单的价值在于:它把"我不知道"变成了"你要回答"。
平时这些事是怎么过去的?你心里想着"应该没问题吧",然后往下走了。现在它被明确写出来,摆在你面前——十条问题,每条都指向一个你当时可能随手处理过的决定。把它们答完,你的数据才真正是你的数据。
边界行:清单里 AI 说"不知道"的,就是你必须回答的;它替你猜的,才是要警惕的。
第四步:一个真实的坏输出,别客气
上面那份体检单看起来很干净。但我们在核对它的数字时,发现了一处问题——这处正好暴露了体检单的边界在哪。
它报告:"数字化投入同列其余最大值为 980(行8)",据此算出异常值偏离 1,275 倍。
我们回原表按位置对齐重算,该列除异常值外的最大值是 6,800——不是 980。
980 是哪来的?是我们故意埋的那行错位数据(AA电机,整行少一个字段,导致后面的值全部左移,营收的值挤进了"数字化投入"这一列)。AI 在算"同列其余最大值"的时候,静默地把这行错位数据排除了——它甚至在同一份报告的第六节单独登记了这行错位,但在算倍数时又悄悄剔掉了它,全程没有声明。
差了将近七倍。它不是编造——它确实读到了 980 这个数。它是口径前后不一致:一边承认错位行存在,一边在统计时把它踢出去了,还没告诉你。
所以规矩是:体检单能查出问题,但派生数字必须回原表复算。 尤其"偏离几倍""中位数多少"这类算出来的数——因为 AI 对"哪些行算进统计"的处理,可能前后不一致。
另外两种常见坏输出,遇到了别客气:
1. 它开始给建议。 "建议删除第 26 行""建议对缺失值做均值填充"——越权。规则第六条已经说了只登记不决定,出现这类句子就退回重跑。填充和删除的口径只有你清楚:这个缺失是"没采集"还是"实际为零",含义完全不同。 2. 行号对不上。 它说"行12 的营收异常",你翻回第 12 行发现根本没有这个数——整条作废,它是编的。
边界行:抽查是质检,不是形式。随机挑两三条翻回原表,对得上这批可用,对不上整批降权重跑。
第五步:这些做完,你手里就不只是一张表了
体检单交回来,你的动作是固定的三步:抽查——随机挑两三条登记翻回原表对行号;复算——挑一两个派生数字自己算一遍,我们这次就是靠这步发现 980 和 6,800 的差异;逐条回答待确认清单——缺失是未采集还是零、重复记录是同一家还是两家同名、"制造业"和"制造"要不要合并。
这三步做完,你手里多了一份写清口径、边界和已知缺陷的数据说明。后面无论自己跑回归、交给 AI 跑,还是被审稿人问起"这个变量怎么定义的",你都有话可说。
边界行:这些答案只存在于你的采集过程里,不在表里——AI 给不了,别人也替不了。
数据分析真正的风险从来不在算法。在你把一个自己都没看清的表交出去,然后相信了它给出的漂亮结果。
体检单能帮你看清。看清之后怎么处理,是你的判断。
如果你正在带课题组,或者自己带着学生做实证——收到数据表的时候,让 AI 先交一张体检单,比事后追着问"这个缺失值你当时怎么填的"要省事得多。数据口径这种事的麻烦之处在于:它不在表里,只在人的记忆里,而人的记忆会过期。
我把我沉淀的抽查方式和提示词放在了个人主页,感兴趣可以去看