首页
方法
采用度估算方法
基于公开下载数据的确定性统计模型,不使用 LLM。所有估计附 80% 区间,代码位于 src/metrics/。
- 公开数据npm 与 npmmirror 下载计数、发版时间、GitHub 数据。
- 可复现固定随机种子,同一份数据得到同样结果。
- 区间估计bootstrap 与蒙特卡洛给出 80% 区间。
基于 npm、npmmirror 和 GitHub 公开数据估算
活跃安装最近几次完整更新中跟进升级的安装数。范围为 80% 区间。
估算用户扣除 CI、容器和一人多机后的估计。范围为 80% 区间。
每日新安装最近 7 个可测日的首次安装中位数。
更新半衰期半数活跃安装跟进新版本所需的时间。
模型
统计缺失
某天所有包在 npm 上均为 0 时视为缺失,同日 react 等包也为 0。当天数据未完结,不参与计算。
gap(d) ⇔ Σₚ npm(p, d) = 0合并两个源
npm 缺失的日期,用 npmmirror 当天的数值,按前后 14 天两源之比补全。
n̂(d) = m(d) · Σ n(j) / Σ m(j), |j − d| ≤ 14扣除自动下载
每次发版约有 136 次镜像和扫描器下载(Tenable,2026)。旧版本的持续下载,按陈旧版本周下载量的中位数估计。
noise = 136 × 发版次数 + median(陈旧版本周下载) × 版本数首次安装
dsh-mnemon 以固定版本依赖 17 个子包,pnpm 对每个版本只下载一次。7 天未发版的子包,日下载量即首次安装数。
F(d) = median(安静子包下载 − 底噪)活跃安装
子包升级后,每个活跃安装在更新时下载一次新版本。扣除新安装基线后累计,拟合饱和曲线,平台值即跟进更新的安装数。此方法为本项目自行构建。
C(t) = A · (1 − e^(−t/τ)), 半衰期 = τ · ln 2估算用户
CI、容器和一人多机无法直接观测,以可调区间表示,并用蒙特卡洛传播不确定性。默认自动化占比 5–30%,参考 PyPI 的 10–50%。
用户 = A · (1 − 自动化占比) / 每人安装数趋势与构成
周增长使用 Theil–Sen 斜率,区间跨零时显示"无明显趋势"。平台构成来自 CLI 的平台包。
增长 = exp(成对斜率中位数) − 1局限
- 下载量反映的是包存储数,不等于人数。
- 宿主升级可能导致插件重装,相关更新波已标记。
- npmmirror 按北京时间计日,单日数据可能与 npm 错开 8 小时。
- 发版 7 天后的更新会计为新安装。
- 每版本的自动下载数采用外部测量值。
- npm 只提供最近 7 天的分版本数据。
复现
$ git clone https://github.com/mnemon-dev/mnemon-fe && cd mnemon-fe$ npm install$ npm run metrics$ npm test参考
- 统计缺失L. Voss, “Numeric precision matters: how npm download counts work,” npm blog, 2014
- 统计缺失npm, download counts API (endpoints, limits, processing)
- 合并两个源cnpmcore (npmmirror), downloads controller
- 合并两个源W. G. Cochran, Sampling Techniques, 3rd ed., Wiley, 1977 — ch. 6, ratio estimators
- 扣除自动下载Tenable, “How cyberattackers inflate malicious package npm download counts,” 2026
- 首次安装pnpm, “Motivation” — the content-addressable store downloads each version once
- 活跃安装A. Decan, T. Mens, E. Constantinou, “On the evolution of technical lag in the npm package dependency network,” ICSME 2018
- 活跃安装T. Duebendorfer, S. Frei, browser update adoption 21 days after release, 2009
- 活跃安装B. Efron, “Bootstrap methods: another look at the jackknife,” Annals of Statistics 7(1), 1979
- 估算用户JCGM 101:2008, propagation of distributions using a Monte Carlo method
- 估算用户Python discourse, “PyPI downloads statistics and continuous integration” (CI shares of 10–50%)
- 估算用户Tor Metrics, estimating users from directory requests (reproducible metrics)
- 估算用户Dask, “Estimating users,” 2020
- 趋势与构成P. K. Sen, “Estimates of the regression coefficient based on Kendall’s tau,” JASA 63(324), 1968
- 趋势与构成A. Zerouali et al., “On the diversity of software package popularity metrics: an empirical study of npm,” SANER 2019