测试对称分布

机器算法验证 假设检验 统计学意义 kolmogorov-smirnov 测试 对称
2022-04-07 15:18:28

假设我们有来自未知实值分布样本我们对检验是否围绕零对称的统计数据感兴趣。(在我的应用程序中,仅约为 50,因此我对非渐近状态感兴趣。)ns1,...,snDDn

如果是对称的且,则,因此通过比较正数和负数的计数,我们得到一个中位数为零的简单统计量,即对称所必需的。为了进行更强大的测试,我打算使用两个样本的 Kolmogorov-Smirnov 测试来比较但后来我突然意识到,也许我不是第一个考虑这个问题的人:)DsDPr(s>0)=Pr(s<0)sis1,...,sns1,...,sn

任何参考建议或(理想情况下)实际测试统计数据将不胜感激。

2个回答

如果您只查看正值和负值的计数,那么您会丢失大量信息,因此您的测试不会强大。这也无法完全测试对称性,因为它无法将对称分布与具有相同概率的正负结果的非对称分布区分开来。

因此,您的后一个想法(对于比较的两个样本Kolmogorov-Smirnov 测试)表明您正在朝着正确的方向思考。虽然这是一个很好的起点,但您提出的具体测试存在严重问题,因为 (a) 它本质上是“重复计算”数据;(b) 两个数据向量不是相互独立的。下面我将说明这会导致在原假设下的 p 值不均匀。为此,让我们首先在. (我使用此处列出的一般方法添加了一些花里胡哨的东西。)ssR

symmetry.test <- function(x, median = 0, exact = NULL, ...) {
  
  #Get data information
  DATA.NAME <- deparse(substitute(x))
  xx <- x-median
  n <- length(x)
  
  #Implement KS test
  TEST <- ks.test(x = -xx, y = xx, alternative = 'two.sided', exact = exact, ...)
  TEST$method      <- 'Symmetry test using KS test for magnitudes of sub-samples'
  TEST$alternative <- paste0('Sampling distribution is not symmetric around ', 
                             round(median, 4))
  TEST$data.name   <- paste0('Sample vector ', DATA.NAME, ' containing ', n, ' values')
  
  TEST }

现在,让我们尝试在对称分布(例如,标准正态分布)上实现这一点,并查看得到的 p 值分布。我将通过模拟随机样本并计算您的测试的 p 值来做到这一点。从下面的直方图中可以看出,在这种情况下,检验的 p 值并不统一。M=106n=100

#Set parameters for simulation
n <- 100
M <- 10^6

#Simulate p-values from the test (with symmetric distribution)
set.seed(1)
PVALS <- rep(0, M)
for (i in 1:M) {
  DATA <- rnorm(100)
  TEST <- symmetry.test(DATA)
  PVALS[i] <- TEST$p.value }

#Show histogram of p-values
hist(PVALS, xlim = c(0,1), breaks = (0:100)/100, freq = FALSE, col = 'blue',
     main = 'Simulation of p-value from proposed test', 
     xlab = 'p-value', ylab = 'Density')

在此处输入图像描述

因此,不幸的是,您提出的测试并没有真正起作用。如果有可能挽救它,我会以某种方式修改测试以考虑与标准假设的偏差。作为一个起点,我建议最好做一个两样本测试比较向量定义的ss+simax(0,si)si+max(0,si). 这将改善“重复计算”数据的问题,并将大大减少两个向量之间的统计依赖性。由于这些数据向量是“审查”的,因此您需要一些可以处理审查数据的非参数测试(标准 KS 测试不适用于这种情况)。如果您要在该方向上开发测试,您可能能够构建一个为对称分布提供统一 p 值的测试。

当然,作为最后的观察,对于中位数未知的情况,您可以只使用统计文献中的标准对称性检验之一。这是文献中感兴趣的标准案例,并且已经开发了许多现有的测试。未能在您的问题中使用已知的中位数会导致轻微的功率损失,但是一旦您拥有大量数据,它就不应该有太大的不同。

按递增值排序,然后按递减值排序,计算相关系数(始终为负),加 1,然后将结果除以 2。当且仅当样本对称时,最终值为 0。最大值为 1/2。不需要关于平均值或中位数的假设。在正态性或均匀性假设下,有各种样本大小的 p 值表:https ://arxiv.org/abs/2005.09960 (参考所含论文)。希望能帮助到你。