[中文正文内容]

我最近为 ODSC 主办的 AI+ 培训进行了一次关于时间序列的小型研讨会。效果非常好,我很高兴将来能提供更长时间的互动式研讨会(如果您的团队需要,请联系我!)。

我分享的一个例子来源于在 The Incredible Growth of Python on Stack Overflow 中展示的以下图表。

UntitledImage

在这个图表中,x 轴是日期(按月),y 轴是每个标记曲线在 Stack Overflow 问题浏览量中所占的百分比。后来发布的图表似乎是关于问题形成的,而不是浏览量。 2017 年 9 月之前的所有日期都是在制作该图表时发生的,而此日期之后的所有内容都是对未来的预测。

问题是:2017 年末的这个预测有多合理? 答案是:非常合理,方法学很好(使用 LOESS 的季节性分析),预测持续时间合理(短于训练期),并且相关的未来数据最终与预测相符。

UntitledImage

在我的演讲中,我还提到了拟合一个更激进的模型,例如 Bass 产品扩散模型。 正如 我之前提到的,Bass 模型非常激进,因为它_假设_一切都会结束(而且通常很快,无论是否有证据)。

我尝试了几种拟合方法,最终决定使用 Stan 对模型参数从过去的数据中进行完整的贝叶斯推断。 这似乎比我之前使用的拟合和非线性变换方法偏差更小。 来自 Sanjiv Ranjan Das, Data Science: Theories, Models, Algorithms, and Analytics 的将事件和累积事件之间的关系进行拟合的想法至关重要。 各种 Bass 曲线非常自相似,以至于通过时间导向的点进行曲线拟合并不能强烈约束推断的参数。

这让我准备了下面的图表。 在此图中,每条曲线都是根据给定日期之前的数据拟合的模型。 所有不同的预测都是不同的线。 在这种情况下,即使是 Bass 模型也预测了未来的增长,直到 ChatGPT 推出附近的观测值可用。

Unnamed chunk 4 1

这并不是一个完美的拟合。 但是,后来的模型如何开始消化变化的趋势,这非常有趣和具有启发性。 你不必完全拟合 Bass 模型,就能知道增长可能会停止。 只要知道存在常见的趋势(例如 Bass 模型或 S 曲线)_看起来_像指数增长,直到它们不再如此为止就足够了。

生成这些图表的 R 代码和数据 在这里