I am using R. I have two data sets. The first one is generated with rnorm(), the second one is created manually.
Histogram of the first set is here
and Shapiro-Wilk (shapiro.test()) returns p-value 0.189, which is expected.
> shapiro.test(d)
Shapiro-Wilk normality test
data: d
W = 0.96785, p-value = 0.189
The second data set are residuals from linear regression fitting function (got by lm()) and its histogram is here:
I'd expect it to be detected as a normal distribution or, at least, pretty close to it. But Shapiro-Wilk gives p-value 4.725e-05, which strictly denies the possibility of it being a normal distribution.
> shapiro.test(fit$residuals)
Shapiro-Wilk normality test
data: fit$residuals
W = 0.70681, p-value = 4.725e-05
Do you know, why does it behave like this?
Data 1 (d)
-0.07205526
-0.645539
-2.025838
0.2518213
1.293012
-1.236223
-0.4183682
1.208981
-0.1084781
-0.7542519
-0.902902
0.1428906
-0.5124051
-1.959943
-1.272916
-1.706359
1.288966
0.7631183
-2.163717
-0.2049349
-0.7565308
1.12756
0.5250697
1.002177
0.6505888
0.7055426
1.143954
-0.02660517
-1.539839
-1.02968
-0.1616118
0.3548749
0.1531889
0.1214934
0.6672141
0.8862341
-0.2431952
-0.7877379
0.3775137
-0.8941234
1.003717
-0.07051517
-0.009962349
-1.501927
-0.1547865
-1.209728
0.3160188
-0.694145
0.3009792
0.07562172
Data 2 (fit$residuals)
-0.01270401
-0.01266431
-0.01109333
-0.009522339
-0.007951352
-0.006380364
0.09519062
-0.003238389
-0.001667402
-9.641439e-05
0.001474573
0.003045561
0.004616548
0.006187535
0.007758523
-0.09067049
0.0109005
0.01247149
-0.001270401
0.01561346
EDIT
I've added additional case with just 10 observations generated by rnorm()
function too.
Data doesn't look very normally distributed at first sight, but Shapiro-Wilk tells otherwise.
> shapiro.test(dd)
Shapiro-Wilk normality test
data: dd
W = 0.93428, p-value = 0.4912
Data 3 (dd)
-0.5272838
-0.03053323
0.009022335
0.8179343
0.8927589
0.3694592
-0.7372785
0.8209204
0.1088729