问题遇到的现象和发生背景
在 2 个简单假设的情况下,用计算机实施序贯概率比检验 (SPRT)。
使用蒙特卡洛方法估计其错误类型 I 和 II 的概率,以及条件预期样本大小(运行测试 10 000 次,$H_0$ 为真,
计算有利于 $H_1$ 的 FALSE 决策的数量,除以 10 000 -> 你得到 $\alpha$ 的估计值;启动一个计数器,
将你停止测试的观察次数添加到一个计数器,每次运行时 $H_0$ 为真,然后除以 10 000 ->
你将得到 $ 的估计值t_0$;$\beta$ 和 $t_1$ 的估计是相似的)。
实现:几何分布,$\theta$ 是它唯一的参数。
分析错误概率和假设接近度的预期样本大小的依赖关系。将 $\alpha$ 和 $\beta$ 用于您选择的阈值计算。
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我找到的方法代码如下,但是仅仅只是实现几何分布的蒙特卡洛方法,不知道该怎样实现使用蒙特卡洛方法对几何分布进行序贯概率比检验 (SPRT)。
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(222)
# 把计算得到的函数写成一个函数
def distribution_z(z, p, max_k=200):
import math
j = int(math.floor(z))
A = 0
for m in range(1, j + 1):
A += (1 - p) ** (m - 1)
A *= p
B = 0
for k in range(j + 1, max_k + 1):
a = (1 - p) ** (k - 1)
a /= k
B += a
B *= z * p
return A + B
def pdf_z(z, p, max_k=200):
import math
j = int(math.floor(z))
B = 0
for k in range(j + 1, max_k + 1):
a = (1 - p) ** (k - 1)
a /= k
B += a
return B * p
p = 0.1
# 选取数据点,点越多越精确
dataPoints = 10000
Unit = np.random.rand(dataPoints)
Geom = np.random.geometric(p, dataPoints)
distri_of_Monte = Geom * Unit
# 概率密度函数 PDF
plt.hist(distri_of_Monte, bins=40, range=(0, 40))
points_of_z = np.arange(0, 41, 0.01)
pdf_of_z = np.array([pdf_z(zi, p) for zi in points_of_z]) * dataPoints
plt.plot(points_of_z, pdf_of_z)
# print(pdf_of_z)
plt.show()
hist, bin_edges = np.histogram(distri_of_Monte, bins=40, range=(0, 40))
# 概率分布函数 CDF
hist_list = np.cumsum(hist) / dataPoints
plt.plot(bin_edges[1:], hist_list)
points_of_z = np.arange(1, 41, 0.1)
distri_of_z = [distribution_z(zi, p) for zi in points_of_z]
plt.plot(points_of_z, distri_of_z)
plt.show()
import sprt as sprt
import numpy as np
# Null value
h0 = 0.5
# Alternative value
h1 = 0.55
# Type I error rate = 0.05
alpha = 0.05
# Type II error rate = 0.2
beta = 0.2
# Values
values = np.random.binomial(1, 0.55, 100)
test = sprt.SPRTBinomial(h0 = h0, h1 = h1, alpha = alpha, beta = beta, values = values)
test.plot()
# Plot the data and boundary but without fill the color
test.plot(fill = False)
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
使用蒙特卡洛方法,对几何分布进行序贯概率比检验 (SPRT),同时满足题目的要求。