R - QQPlot:如何查看数据是否正态分布

机器算法验证 r 数据可视化 正态分布 直方图 QQ图
2022-02-01 08:07:10

我在进行 Shapiro-Wilk 正态性检验后绘制了此图。测试表明,总体很可能是正态分布的。但是,如何在这个情节上看到这种“行为”?在此处输入图像描述

更新

数据的简单直方图:

在此处输入图像描述

更新

夏皮罗-威尔克测试说:

在此处输入图像描述

4个回答

如果数据呈正态分布,则 QQ 正态图中的点位于对角直线上。您可以使用命令将此线添加到您的 QQ 图qqline(x),其中x是值的向量。

正态分布和非正态分布的例子:

正态分布

set.seed(42)
x <- rnorm(100)

带线的 QQ 正态图:

qqnorm(x); qqline(x)

在此处输入图像描述

与直线的偏差很小。这表明正态分布。

直方图:

hist(x)

在此处输入图像描述

非正态 (Gamma) 分布

y <- rgamma(100, 1)

QQ 正态图:

qqnorm(y); qqline(y)

在此处输入图像描述

这些点显然遵循直线以外的另一种形状。

直方图证实了非正态性。该分布不是钟形的,而是呈正偏态的(即,大多数数据点位于下半部分)。正态分布的直方图显示分布中心的最高频率。

hist(y)

在此处输入图像描述

测试表明,人口很可能是正态分布的。

不; 它没有显示出来。

假设检验不会告诉您 null 的可能性有多大。事实上,你可以打赌这个 null 是假的。

QQ 图没有给出强烈的非正态性指示(图相当直);左尾可能比您预期的要短一些,但这并不重要。

直方图原样可能也没有说太多。它也暗示了一个略短的左尾巴。但是看到这里

您的数据来自的人口分布不会完全正常。然而,QQ 图显示正态性可能是一个相当好的近似值。

如果样本量不是太小,那么缺乏对夏皮罗-威尔克的拒绝可能会说得差不多。

更新:您对包含实际 Shapiro-Wilk p 值的编辑很重要,因为实际上这表明您会在典型的显着水平上拒绝空值。该测试表明您的数据不是正态分布的,并且图表显示的轻度偏度可能是测试所发现的。对于可能假设变量本身正态性的典型程序(想到的是单样本 t 检验),在看起来相当大的样本量下,这种轻微的非正态性在全部——拟合优度测试的问题之一是它们更有可能在无关紧要时拒绝(当样本量大到足以检测到一些适度的非正态性时);同样,他们更有可能在最重要的时候拒绝拒绝(当样本量很小时)。

用于检查 R 中正态性假设有效性的一些工具

library(moments)
library(nortest)
library(e1071)

set.seed(777)
x <- rnorm(250,10,1)

# skewness and kurtosis, they should be around (0,3)
skewness(x)
kurtosis(x)

# Shapiro-Wilks test
shapiro.test(x)

# Kolmogorov-Smirnov test
ks.test(x,"pnorm",mean(x),sqrt(var(x)))

# Anderson-Darling test
ad.test(x)

# qq-plot: you should observe a good fit of the straight line
qqnorm(x)
qqline(x)

# p-plot: you should observe a good fit of the straight line
probplot(x, qdist=qnorm)

# fitted normal density
f.den <- function(t) dnorm(t,mean(x),sqrt(var(x)))
curve(f.den,xlim=c(6,14))
hist(x,prob=T,add=T)

虽然直观地检查您的直觉是否与某些测试的结果相匹配是一个好主意,但您不能期望每次都那么容易。如果试图检测希格斯玻色子的人只相信他们的结果,如果他们能够直观地评估它们,他们将需要非常敏锐的眼睛。

尤其是对于大数据集(因此,通常随着能力的增加),统计数据往往会发现最小的差异,即使它们很难用肉眼辨别。

话虽这么说:正常情况下,您的 QQ 图应该显示一条直线:我会说它没有。尾巴有明显的弯曲,甚至靠近中间也有一些骚动。不过,从视觉上看,我仍然可能愿意说(取决于检查正态性的目标)这些数据是“合理的”正常的。

但是请注意:对于大多数要检查正态性的目的,您只需要平均值的正态性而不是观测值的正态性,因此中心极限定理可能足以拯救您。此外:虽然正态性通常是您需要“正式”检查的假设,但许多测试已被证明对不满足此假设非常不敏感。