绘制非参数 (E)CDEF 置信包络以进行比较

机器算法验证 r 分布 置信区间 非参数 kolmogorov-smirnov 测试
2022-04-21 11:21:01

我之前曾询问过一种方法来测试两个样本是否来自同一分布(如果两个样本来自同一分布,则为非参数检验)。我很高兴得知 Kolmogorov-Smirnov 检验。这似乎非常适合使用 p 值进行假设检验。

现在我有兴趣将其推广到使用置信带对样本进行视觉比较,我想知道我的想法是否有效,如果是,那么我如何用 R 实现它,如果不是,那么可能有什么更好的方法。

这个想法是为N个样本中的每个样本直观地绘制 CDF 置信带。这应该显示两件事。首先,置信带的“紧密度”将表明样本量对于得出推论有多充分。其次,任何一对样本的置信带不重叠的地方都将表明 KS 统计量的显着差异,即一个 CDF 似乎“大于”或“小于”另一个的点。

这有意义吗?我希望在 Google 图片上找到一个示例图,但我找到的最接近的只有一个示例:

带置信带的 ECDF

我的图表将是相似的,只是我会显示N个样本并在置信带之间寻找空白区域。

如果这听起来确实合理,那么我有几个具体问题:

  • 这是众所周知的技术吗?(参考描述?)
  • 我应该如何计算 CDF 置信带?(是否有我应该使用的 R 包?)
  • 置信带的视觉比较的有效性如何?(如果我绘制两个样本,那么非重叠点与 KS 测试的显着结果的对应程度有多接近?)
  • 比较两个以上的样本时,我应该记住哪些陷阱?(我是否应该按照 Bonferroni 校正的精神调整我的置信带参数?)注意:我可以接受比较比 p 值更非正式的比较。

谢谢!

更新

我找到了我现在想到的那种图表的例子:

图形

我将尝试研究如何使用 ggplot2 和评论中推荐的 ecdf.ksCI() 函数创建这样的图形。

更新 2

感谢您在下面的回答。我能够生成我的图表,这是一个示例。我很满意!

带有置信带的 CDF

1个回答

您可以使用 Kolmogorov-Smirnov 检验,并将其反转以获得置信带。是来自某个连续分布函数的独立同分布观察。然后 KS 检验统计量由 其中是订单统计。值得注意的是,的分布不依赖于假设的零分布(必须预先指定)。现在我们可以反转这个假设检验以获得置信带。我们可以计算 X1,X2,,XnF

Dn=supxF^n(x)F0(x)∣=maxi=1,2,,nmax{inF0(x(i)),F0(x(i))i1n}
x(1)x(n)DnF0
PF0(Dnd)=PF0(supxF^n(x)F0(x)∣≤d)=PF0(F^n(x)dF0(x)F^n(x)+d,for all x)
这个计算表明这确实是一个同时置信带,对所有同时有效。x

可以在 R 包(在 CRAN 上)sfsmisc的函数中找到它的实现ecdf.ksCI(免责声明:那最初是我的代码)