贸易流机会引擎
决定进口什么,通常靠的是直觉,后面再补一张表格。这个引擎读取公开的贸易统计数据,把一个国家相较于可比经济体进口不足的产品类别排出次序,再用真正会拖垮进口生意的因素给每个候选打折:本地生产、关税壁垒和监管负担。
- 领域国际贸易与采购
- 工作性质内部研究引擎
- 阶段运行中的引擎,内部运营
公开统计、一个存储、一份排序简报
多个国际机构都在公开发布贸易统计数据,却几乎没有人用它来回答一个采购问题,因为每个来源使用不同的格式、更新到不同的最新月份、以不同的单位计数。引擎把它们汇入同一个分析存储,在其上计算已发表的经济复杂度指标,并把供给不足的进口类别排序成一份人可以据以行动的简报。
它对自身的定位是诚实的。分析内核可以运行,并且已经完成了一次端到端的全量运行,产出了一份排序简报和一个机器可读的配套文件。它不是托管产品:没有部署,没有多用户方案,排序背后也没有经过验证的商业结果。取而代之的,是一套有记录的方法,以及一个它在自己的输出中发现并从结构上修正的缺陷。
靠道听途说做出的采购决定
选择一个进口类别所需的信息是存在的,而且是公开的。它之所以被闲置,是因为没有任何东西把它变成一个决定。
类别在被核实之前就已选定
有人听说某个类别在动,于是就选了它。先找到供应商,那些足以否决的事实随后才出现,而那时资金和时间已经投进去了。
真正会终结生意的因素最后才浮现
本地生产、关税壁垒和监管负担决定一条进口通道究竟能不能走通,可它们往往是最后才被核对的事实,而不是最先施加的筛选。
无人对齐的开放数据
统计数据是公开的,但每个来源都以自己的格式、自己的最新月份、自己的单位发布。为每一个候选类别手工对齐这些数据,没有人愿意做第二遍。
一个会排序、也会解释排序的引擎
多个来源背后的一个存储,在其上计算的已发表方法,用闸门而非权重构建的分数,以及一份展示自身算术的简报。
单一接口后面的多个公开来源
国际贸易统计、宏观发展指标、经济复杂度指标,以及用于距离与贸易协定效应的引力数据集,全部落入同一个分析存储,所有模型都从这里读取。
- 每个来源相互隔离,某一个中断或被阻挡时,只有那个来源降级
- 一份采集日志,记录每次运行中哪些来源到位、哪些降级
- 带缓存的抓取,重新运行一次分析不必把数据再拉一遍
已发表的经济学方法,落地实现并经过测试
经济复杂度文献中真正在用的那些指标,在统一存储上直接计算而非近似,并在测试中离线运行。
- 显示性比较优势、它的对称形式,以及显示性进口优势
- 产品空间密度,以及适应度与复杂度的迭代
- 一个把预期贸易与实际贸易相比较的引力模型
用闸门而不是权重构建的分数
强度信号平均成一个核心分数。否决性因素不进入这个平均,而是与它相乘,因此一个国家已经自产、或刻意挡在门外的类别,无法靠别处的强度被抬上来。
- 与一篮子可比经济体对照,每个经济体使用各自的滚动窗口
- 本地生产与关税立场作为乘性闸门施加
- 最终分数的每一分都可归因到一个具名信号,并在旁边一并给出
一份展示自身计算过程的简报
输出是一份按行业逐节排序的简报,附带机器可读的配套文件,并在结尾准确说明每个数字是怎么算出来的。
- 监管背景与排序并列呈现,因为受监管类别中的缺口是另一种机会
- 结尾一节给出公式、对标篮子和重要性门槛
- 明确写出:这个排序是应用层的启发式方法,不是已发表的指数
数据缺席时它怎么做
这套系统里真正有意思的决定,多半关乎证据的缺席,而不是证据的存在。
任何阶段都不允许抛出异常
每个阶段都返回一个状态。缺失的依赖、无法访问的服务、失败的子进程或空结果,都会变成一个带修复提示的具名结果,而不是一个把整次运行拖垮的异常。
它说数据不足,而不是猜
这些驱动程序是在数据出现之前就写好的,默认完全不走网络,宁可报告数据不足,也不产出一个没有任何依据的数字。
缺失的证据记为不明确,绝不记为零
被阻挡的来源记为不明确。写零会让证据的缺席被读成缺席的证据,排序正是这样悄悄说谎的。
数据不可信的地方,它去问人
有一项输入找不到值得信任的来源,于是循环停下来向操作者提问,答案被标记为人工提供,而不是抓取或推断得来。
这次构建真正产出的东西
这里不主张任何商业结果,因为一项都没有被测量过。下面写的是引擎内部以及它所写内容的质量发生了什么变化。
闸门,而非权重
排序的正确性
第一版把受保护的类别排在最前面,恰恰是那些一个国家用自己的关税挡在门外的类别,原因是否决性因素只是求和式里的加权项。把它们改成乘性闸门,让这一类错误在结构上不可能发生,而不是靠调参把它掩过去。
展示计算过程
可审计的输出
每份简报都以公式、对标篮子和重要性门槛收尾,读者因此可以从方法上质疑某个名次,而不必被迫相信那个数字。
降级,而不崩溃
运行的可靠性
被阻挡或无法访问的来源会被记入日志,运行则依靠已到位的数据继续;管线会报告数据不足,而不是把部分结果当作完整结果呈上。