描述统计是任何新数据的第一步。Lattice 自动给出每个数值列的集中趋势、离散程度、分布形状,以及数据质量预警 — 让你带着清醒的认知开始后续分析。
为什么永远是第一步
在任何检验、画图、建模之前,你需要先知道基本面:多少行、多少缺失、每个变量的范围、有没有异常。这五分钟省掉的,是后面几小时的误判。某个预测变量明显偏态会改变你该选哪种回归;某列缺失 30% 决定是插补还是删行;常数列说明数据抽取出了 bug,而不是新发现。
Lattice 实际算什么
引擎调用 pandas 底层数值汇总加上 scipy 的 skew / kurtosis,再封装成 Pydantic 化的结果。对每个数值列给出:计数、均值、标准差、最小、25 分位、中位数、75 分位、最大、偏度、峰度、缺失数、缺失比例。对非数值列给出:计数、唯一值数、众数、众数计数。
每个数字都带 trace_id。解释器会写一段人话总结,把异常点指出来:IQR 离群、偏度超 ±1、缺失超 5%,或者一个数值列其实是常数。
1 · Intent → method
An LLM picks stats_describe from a fixed catalog.
2 · Method → numbers
Deterministic Python engine runs the math. Same input → same output.
3 · Numbers → plain language
A second LLM translates the result into your domain’s vocabulary.
提问的几种说法
planner 会从下面这类提问中自动挑出 stats_describe:
- 「先看看这份数据。」
- 「给我每列的均值、范围、缺失情况。」
- 「这份 CSV 里都有什么?」
- 「论文里要一份样本特征表。」
只想看部分列,可以直接报列名(「只描述 yield、temperature、pressure 三列」),引擎会照办。
怎么读结果
先扫缺失列 — 5% 以上的都需要在继续之前先做决策。然后看偏度与峰度:严重偏态通常对应对数变换是合理的,峰度高意味着重尾(对接下来要跑 t 检验有影响)。再对比中位数与均值 — 差别大就是非对称分布。
总结还会指出唯一值数等于行数的列(很可能是 id,不是测量)或唯一值数为 1 的列(常数列 — 多半是抽数 bug)。
Lattice 帮你避开的常见错误
很多人把描述统计当成答案而不是起点 — 论文里只报均值与标准差,既不画直方图也不做检验。Lattice 的总结永远指向下一步:看分布画直方图、看离群画箱线图、暗含对比就提示 t 检验 / ANOVA。另一个常见错误是忽略缺失比例;Lattice 把它高亮出来,逼你「插补还是删行」做出明确决策,而不是悄悄掩盖。
Lattice 返回哪些统计量?
数值列:计数、均值、标准差、最小、25 分位、中位数、75 分位、最大、偏度、峰度、缺失数、缺失比例。非数值列:计数、唯一值数、众数、众数计数。
和 pandas 的 .describe() 有什么区别?
核心统计量一致,但用 Pydantic 类型化输出,额外含偏度、峰度与缺失指标,而且每个数字带 trace_id 可回放。解释器还会写一段人话总结,把异常点出来。
Lattice 会自动警告离群值吗?
会。总结里会标出按 IQR(1.5 × IQR)规则有离群的列、偏度超过 ±1 的列、缺失超过 5% 的列。但实际删除离群必须你明确确认才执行。
Tool 输入字段
Schema for stats_describe not exported yet (run pnpm export:registry).