我希望能够预测我何时会耗尽特定资源。
我的情况类似于*水箱。每天都会下零次或更多次降雨,填满水箱。我无法提前知道每天会下多少雨,如果有的话。水箱永远不会有任何流出。每天我都可以测量水箱里有多少,我知道水箱的容量。由于手头有备用油箱以防万一,并且在没有备用油箱时加满油箱是有成本的,我想使用我的日常测量来预测油箱何时充满。
迄今为止的经验表明,该罐的容量约为四年。我们将需要大约三到六个月的时间来安装新的坦克并根据其他情况进行工作。这是我们要提前计划的事情。当然,如果洪水迫在眉睫,紧急坦克可以冲过去,但成本很高,应该避免。
我计算了每日水位的线性回归。这给了我一个斜率和截距,我可以从中计算趋势线穿过水箱容量的日期。然而,这并没有表明我可以相信这个数字。简单地使用置信区间公式来类似地计算 CI 曲线何时穿过容量是否合法?有没有更好的方法来实现这一目标?
数据将如下所示(发明值):

*实际案例为数据仓库计算机系统。这些行有一个自动递增的列。随着新行的写入,该列中的值会上升。它永远不会下降。没有与水箱类比“排水”的等价物。如果我今天测量此列中的最大值,并且一夜之间没有添加任何行,那么我明天询问时会得到相同的值。如果行在一夜之间写入,明天的测量值将比今天的大。即使删除了所有行,自动增量也不会重置为零。
该列被定义为一个整数,其最大值刚刚超过 20 亿。如果达到这个限制,我们将无法向表中添加行,系统会停机,老板的脑袋会爆炸,海洋变成鲜血等等。我们不希望这种情况发生。然而,存储这些数据的磁盘要花费数万美元,因此显然我们不希望比我们必须的更早进行资本支出。“必须”的定义是我问题的主旨。
附录:我的结果
我已经能够重新创建 2012/13 和 2013/14 年的数据。一个典型的样本集如下所示。

蓝色和红色是两年的数据。黑色和虚线是每年的最小二乘回归。
我使用 2012/13 年的数据来预测 2013/14 年末的值。第一年的趋势线比第二年的趋势线稍陡,所以我希望我的答案比实际发生的要早一点。我使用了三种技术:
- 简单的几何。取样本的第一个和最后一个点。在它们之间画一条直线。计算这条线切断上限的日期。
- 从最小二乘回归计算直线的参数。使用这些参数来计算这条线切断上限的日期。
- 使用 2012/13 年的数据作为蒙特卡罗模拟的样本集。
简单的几何图形非常快,易于编码和理解。
最小二乘法很难正确,但运行速度很快。结果更接近“真实”值,但相差不大。
Monte Carlo 易于编码和维护。然而,它需要很长时间才能运行。我将中间交叉日期作为资源耗尽的日期(在此图表中绿色与红色交叉):

所有这三种技术都在“实际”结果的三周内产生了答案,这对我的目的来说已经足够了。
就最初的问题而言,蒙特卡洛是唯一一种表明我有多大可能比预期更快地耗尽资源的技术。因为执行需要很长时间,所以我将采用混合方法。当数据到达时,我将每天运行简单的几何计算。如果这表明一个令人担忧的耗尽日期(未来不到一年),我将运行蒙特卡洛来看看情况有多糟糕。
