正如@whuber在评论中所问,这是对我的绝对NO。的验证。编辑:使用shapiro测试,因为实际上错误地使用了单样本ks测试。Whuber是正确的:为了正确使用Kolmogorov-Smirnov检验,您必须指定分布参数,而不是从数据中提取它们。但是,这是在统计软件包(如SPSS)中进行的,用于单样本KS测试。
您尝试说一些有关分布的信息,然后想检查是否可以应用t检验。因此,进行此测试是为了确认数据与正常值的偏离不足够大,以致使分析的基础假设无效。因此,您对I型错误不感兴趣,但对II型错误感兴趣。
现在必须定义“明显不同”,以便能够计算出可接受功率的最小值n(例如0.8)。对于分布,定义起来并不容易。因此,我没有回答这个问题,因为除了我使用的经验法则之外,我无法给出一个明智的答案:n> 15并且n <50。基于什么?内脏基本上没有感觉,所以除了经验,我无法捍卫这种选择。
但我确实知道,只有6个值,您的II型错误注定几乎为1,使您的功效接近0。通过6个观察,Shapiro检验无法区分正态分布,泊松分布,均匀分布甚至指数分布。II型错误几乎为1时,测试结果毫无意义。
为了说明使用shapiro-test进行正态性测试:
shapiro.test(rnorm(6)) # test a the normal distribution
shapiro.test(rpois(6,4)) # test a poisson distribution
shapiro.test(runif(6,1,10)) # test a uniform distribution
shapiro.test(rexp(6,2)) # test a exponential distribution
shapiro.test(rlnorm(6)) # test a log-normal distribution
最后一个值大约只有一半小于0.05。这也是最极端的情况。
如果您想找出使用shapiro测试获得所需功率的最小n是多少,可以进行如下模拟:
results <- sapply(5:50,function(i){
p.value <- replicate(100,{
y <- rexp(i,2)
shapiro.test(y)$p.value
})
pow <- sum(p.value < 0.05)/100
c(i,pow)
})
这样可以为您进行功率分析:
从中得出的结论是,在80%的情况下,您至少需要20个值才能区分指数分布和正态分布。
代码图:
plot(lowess(results[2,]~results[1,],f=1/6),type="l",col="red",
main="Power simulation for exponential distribution",
xlab="n",
ylab="power"
)