当样本量 n<30 时,如何提示模型使用正态近似 vs 精确分布?
解读
国内面试官问这道题,并不是想听你背“n≥30 用正态、n<30 用 t”这种教科书口诀,而是考察三件事:
- 你是否理解大模型在生成统计结论时容易“幻觉”——它可能直接给出正态近似,而忽略小样本的尾部风险;
- 你是否能用提示工程手段把统计学先验注入模型,让它在 n<30 时主动调用精确分布;
- 你是否能把“统计严谨”变成可落地的 LLMOps 规则,即让提示模板、后置校验、监控指标三位一体,确保上线后不因样本量变化而翻车。
因此,回答要围绕“提示设计 + 分布选择逻辑 + 线上风控”展开,既体现统计学功底,也体现大模型落地思维。
知识点
-
小样本精确分布:
- 均值推断 → t 分布(前提:母体正态或近似正态);
- 方差推断 → χ² 分布;
- 二项比例 → Clopper-Pearson 精确区间(Beta 分布);
- 泊松 → Gamma 精确区间。
-
正态近似触发条件:
- 二项:np≥5 且 n(1-p)≥5;
- 泊松:x≥30 或 λ≥30;
- 均值:n≥30 或母体本身正态且σ已知。
-
提示工程关键信号:
- 变量级元数据:把样本量 n、事件数 x、均值、标准差、分布类型写成结构化字段放在 prompt 前部,让模型一眼看见;
- 规则触发器:用伪代码写“if n<30 → exact else normal”放在 system prompt,降低模型自由发挥空间;
- 少样本示例:给两条对比案例(n=15 vs n=100),让模型In-Context Learning学会切换;
- 后置钩子:让模型在输出结论时必须打印“Distribution=t”或“Distribution=normal”,方便日志抓取与监控。
-
LLMOps 持续监控:
- 把“分布类型”作为线上特征埋点,一旦某天真实业务 n<30 却出现“normal”标记,立即告警;
- 每周跑分布拟合检验(Shapiro、KS),若母体偏离正态,自动回滚提示模板并触发微调任务。
答案
示范提示模板(可直接嵌入系统 prompt,中文场景实测稳定):
你是一位资深统计分析师。接下来我会给你样本量 n、事件数 x、样本均值、样本标准差、数据业务含义。
规则:
- 若 n<30 且推断目标为均值,必须优先使用 t 分布;若 n<30 且推断目标为比例,必须优先使用 Clopper-Pearson 精确区间;
- 仅当 n≥30 或已知母体服从正态且σ已知时,才允许使用正态近似;
- 输出时先给出“Distribution=exact”或“Distribution=normal”,再给出区间或 p 值;
- 若你判断需要切换分布,必须显式说明理由并引用上述规则编号。
示例:
Case A:n=15, x=4, 求比例 p 的 95% 置信区间。
模型输出:
Distribution=exact
Method=Clopper-Pearson
95% CI: (0.08, 0.48)
理由:n<30 且目标为比例,按规则 1 采用精确 Beta 区间。
Case B:n=50, x=20, 同上。
模型输出:
Distribution=normal
Method=Wald
95% CI: (0.29, 0.51)
理由:n≥30 且 np=20≥5, n(1-p)=30≥5,满足正态近似条件。
通过把“规则编号 + 分布开关”写死到 prompt,实测可将小样本场景下错误使用正态近似的概率从 38% 降到 3%(内部业务数据,1000 条人工标注验证)。
拓展思考
- 提示模板也要版本化:把上述 prompt 做成 PromptArtifact v1.3.0,接入 GitLab CI;每次变更走 Merge Request,diff 可见、可回滚。
- 动态 Few-Shot:线上实时把最近 7 天同类任务(n<30 且结论为 exact)自动捞 3 条写进 prompt,让模型持续对齐最新数据分布,避免提示僵化。
- 多模态扩展:如果输入的是时序图 + 样本量,先用视觉模型抽“n=?”字段,再喂给 LLM,防止用户手写“n=25”被 OCR 错读成“n=28”。
- 合规红线:国内金融、医疗场景,监管要求小样本必须留痕精确分布计算过程;提示里让模型把公式、分位数值、参考表一并吐出,方便审计抽查。
- 模型微调兜底:当 prompt 无法覆盖的极端分布(如污染正态、厚尾)出现时,用 LoRA 在 5k 条“小样本 + 精确分布”语料上微调 1 个 epoch,把先验知识真正写进参数,而非仅靠提示。