如何模拟“每周故障概率为 3.5%”的系统?

机器算法验证 r 可能性 模拟
2022-04-05 17:04:19

我有类似“每周在 20 摄氏度的故障概率为 3.5%”这样的声明描述的系统,我该如何模拟这样的系统?

我想到的模拟应该回答诸如“13 天内会发生多少失败?”之类的问题。

例如,模拟应该产生如下表:

timestamp,number of failures at the timestamp
2015-01-16T07:00:00Z,0
2015-01-17T07:00:00Z,0
2015-01-18T07:00:00Z,0
2015-01-19T07:00:00Z,1
2015-01-20T07:00:00Z,1
2015-01-21T07:00:00Z,1
2015-01-22T07:00:00Z,2

我想在 R 中模拟这样的系统,可能使用泊松分布,但我不知道如何开始,我认为它应该很简单,但也许我真的错过了一些基本背景,你可以建议一个例子或教程?

2个回答

首先考虑我们只有一台机器的情况。我们将不得不做出一些假设,一个常见且简单的假设是将故障时间建模为指数分布。这意味着故障率是恒定的(在时间 t 和 t+1 之间的故障概率,给定到时间 t 的生存对于所有 t 都是恒定的)(有关更多信息,请参见 wiki)。

失效时间,我们用表示,其中 t 表示时间,以天为单位。我们首先需要找到,因为我们知道一周内失败的概率是 3.5%,所以我们得到: 解决这个问题,我们得到TExp(λt)λP(T<7)=1e7λ=0.035λ=0.00221

现在为了模拟台机器随着时间的推移发生的故障,我们可以个样本这将在几天内为您提供台机器的故障时间。NNλ=0.00221N

似乎您不需要比每天更频繁的信息,因此最明显的方法是计算每天失败次数的分布,然后从中进行模拟。

或者,您可以模拟指数的事件间时间并从那里开始。如果您需要该级别的信息,这将提供日内精确度。

“13天会发生多少次失败?”

你可以在没有模拟的情况下解决这个问题。要通过每日模拟来做到这一点,您可以多次模拟 13 天的集合并保持模拟的值分布。

这在 R 中非常容易。