# [R] Problems with Shapiro Wilk's test of normality.

From: Fredrik Karlsson <dargosch_at_gmail.com>
Date: Thu 10 Nov 2005 - 02:33:38 EST

Hi,

I am trying to create a table with information from Shapiro Wilk's test of normality.
However, it fails due to lack of sample size, it says, but the way I see it, this is not a problem.
(See the table of sample sizes (almost) at the bottom).

Applying a different function using a similar ftable call is not a problem (See the bottom table).

This is R 2.1.0 on Linux (Gentoo).

/Fredrik

> shapiro.p.value <- function(x){
+ if(length(! is.na(x)) > 3 & length(! is.na(x)) < 5000 ){
+ p <- shapiro.test(x)$p.value + return(p) + }else{ + return(NA) + } + } > > distribution.table.fun <- function(x,na.rm=T,digits=1){ +  + if(length(! is.na(x)) > 3 & length(! is.na(x)) < 5000){ + # shapTest <- shapiro.test(x) + # W <- shapTest$statistic
+ W <- "W"
+ }
+
+
+


+ shap <- shapiro.p.value(x)
+ stars <- ''
+ premark <- ''
+ postmark <- ''
+ if(length(x) < 10){
+ premark <- '\\textit{'
+ postmark <- '}'
+ }
+


+ #skapa stjärnor
+ if(! is.na(shap)){
+ if( shap <= 0.001 ){
+ stars <- '***'
+ }else{
+ if( shap <= 0.01 ){
+ stars <- '**'
+ }else{
+ if( shap <= 0.05 ){
+ stars <- '*'
+ }
+

+       }
+

+     }
+

+     outstr <- paste(premark,'W=',W,',p=',shap,postmark,stars,sep="")

+ }
+ else{
+ outstr <- ""
+ }
+
+


+ return(outstr)

+
+ }
>
> ftable(tapply(aspvotwork$ampratio,list(Place=aspvotwork$Place,Age=aspvotwork$agemF,voicetype=aspvotwork$Type),FUN="length" ))

voicetype Voiced Voiceless unaspirated Voiceless aspirated Place Age

Velar  18 - 24               44                    41                  34
24 - 30               70                    81                  71
30 - 36               59                    66                  64
36 - 42               25                    27                  22
42 - 48               22                    23                  23
48 - 54               12                     9                   7
Dental 18 - 24               48                    61                  54
24 - 30               82                   101                  89
30 - 36               57                    82                  72
36 - 42               19                    31                  34
42 - 48               25                    33                  31
48 - 54               10                    12                  14
Labial 18 - 24               74                   141                  84
24 - 30              142                   264                 162
30 - 36              124                   213                 148
36 - 42               50                    91                  50
42 - 48               49                    82                  64
48 - 54               17                    26                  16

> ftable(tapply(aspvotwork$ampratio,list(Place=aspvotwork$Place,Age=aspvotwork$agemF,voicetype=aspvotwork$Type),FUN="distribution.table.fun",digits=4)) Error in shapiro.test(x) : sample size must be between 3 and 5000 >
> ftable(tapply(aspvotwork$ampratio,list(Place=aspvotwork$Place,Age=aspvotwork$agemF,voicetype=aspvotwork$Type),FUN="mean",digits=4,na.rm=TRUE ))

voicetype Voiced Voiceless unaspirated Voiceless aspirated Place Age

Velar  18 - 24           0.4816810             0.4461307           0.4513994
24 - 30           0.5289028             0.4778686           0.4888445
30 - 36           0.5452949             0.5208633           0.4756369
36 - 42           0.5631310             0.4697789           0.4709779
42 - 48           0.4968318             0.4174068           0.4088855
48 - 54           0.3057712             0.4483639           0.4561953
Dental 18 - 24           0.4058078             0.4596251           0.4091731
24 - 30           0.4609731             0.4502778           0.4483340
30 - 36           0.5095430             0.4726149           0.4315419
36 - 42           0.4935719             0.4687774           0.4528758
42 - 48           0.4344465             0.4220429           0.4362018
48 - 54           0.3697664             0.4338549           0.4897856
Labial 18 - 24           0.4327926             0.4879985           0.4503917
24 - 30           0.5309634             0.4839031           0.5927699
30 - 36           0.4094516             0.4444757           0.3964693
36 - 42           0.5010130             0.4855550           0.4540598
42 - 48           0.4949510             0.4329442           0.3935921
48 - 54           0.5217893             0.5124186           0.5011346

>

R-help@stat.math.ethz.ch mailing list