与其依靠残差的正态性检验,不如通过理性判断来评估正态性。正常性测试不会告诉您数据是正常的,只是告诉您数据不是正常的。但是鉴于数据只是样本,您可以确定如果没有测试它们实际上不是正常的。要求大致正常。测试不能告诉你。在较大的N处,测试也会变得非常敏感,或者更严重的是,随着N的变化,敏感度也会有所不同。您的N处于敏感度开始变高的范围内。如果您多次在R中运行以下模拟并查看这些图,那么您会发现正态性测试对大量正态分布表示“不正态”。
# set the plot area to show two plots side by side (make the window wide)
par(mfrow = c(1, 2))
n <- 158 # use the N we're concerned about
# Run this a few times to get an idea of what data from a
# normal distribution should look like.
# especially note how variable the histograms look
y <- rnorm(n) # n numbers from normal distribution
# view the distribution
hist(y)
qqnorm(y);qqline(y)
# run this section several times to get an idea what data from a normal
# distribution that fails the normality test looks like
# the following code block generates random normal distributions until one
# fails a normality test
p <- 1 # set p to a dummy value to start with
while(p >= 0.05) {
y <- rnorm(n)
p <- shapiro.test(y)$p.value }
# view the distribution that failed
hist(y)
qqnorm(y);qqline(y)
希望通过模拟,您可以看到正态性测试可以轻松拒绝看起来很正常的数据,而正态分布的数据看起来可能与正态相差很远。如果要查看该值的极高值,请尝试n <- 1000
。分布看起来都正常,但仍以与较低N值大致相同的速率通过测试失败。相反,如果N分布较低,则通过测试的结果可能与正常情况相去甚远。
SPSS中的标准残差图对于评估正态性不是非常有用。您会看到异常值,范围,拟合优度,甚至杠杆。但是很难从中得出常态。尝试以下模拟比较直方图,分位数-正态图和残差图。
par(mfrow = c(1, 3)) # making 3 graphs in a row now
y <- rnorm(n)
hist(y)
qqnorm(y); qqline(y)
plot(y); abline(h = 0)
从最后一个绘图中很难分辨出正态性或任何其他东西,因此很难对正态性进行诊断。
总而言之,通常建议不要依赖于正态性检验,而应依靠残差的诊断图。如果没有这些图或您的问题中的实际值,那么很难有人就您的数据在分析或转换方面需要什么提供可靠的建议。为了获得最佳帮助,请提供原始数据。