测试样本是否遵循给定分布

机器算法验证 假设检验 卡方检验
2022-03-05 11:30:17

假设我有一个样本 统计 (例如,从进行实验后收集的数据计算的标量)并且想“测试”是否遵循给定的概率密度函数(这当然是不适定的- 见下文)。yyp(x)

  1. 我如何正式将其表达为假设检验问题?还有,这是独一无二的吗?即,是否有多种方法可以将此任务(用文字描述为“test if ”)作为假设检验问题?yp(x)
  2. 和 (b)的特殊情况,我该怎么做p(x)=N(μ,σ2)p(x)=χk2
2个回答

有多种方法可以测试样本是否可能是从给定分布中随机选择的。

这些可能包括检查样本均值是否与总体一致,同样检查方差或其他参数。

我解释您的问题是为了测试样本的分布(可能在其经验 CDF 中表示)是否与总体分布一致。

例如,假设我们碰巧有一个大小为 的样本来自指数分布,平均值为,比率为,标准差也这些规格的虚构样本在下面的 R 中被抽样和总结。n=50021/22.

set.seed(2022)
x = rexp(500, 1/2)
summary(x);  sd(x)
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
 0.007349  0.569684  1.371701  1.987886  2.703088 12.677304 
[1] 1.923795  # sample SD

不知道样本是如何获得的,您可能已经猜到它可能来自总体Norm(μ=2,σ=2)

boxplot(x, horizontal=T, pch=19, col="skyblue2")

在此处输入图像描述

箱线图的形状已经表明这不是一个正常的样本。

可以使用 R 中的 Kolmogorov-Smirnov 拟合优度检验来检验总体为 这个零假设被强烈拒绝,P 值非常接近Norm(μ=2,σ=2).0.

ks.test(x, pnorm, 2, 2)

        One-sample Kolmogorov-Smirnov test

data:  x
D = 0.15955, p-value = 1.762e-11
alternative hypothesis: two-sided

更一般地说,如果您不知道总体均值和标准差,您可以使用几个检验之一来查看样本是否符合任何正态分布。一种这样的测试是 Shapiro-Wilk 测试,如下所示,使用 R;正态性的原假设被强烈拒绝。

shapiro.test(x)

        Shapiro-Wilk normality test

data:  x
W = 0.83826, p-value < 2.2e-16

注意:重要的是要记住,KS 检验适用于所有参数已知的特定人群分布。从样本中估计参数是作弊的。

KS 检验不拒绝数据x来自但强烈拒绝总体可能是 Exp(rate=1/2),Exp(rate=1).

ks.test(x, pexp, 1/2)

        One-sample Kolmogorov-Smirnov test

data:  x
D = 0.020534, p-value = 0.9843
alternative hypothesis: two-sided

ks.test(x, pexp, 1)

        One-sample Kolmogorov-Smirnov test

data:  x
D = 0.25929, p-value < 2.2e-16
alternative hypothesis: two-sided

KS 检验将样本的经验 CDF (ECDF) 与总体分布的 CDF 进行比较。检验统计量是两者之间的最大垂直距离。D

下图在左侧显示了 ECDF 和 CDF 之间的良好拟合,而在右侧显示了较差的拟合。

在此处输入图像描述

图的R代码:

par(mfrow=c(1,2))
 hdr1="Good fit to EXP(1/2)"
 plot(ecdf(x), main=hdr1)
  curve(pexp(x, 1/2), add=T, col="green3", lwd=3)
 hdr2="Bad fit to EXP(1)"
 plot(ecdf(x), main=hdr2)
  curve(pexp(x, 1), add=T, col="red", lwd=2)
par(mfrow=c(1,1))

所有标准假设检验都遵循以下步骤:

  1. 制定零假设。的独立正态分布。”)μ=0σ=1
  2. 选择一个α
  3. 选择一个统计变量X
  4. 收集数据
  5. 从数据中计算统计量x
  6. 则拒绝 null (注意是具有概率分布的随机变量,而是该变量所取的特定值;是在给定零假设的情况下,得到比你实际看到的更极端或更极端的概率。)P(Xx|H0)αXxP(Xx|H0)

因此,要测试样本是否遵循给定分布,您需要一些度量标准来测量与给定分布的“距离”,然后将其用作统计数据。

我如何正式将其表达为假设检验问题?

你所需要的只是一些函数也就是说,一个函数将有序对作为输入并给出一个实数作为输出,其中有序对的第一个元素是 PDF,第二个元素是观测值的样本。一旦有了这样的函数,您就可以找到该函数为您的样本提供的内容,然后在给定零假设(在这种情况下,零假设是样本来自建议的分布)的情况下计算您将获得样本的概率该函数将给出大于或等于您实际得到的结果。f:((RR)×Rn)Rn

还有,这是独一无二的吗?

不,每个功能都提供不同的测试。选择函数时要寻找的两个属性是易处理性(计算的难易程度P(Xx|H0)) 和功率(函数与我们认为的“同意”分布的对应程度如何)。如果您认为某人故意试图伪造特定分布,那么您可能需要一个针对您认为他们可能犯的错误量身定制的函数(例如,伪造正态分布的人可能专注于使均值和 sd 正确,但忽略峰态)。