r - 计算 R 中连续分布的 Anderson-Darling 检验统计量

标签 r comparison distribution

首先,我实际上不确定这是否属于 CrossValidated 还是属于 StackOverflow。如果我在错误的网站上发布了此问题,我深感抱歉。

我正在使用 R 将多个数据集与观测数据集进行比较。每个数据集都有大约 1000 万个连续浮点值(每个数据集的数据向量长度并不完全相同)。

我通常使用 ks.test() 计算 Kolmogorov-Smirnov 统计量标准功能stats包,但现在我对分布的极值特别感兴趣。据我了解,KS 几乎隐藏了这些。 Kullback-Leibler 也会发生同样的情况(如果我错了,请随时纠正我)。

另一方面,Anderson-Darling 检验经过加权以考虑分布的极值。但是,我无法找到仅适用于两个向量作为输入的 AD 测试的简单实现(如 stats::ks.test() 通过仅发出 ks.test(obs.data, mod.data) 来实现,其中两个输入是简单向量),而且我都没有“已经能够了解如何使我的数据适应我尝试过的功能。

我查看了以下函数:

  • cvm.test()从包装 dgof ,带有选项type="A2" :需要分布作为第二个输入,而不是向量
  • ad.test()从包装 truncgof :需要一个分布作为第二个输入
  • ad.test()从包装 goftest : 如上所述
  • ad.test()从包装 ADGofTest : 如上所述
  • ad.test()从包装 kSamples :在这种情况下,我不清楚输出代表什么,以及如何对其进行标准化,因为它似乎严重依赖于样本数量
  • ad.test()从包装 nortest :仅测试正态性
  • ADbootstrap.test()从包装 homtest :这似乎与标准 AD 测试有很大不同

总之,以上都不能像标准 ks.test() 那样简单地使用函数或作为 Kullbach-Leibler 函数 KLdiv从包装 flexmix (它接受密度值矩阵)。

如何使用 R 计算两个分布之间的 AD 统计量(仅作为连续数据的两个向量提供)?

最佳答案

我不是统计学专家,最近正在学习AD测试,和你有同样的问题。阅读了一些文章后,我有点知道如何通过 kSamples 解释 ad.test() 的结果。

最初的AD测试是为了检验一个数字样本是否属于某个分布。因此,为了比较两个样本(或更多),我们应该使用以 k 样本方式进行测试的函数,而不是原来的方式。

如果您将两个向量输入到 kSamples 包中的 ad.test() 中:

library(kSamples)
x <- ad.test(c(1,2,3,4,5), c(11,22,33,44,55))

结果给你一个矩阵:

print(x)

Anderson-Darling k-sample test.

Number of samples:  2
Sample sizes:  5, 5
Number of ties: 0

Mean of  Anderson-Darling  Criterion: 1
Standard deviation of  Anderson-Darling  Criterion: 0.63786

T.AD = ( Anderson-Darling  Criterion - mean)/sigma

Null Hypothesis: All samples come from a common population.

              AD  T.AD  asympt. P-value
version 1: 3.913 4.566          0.00517
version 2: 4.010 4.726          0.00452

或者,

x$ad

               AD   T.AD  asympt. P-value
version 1: 3.9127 4.5664        0.0051703
version 2: 4.0100 4.7260        0.0045199

AD 是 Anderson-Darling 统计量,通过相应的方程计算得出。 ( ref article ), T.AD 通过 (AD-(k-1))/sigma 计算,其中 (k-1) 表示零假设下 AD 统计量的极限分布是 (k-1) 倍卷积单样本 AD 统计量的渐近分布; sigma 是 AD 统计量的标准差。然后渐近。 P 值将是我们正在寻找的“p 值”。对于行,版本 1 表示连续群体中的 k 样本 AD 检验,版本 2 表示离散父群体中的 k 样本 AD 检验。所以我猜测,如果您的数据是连续的,您应该采用第一行的 p 值,如果它是离散的,则应采用第二行。

关于r - 计算 R 中连续分布的 Anderson-Darling 检验统计量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31133870/

相关文章:

r - 多个 ts 的 auto.arima 残差

iphone - 在没有App Store的情况下将App分发给大型但外部成员

java - 字符和字符串之间的比较没有像我期望的那样工作。我究竟做错了什么?

python - 有没有更好的方法来检查多个变量是 Python 中的单一类型?

javascript - 快速查找两个字符串是否具有共同字符的方法

vba - 使用 VBA 分发 Excel 电子表格的最佳方式

iphone - 如何从 Xcode 获取 ipa 文件以在真实设备中运行 iPhone 应用程序?

r - 将数据框和列表连接到包含列表列的数据框中

r - 使用 GIT 面板在 RStudio 中提交大量文件

r - 如何更改英文工作日缩写?