jasonrkeen/global-diamond-supply-value-intelligence-model

GitHub: jasonrkeen/global-diamond-supply-value-intelligence-model

基于Python的全球钻石供应与价值情报建模流水线,整合多源官方数据与蒙特卡洛模拟,提供可复现的产量预测、价值压力评估和交互式情报仪表板。

Stars: 0 | Forks: 0

# 全球钻石供应与价值情报模型 这是一个可复现的研究流水线,用于考察天然原钻供应、地理集中度、综合单位价值、贸易摩擦、需求状况、实验室培育钻石替代压力以及估值的不确定性。 本项目将官方观测数据、经核实的生产商披露、初步估算、概率预测和条件情景区分开来。它被设计为透明的商品情报研究,而非钻石鉴定估价或投资工具。 ## 它能产出什么 - 年度供应量、价值、HHI 集中度以及价值压力指标 - 最新的各国产量敞口 - 设定随机种子的 5,000 次蒙特卡洛代理单位价值区间 - 产量图表和自动化情报简报 - 交互式 Streamlit 情报仪表板 - 基于生产商校准的 2025 年估算和 2026 年预测 - 自动生成的两页执行摘要 PDF 简报 - 针对钻石异质性的明确方法论限制说明 ## 快速开始 ``` python -m venv .venv # Windows: .venv\Scripts\activate # macOS/Linux: source .venv/bin/activate pip install -r requirements.txt python main.py ``` 在流水线完成后启动交互式仪表板: ``` streamlit run app.py ``` 该仪表板将官方观测数据、初步估算和预测区分开来;展示不确定性区间、Comtrade 覆盖范围、指定情景、驱动因素敏感度、经核实的生产商披露以及已知的证据局限性。 每次流水线运行还会在 `output/pdf/diamond_supply_value_intelligence_brief.pdf` 生成一份两页的执行摘要 PDF 简报。其中包括核心指标、基于分类感知的预测区间、图表、覆盖范围、数据治理和局限性说明。 使用以下命令运行测试套件: ``` python -m pytest -q ``` ## 当前参考结果 使用官方的 2024 年 KP(Kimberley Process)全球摘要以及内置的经核实披露登记表,当前的参考运行结果大约为: - 107.9 百万克拉的 2024 年官方产量; - 102.8 百万克拉的基于生产商校准的 2025 年中位数估算; - 105.2 百万克拉的 2026 年中位数预测; - 2026 年 P10-P90 区间接近 95.2-115.6 百万克拉;以及 - 受监管的预测置信分数为 46.2/100。 随着数据源、覆盖范围和假设的更新,结果也会发生变化。请在本地复现这些结果,而不是将 README 中的数字视为实时报价。 ## 官方数据模式 将 `.env.example` 复制为 `.env`,然后设置 `DIAMOND_LIVE_DATA=1`。流水线将使用官方的 `comtradeapicall.previewFinalData()` 函数,该函数不需要 API 密钥。它会分别请求每个报告国-年份数据,指定伙伴为 `World`,包含四个钻石子目(`710210`、`710221`、`710231`、`710239`)以及进口/出口贸易流向。每个微小的请求量都能轻松保持在预览限制之下。 成功的报告国-年份响应会被缓存在 `data/cache/comtrade` 下;后续运行不会再次请求这些观测数据。`COMTRADE_REQUEST_DELAY` 控制着请求配速,瞬时失败会进行指数退避重试。部分完成的响应会在数据源登记表中标记为 `partial`,而不会被当作完整数据呈现。 一个为空但成功的 Comtrade 响应会被记录上持久的 `no_data` 标记,且不会被重复请求。流水线会写入 `comtrade_coverage_matrix.csv`,在 `latest_reporter_trade.csv` 中选择每个报告国的最新可用周期,并生成一张按区段划分的贸易额图表。这使得不完整的官方报告依然可见,而不会将数据缺失等同于零贸易或技术故障。 Kimberley Process 的产量统计采用受控的手动导入工作流,因为公开的统计接口没有提供稳定且文档化的 API。请下载官方表格,将其字段转换为 `data/external/kimberley_process_production_template.csv` 中定义的 schema,并将其保存为: ``` data/external/kimberley_process_production.csv ``` 对于首选的官方 PDF 路径,请在 `.env` 中设置 `KP_GLOBAL_SUMMARY_URL` 和 `KP_EXPECTED_YEAR`,然后运行: ``` python download_kp.py python main.py ``` 下载器会验证 PDF 签名。解析器会提取参与国的产量、进口和出口字段,重新计算每克拉的产值,拒绝存在实质性数据不一致的表格,并保存标准化的缓存文件。如果 KP 更改了其 PDF 版式,该数据源会被标记为 `invalid`;请使用标准化的 CSV 模板,而不是默默接受错位的列。 当文件通过 schema 验证后,它将替换掉演示用的产量序列。`outputs/data/source_status.csv` 会记录每个数据层的状态:是实时的、缓存的、本地提供的、已禁用的、无效的,还是不可用的。 USGS 的工业钻石和宝石出版物被保留作为背景参考数据源,而不会被合并到天然宝石级原钻的产量中。工业合成钻石的产量和价格属于具有不同经济学意义的序列,如果强行合并,将会扭曲天然钻石的价值指数。 ## 模型逻辑 价值压力指数结合了供应紧张度(30%)、需求强度(30%)、贸易摩擦(25%)和实验室培育钻石压力(-15%)。HHI 用于衡量国家级的生产集中度。蒙特卡洛情景会在最新的综合单位价值基础上,对供应、需求、贸易摩擦和实验室培育钻石替代因素进行冲击测试。 这些权重是透明的分析假设,而不是拟合出的因果估算值。在用于决策之前,应先进行敏感性测试和专家校准。 ## 2025 年初步估算与 2026 年预测 当存在官方的 KP 产量基准时,流水线会运行设定随机种子的 10,000 次路径预测。2025 年这一层级被标记为 `preliminary_estimate`;2026 年被标记为 `forecast`。产量和单位价值驱动因素存储在 `data/forecast/forecast_drivers.csv` 中,包含数据源类别、置信度、平均效应、波动率和注释。输出结果包括 P10/P50/P90 区间、压缩后的模拟数据、元数据和一张预测图表。 当官方的 2025 年 KP 实际数据可用时,2025 年估算将被自动指定进行替换。预测假设属于情景输入,而非因果估算,绝不可被表述为钻石报价或投资指导。 如果存在经核实的生产商披露数据,产量路径将基于生产商数据进行校准。2025 年全年实际数据将被固定;季度观测数据和次要证据会被排除在外。建模得出的 2025 年变动仅适用于 2024 年官方基准数据中未覆盖的残余部分。经核实的 2026 年生产商指导数据会被直接抽样,而一般性的产量冲击则应用于剩余市场。`producer_calibration_bridge.csv` 会记录已覆盖的实际数据、指导数量以及残余部分的计算方法。 预测治理输出结果包括指定的下行/基准/上行情景、驱动因素敏感度登记表、置信分数,以及可选的经核实生产商披露登记表。请将 `producer_disclosures_template.csv` 复制为 `producer_disclosures.csv`,保留原始来源的 URL 和发布日期,只有在核查了相关的公司或政府披露信息后,才能将某一行标记为 `verified`。 内置的初始登记表使用了 De Beers、Petra Diamonds 和 Lucara Diamond 的主要公司披露数据。报告期和基准差异在注释中予以保留。每增加一家不同的已核实生产商,都会带来保守的 3 分置信度提升,上限为 15 分;这是一个数据覆盖范围的代理指标,而不是关于统计准确性的声明。校准计算过程会被写入 `forecast_confidence_calibration.csv`。 ## 文档 - [方法论](docs/METHODOLOGY.md) - [数据字典](docs/DATA_DICTIONARY.md) - [数据源登记表](docs/SOURCES.md) ## 数据路线图 包含的 CSV 是一个演示数据集,由经过四舍五入的、说明性的市场观测数据汇编而成。它并不被视为具有权威性的历史序列。正式发布版应针对以下内容添加特定于数据源的适配器和溯源字段: - Kimberley Process 产量和原钻贸易统计数据 - USGS 矿产商品摘要 - UN Comtrade HS 7102 贸易流向 - 各公司的产量和库存披露 - World Bank/IMF 宏观经济指标 - 官方制裁和进口限制公告 ## 重要限制说明 钻石不是一种同质化的商品。综合的每克拉价格可能会因为钻石组合的变化而发生变化。它是一个代理指标,而不是宝石学鉴定估价,也不是可直接交易的现货价格。本项目将分析信号与报价区分开来,不应被用作投资建议。 ## 仓库结构 ``` app.py Streamlit intelligence dashboard data/external/ User-supplied official KP source data/forecast/ Drivers, scenarios, disclosures, limitations data/sample/ Demonstration fallback input docs/ Methodology, dictionary, source register src/ Ingestion, scoring, forecasts, governance, reports tests/ Reproducibility and validation tests output/pdf/ Generated executive PDF outputs/ Generated charts, data, reports, forecast artifacts download_kp.py Controlled official KP PDF downloader main.py End-to-end pipeline entry point ``` ## 许可证 MIT。对于后续添加的每一个实时数据源,请自行核实其授权和再分发条款。
标签:Kubernetes, Python, 代码示例, 供应链分析, 商品智能, 安全规则引擎, 数据分析, 无后门, 蒙特卡洛模拟, 逆向工具, 量化预测