构建QQ图的最佳方法

机器算法验证 分位数 QQ图 加权数据 加权抽样
2022-03-21 13:59:12

我想使用 QQ 图评估数据集的正态性(即对数正态分布的数据转换回正态)。

我偶然发现有很多方法可以构建这样的图,因为有多种方法可以确定样本分位数;以及根据理论分位数选择放置它们的不同方法。

作为说明,我生成了一个大小为的随机样本,并将该样本的分位数与理论分位数作图。蓝点对应于理论和样本分位数根据Filliben 的估计,橙色点对应于理论分位数,而匹配的样本分位数仍然是数字的标题对应于样本分位数的确定方式;R* 符号引用此表HD 引用了Harrell-Davis estimator,维基百科页面上没有提到它。SciPy 默认对应scipy.mstats.mquantiles的默认行为N=50qa={1,,N}/Nqa,这似乎也没有记录在维基百科上。

R4 图的橙色点对应于scipy.stats.problot的行为,它将排序后的数据与使用 Filliben 估计值评估的理论分位数进行对比。

QQ图比较

第二个图显示了针对的这些不同的分位数估计。qa

分位数估计量的比较

差异相当微不足道。HD 估计器似乎产生了更平滑的曲线,这让我很想使用它,但这是一个相当肤浅的理由。

我通过组合几个不同权重的数据集来获得我的实际数据;我肯定会有超过 50 分,可能从不同的分位数估计器可能会导致采用不同的方法来合并这些权重,因此我想在解决这个问题之前对所述估计器做出“有根据的”选择。任何输入表示赞赏。O(104)O(106)

作为最终精度:我必须假设数据是对数正态分布的,因为我需要在构建 QQ 图之前估计分布的参数以将其缩放回标准正态分布。这更像是对直方图所暗示的内容的后验验证,而不是实际探索。

编辑:我意识到我并不真正需要所有的分布参数,只需要在取日志之前的班次与标准正态比较。就我而言,它可以合理地介于 0 和一阶统计量之间。



为了扩展我的实际问题,这里有一些我的数据示例。“样本分位数”轴对应于转换为标准法线的数据,即其中是实际数据。数据点为蓝色,橙色线穿过第一和第三四分位数,黑色点是从标准正态分布中采样的随机变量的 20 个实现,如@BruceET 的回答中所建议的那样。X=ln(Yτ)μσY

这里的关键是我的数据点是加权的。我不能只对它们进行排序以获得样本分位数;我的分位数是数据点的线性组合,这种转换取决于权重。转换的矩阵非常稀疏,但就我感兴趣的分位数而言,我还没有设法比线性时间更有效地构建它。因此,与其根据评估的理论值确定分位数,不如说,seq(.5/n, 1-.5/n, length=n)对于我的观察次数,我用更小的来做。n=NNn

QQOK

该图清楚地表明我的数据(是对数正态分布的正确估计参数。N4106

QQNOOK

这清楚地表明数据()不是对数正态分布或估计失败。N107

在这两种情况下,我都使用n=1001

我从实际体重确定“分位数权重”的方式是基于此处描述的方法,使用 R7 定义。请注意,当不使用已排序的原始数据集时,Filliben 的估计值超出了窗口。

我现在更清楚地看到,没有分位数估计方法;但是,我想知道不使用所有数据点会在多大程度上影响结果图。

1个回答

你正常的QQ图看起来不错。对于大小样本n=50,看来您可能正在争取比 QQ 图通常提供的更精确。

几种风格的正态 QQ 图用于判断可能正态样本的正态性。一些 QQ 图将数据放在横轴上,一些放在纵轴上。(首选用法似乎因国家/地区而异。)在 R 中,默认是将数据放在垂直轴上,但参数datax=T会将数据放在水平轴上。

查看图有时比对正态分布的拟合优度的正式测试更有用。但是看情节与正式测试不同,因此从情节评估正态性需要熟悉您使用的情节类型。一般的想法是在制作QQ图时将正常的分位数函数转换为直线。因此,正常样本的 QQ 图应该是“接近”线性的(可能与样本中心的尾部线的偏差更大)。

在 R 中制作的 QQ 图使用了两种引导线。一种线(蓝色,左下方)将下四分位数(数据和理论)与上四分位数连接起来。其他用途y=X¯/S+x/S,在哪里X¯S分别是样本均值和 SD(当数据在水平轴上时)。

set.seed(2021)
x = rnorm(100, 50, 7)  # SD is 7
par(mfrow=c(1,2))
 qqnorm(x, datax=T)
  qqline(x, datax=T, col="blue", lwd=2)
 qqnorm(x, datax=T)
  abline(-mean(x)/sd(x), 1/sd(x), col="red", lwd=2)
par(mfrow=c(1,1))

在此处输入图像描述

一些统计程序将弯曲的“置信带”放在由 QQ 图制作的数据云周围,认为带外的“太多”数据点可能会在非正式的正态性测试中被拒绝。

另一种方法是在数据的 QQ 图的背景中叠加 20 个额外的 QQ 图,以建议一个非正式的 95% 置信区域。使用已知从正态分布中采样的数据。这些额外样本的均值和方差可能是已知的或假设的μσ或正在绘制的样本的平均值和 SD。

为了制作这些额外的 QQ 图(以及用于其他目的),有时可以方便地“从头开始”制作 QQ 图,而不是使用预编程的程序。

对于大小样本n使用理论分位数和排序数据很方便,如下所示。下图使用与上图相同的数据x

th.quant = qnorm(seq(.5/n, 1-.5/n, length=n))
dta.quant = sort(x)

qqnorm(x, datax=T)
n = 100;  th.quant = qnorm(seq(.5/n, 1-.5/n, length=n))
for(i in 1:20) {
 points(sort(rnorm(n,mean(x),sd(x))), th.quant, col="green")
}
points(sort(x),th.quant, pch=19)  # refresh

在此处输入图像描述