Kolmogorov-Smirnov 检验?

机器算法验证 kolmogorov-smirnov 测试
2022-03-28 07:44:33

我正在研究船舶交通对一只小海鸟造成的干扰。我观察了焦点动物一段时间,并记录了它们在观察过程中是否从水中飞出。这种特殊的鸟在不受干扰时不会以高概率飞行(大约 10% 的时间)。事后,我将到最近的船的距离附加到每次观察中(感兴趣的船有 GPS 定位器每 5 秒记录一个点)。

我已经绘制了所有观测值的累积分布函数,以及鸟类从水中飞出的观测值与最近船舶距离的函数关系。正如预期的那样,当船靠近时观察到鸟飞行的大部分观察结果。

ecdf 情节,飞,没有飞,所有 obs

我可以使用 Kolmogorov-Smirnov 检验来测试飞行观测值和总观测值的分布是否存在统计差异?我的想法是,如果这两种分布不同,则表明船距对飞行有影响。我担心这些分布函数不是独立的,因为飞行观测是总观测的一个子集。

想法?

在这个网站上进一步阅读后,我想我可以测试发生飞行的观察分布(F)与没有发生飞行的观察分布(NF),因为它们是独立的。如果这些分布相同 F=NF,那么我们可以假设 (F) 和 (TOT = 所有观察值) 的分布相同,因为我们知道 (F) 的分布等于自身和 (F)+ (T) = (TOT)。对?

更新:2/12/14

根据@Scortchi 的建议,我在逻辑回归框架中调查了飞行发生率与到最近船舶的距离之间的关系。存在轻微的关系(负斜率),但 p 值不显着,表明真实斜率可能为零。根据描述性统计数据(包括 ecdf 图),我怀疑当船舶不影响行为时,近距离船舶的影响被许多观察结果所淹没。然后我使用了 R 包分段(http://cran.r-project.org/web/packages/segmented/segmented.pdf) 尝试在模型中找到断点。该程序发现,在离船 2.6 公里处打破数据并拟合两个单独的系数比单系数模型要好。接近船舶接近的斜率系数为负,表明船舶影响飞行响应直到约 2.6 公里(p 值 < 0.001)。第二个斜率的系数略为正,但 p 值在 0.05 alpha 水平上不显着(p 值 = 0.11)。因此,总而言之,分段回归线能够检测到飞行概率增加的阈值差异。当船舶超过 2.6 公里时,飞行概率的估计值为 0.11。恰如其分地,我观察到了 79 只鸟,当时甚至没有船只在研究区(>

感谢所有的建议。我希望这个问题以及建议和答案对其他人有所帮助。

1个回答

有趣的问题。我有两种想法,一种是一般性的,另一种是关于如何表征您的数据......

首先,关于比较分布,我同意@Glen_b 和@Scortchi 的观点,即您不想比较图表中显示的 Fly 与 All(但覆盖 D 统计图的好主意)。因为您坚信分布可能不同的位置,而不仅仅是它们不同,您可能需要考虑比较两个分布的分位数。有一篇关于该主题的不错的博客文章,它通过 R 代码开发测试方法。还有一个 R 包WRS,它实现了基于分位数的测试方法。

其次,我会考虑完全放弃使用正式的比较测试,而是使用证据权重(WOE)。这种方法通常用于需要决策框架来处理各种预测因素的不同风险水平的行业。示例包括保险承保、信用评估和临床试验。

在您的设置中,存在飞行的基线“风险”(您说的是 10%),但是在某些距离存在船只的情况下,飞行的几率似乎大大增加。使用 WOE 方法,您可以将飞行几率的变化传达为船舶距离的函数,这对于非专业观众来说很容易理解(嗯,至少比理解与测试统计相关的 p 值更容易)。请注意,这与@Scortchi 使用逻辑回归的建议密切相关,但使用 WOE,您并没有尝试拟合回归模型。

在 Statistica 的网站上有很好的文档来应用该方法,但我发现的最好的介绍是在一本书Credit Scoring, Response Modeling, and Insurance Rating: A Practical Guide to Forecasting Consumer Behavior中。如果您搜索“WOE”一词,您会发现多个部分讨论该想法,第 5.1 节介绍了计算 WOE(非常简单)和评估决策结果的完整示例。最后,请注意有一个关于这个主题的stackoverflow 帖子,它不是很发达,但是有一个指向 PDF 的链接,在 SAS 编码的上下文中遍历另一个示例。