在进行了Shapiro-Wilk正态性检验后,我已对此进行了绘制。测试表明,总体上可能呈正态分布。但是,如何在此情节中看到这种“行为”?
更新
数据的简单直方图:
更新
Shapiro-Wilk测试表明:
在进行了Shapiro-Wilk正态性检验后,我已对此进行了绘制。测试表明,总体上可能呈正态分布。但是,如何在此情节中看到这种“行为”?
更新
数据的简单直方图:
更新
Shapiro-Wilk测试表明:
Answers:
“ 测试表明,人口很可能呈正态分布。 ”
没有; 它没有显示出来。
假设检验不能告诉您空值的可能性。实际上,您可以打赌此null为false。
QQ图不能很好地表明异常情况(该图很直)。左尾巴也许比您期望的短一些,但这确实无关紧要。
直方图可能也没有说太多。它的确也暗示左尾巴稍短。但是看这里
您的数据所来自的总体分布将不完全正常。但是,QQ图显示正态性可能是一个不错的近似值。
如果样本量不太小,那么缺少对Shapiro-Wilk的拒绝可能会说出差不多的话。
更新:包含实际Shapiro-Wilk p值的编辑很重要,因为实际上这表明您会拒绝典型有效水平的空值。该测试表明您的数据不是正态分布的,并且图所示的轻微偏斜可能是测试所拾取的。对于可能假设变量本身具有正态性的典型程序(一个样本t检验是我想到的),在看起来相当大的样本量的情况下,这种轻微的非正态性几乎不会产生任何后果。所有-拟合优度检验的问题之一是,它们在不重要的时候(当样本量足够大以检测一些适度的非正态性时)更可能拒绝。同样,在最重要的时候(样本量较小时),他们更有可能无法拒绝。
如果数据是正态分布的,则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)
qqPlot
功能car
。
一些检查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图应显示一条直线:我会说没有。尾巴上有明显的弯曲,甚至在中部附近也有一些骚动。从视觉上看,我仍然可能愿意(取决于检查正常性的目标)说这些数据是“合理地”正常的。
但是请注意:对于大多数要检查正态性的目的,您只需要均值的正态性而不是观测值的正态性,因此中心极限定理可能足以救您。另外:虽然正常性通常是您需要“正式”检查的一种假设,但是许多测试表明,对于不满足这种假设,它并不敏感。
我喜欢'R'库'car'中的版本,因为它不仅提供了集中趋势,而且还提供了置信区间。它提供视觉指导,以帮助确认数据的行为是否与假设分布一致。
library(car)
qqPlot(lm(prestige ~ income + education + type, data=Duncan),
envelope=.99)
一些链接: