用估计参数模拟 KS 检验

机器算法验证 模拟 kolmogorov-smirnov 测试 安德森宠儿测试 利利福斯测试
2022-04-07 14:31:55

我们知道原始的 KS 检验有一个限制,需要完全指定零假设检验基础分布,而不是估计。但在实践中,我们通常需要测试拟合分布的拟合优度。

建议通过Wikipedia 对 KS-test进行蒙特卡罗模拟但是很少有关于这种模拟的有限文献综述。有几个想法出现在我的脑海中。


方法一

似乎原始 KS 检验对于测试估计分布不再有效的原因是,我们需要更小的临界阈值 KS 距离(d 值)来拒绝零假设基础分布,因为它是围绕数据拟合的。

Lilliefors-test解决了这样的问题虽然它只适用于正态分布,但我们可以扩展它的方法。

  1. 找到数据(n 个数据点)与估计的基础分布之间的 KS 距离 (D0
  2. 通过估计的基础分布生成 n 个数据点 M 次(大约数百万),找到它们的 KS 距离 set = { , , , ..., } 每次。DmD1D2D3DM
  3. 比较值和设置为 p 值的百分位数。D0Dm

P(>D0|NullHypothesisDistribution)


方法二

一些帖子说原始的KS-test不能应用于估计分布,因为它没有考虑估计(或拟合)的标准误差。

所以他们建议从原始数据中引导作为模拟,但他们没有描述细节。我认为方法可以如下。

  1. 找到数据(n 个数据点)与估计的基础分布 A 之间的 KS 距离 (D0
  2. 从原始数据引导并再次拟合分布,得到一个新的拟合分布 B. 找到这个新的原始样本和新分布 B 之间D1
  3. 重复第 2 步 M 次,每次设置 KS 距离 = { , , , ..., }。DmD1D2D3DM
  4. 比较值和集合的百分位数,看它是否在 95% 的经验区间之外。D0Dm

似乎这考虑到了估计的估计误差(或置信区间),这会影响原始 KS 检验。但似乎这种方法不遵循 p 值定义,或者假设定义,假设 Null 假设并找到样本统计概率。


方法 3

我的同伴也提出了一个想法,就像方法2一样。

  1. 找到数据(n 个数据点)与估计的基础分布 A 之间的 KS 距离 (D0
  2. 设置零假设,即数据来自相关分布 (A)。
  3. 从有问题的分布 (A) 中生成 n 个点,并将相同的分布拟合到给出参数集 B 的新样本。使用参数集 B 测量该样本与所讨论的分布之间D1
  4. 多次重复步骤 3 (M),给出 KS 距离的分布,假设实际数据来自使用我们的拟合方法的相关分布。Dm
  5. 如果距离大于在 4 中计算的距离的 95%,则拒绝空假设,即数据来自参数集 A 的相关分布。D0

似乎它是方法 2 的参数引导程序。但是再次生成这样的样本和拟合数据似乎很奇怪。而且它似乎仍然没有遵循假设定义。


您对这三种方法有任何想法吗?或任何修改?

或者您是否找到任何正式的文献说明估计分布的 KS 测试的模拟细节?

我只找到有关此的详细信息的Durbin (1973)但是很抱歉,我找不到关于这本书的全文。有没有人有关于模拟KS-test的类似细节的任何其他电子版本?

Anderson-Darling 检验是否也受此估计参数问题的影响?

任何想法或讨论都将受到高度赞赏。

谢谢你。

1个回答

这是一个 Lilliefors 测试,你的第一个和第三个项目非常接近如何做到这一点。

Lilliefors 检验仅适用于正态分布的说法是错误的。他也为指数做了一个(你甚至可以在你链接到的维基百科页面底部的参考资料中看到),并且该技术应该适用于相当多的其他发行版。

但是,我不认为你完全正确。

有几种组织它的方法,但一种适用于连续分布的方法如下:

重复多次:

  1. 从假设的分布中模拟所需样本量的样本。

  2. 估计分布的参数。

  3. 将估计的参数视为总体值,通过概率积分变换转换为均匀性。(您可以在此步骤计算 KS 统计量而不进行转换;但是,它使计算更简单。)

  4. 计算 KS 检验统计量。

收集模拟统计量,并计算出模拟统计量至少与观察样本值H1

如果你做对了,你应该能够重现 Lilliefors 论文的结果(无论如何,他的准确度有限。