接受-拒绝法抽样(正态、伽马、贝塔)

分布函数不好求逆时,怎样用一个好抽的分布做包络来抽样?平均要抽几次才接受一个?

CAS MAS-IIFoA CS1按输入的参数计算
对过的标准答案
5 条
覆盖的考试公式
1 个
参数
8 个
开源库
2 个

01当场运行

改一个参数,当场重算

正在用默认参数运行,计算量大的方法最多要 20 秒。

04出处和说明

公式从哪里来,有什么限制

列出参考的教材、论文和考试公式条目。方法的限制和实现上的说明也写在这里。

参考

  • Loss Data Analytics 第 2 版(Frees 等,CC BY 4.0)8.1 Random Number Generation(接受-拒绝法)

覆盖的考试公式

  • SIM-002接受-拒绝法(含 Gamma 与正态的指数包络)MAS-ICS1

公式条目按精算考试的公式表整理,编号和中文名是平台自己的。

这个方法算什么

选一个容易抽样的包络分布 g,常数 c = max f/g;抽 Y ~ g 和 U,U ≤ f(Y)/(c g(Y)) 时接受。给出 c、理论接受率 1/c、模拟的接受率、接受的样本和目标密度的对比。可以给自己的成对均匀随机数(考试题常用)。

说明和限制

  • 正态的情形先抽 |Z|:f(x) = 2φ(x)(x > 0),包络 g(x) = e^{−x},c = √(2e/π)。正负号另外用一个均匀随机数定(种子生成时);给自己的随机数时只输出 |Z|。

数据

没有用数据:按输入的参数计算

开源库和版本

  • scipy1.17.1BSD分布拟合、统计检验
  • numpy2.4.6BSD-3-Clause数值计算

05同族的方法

模拟与重抽样,还有 8 个方法

同一个方法族里的其他方法。在智能体里,用一句话就能调用这些方法。

在智能体里这样问“分布函数不好求逆时,怎样用一个好抽的分布做包络来抽样?平均要抽几次才接受一个?”