Bayesian inference

先验概率:某个病人的患病概率是0.01

检验准确性(条件概率):检测在健康人群中有5%的假阳性率,在病人中有2%的假阴性率

检测结果:我们得到一个阳性的检测结果

我们希望计算病人实际患病的概率,即病人患病的后验概率。使用贝叶斯定理来计算:
$$
P(Disease|Positive)=\frac {P(Positive|Disease)·P(Disease)}{P(Positive)}
$$

Monte Carlo simulation

生成随机数带入函数,检查结果是否在约束条件内。随机数生成次数越多,模拟结果越精确

Renewal process

是一种特殊类型的随机过程,它描述了一系列事件(或“更新”)发生的时间间隔,其中每个事件的发生时间与之前的事件独立,并且每次事件发生后,系统都被重置回初始状态。它广泛应用于可靠性工程、排队理论、库存管理等领域。

更新过程的核心特征

  • 独立性:每次事件发生的时间间隔(即两个事件之间的时间)是独立的,且通常服从某种已知的概率分布。
  • 重置:每次事件发生后,系统被重置为初始状态,这意味着过程的未来行为与过去无关。
  • 非负时间间隔:事件之间的时间间隔总是非负的。

更新过程的常见类型

泊松过程:如果事件发生的时间间隔服从泊松分布,则更新过程为泊松过程

非泊松过程: 时间间隔服从其他分布(正态分布、gamma分布等)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import numpy as np
import matplotlib.pyplot as plt

# 参数设置
lambda_fault = 1 / 10 # 故障间隔的平均时间(指数分布,平均每10小时发生一次故障)
num_failures = 10 # 模拟10次故障

# 生成故障间隔时间(指数分布)
failures = np.random.exponential(scale=1/lambda_fault, size=num_failures)

# 计算故障发生的时间点
failure_times = np.cumsum(failures) # 累加故障间隔,得到每次故障的发生时间

# 绘制故障发生时间
plt.figure(figsize=(8, 6))
plt.step(failure_times, np.arange(1, num_failures + 1), where='post', label="Failure Times")
plt.xlabel("Time")
plt.ylabel("Number of Failures")
plt.title("Renewal Process: Failure Times of a System")
plt.grid(True)
plt.show()

Bayesian networks

Decision analysis

Machine learning

Reliability analysis

Risk analysis

Human factors

Global sensitivity analysis