样本容量3<= n <= 5000时的Shapiro-Wilk参数假设综合正态性检验。基于Royston R94算法。
该测试还对PlatyKurtic样品进行了Shapiro-Francia正常性测试。
艾哈迈德BenSaida(2021)。夏皮罗-威尔克和夏皮罗-弗兰西亚正态性检验。(//www.tianjin-qmedu.com/matlabcentral/fileexchange/13964-shapiro-wilk-and-shapiro-francia-normality --tests),Matlab中央文件汇兑汇。检索到。
谢谢你的提交!我改为Philipp Dehnen所提出的。
所以我已经使用这个脚本(感谢Ahmed)一段时间了,用小样本(n < 10)测试正态性。工作得很好,但当我使用的测试目标是。05时,它似乎报告了一个假阳性率。06。我在做大规模的随机,所以我用4 <= n <= 10还是用25 <= n <= 35都是一致的。当我强制进行SW测试时,它给了我正确的FP率。05。我担心SF测试有一些奇怪的问题。
Lars报告了一个类似的问题(2008年3月)。我试着去看看是否是峰度计算(参见Luis Dec 2010),但它并没有解决这个问题。
因此,我建议强制SW和避免略高的生育率。只是我的意见。
Mindaugas:添加武力选项总是弗朗西亚的Wilk Intead你可以轻松改变以下内容:
1号线:
功能[h,pvalue,w] = swtest(x,alpha,wilk)
第124行:
如果峰度(x) > 3 && ~wilk
现在,您应该能够通过将输入参数中的wilk设置为true来强制wilk测试。
Wilk必须是逻辑的,如果您想要您可以添加更多错误检查行。
如果能够实现对向量的正态性测试,那么就更好了,对于2D(甚至是具有更多维度的数组),比如'ttest' with 'Dim' option。
谢谢,但是你必须使用Shapiro-Wilk添加强制选项
想尝试这个代码。
提前谢谢~ ~
谢谢你的实现。我在我当前的项目中使用它很多。
我发现了一个均匀分布的样本的问题,例如:
SWTEST(1,6))
失败:
使用ERFC时出错
输入必须是真实的和完整的。
我追踪到211线
w =(权重'* x)^ 2 /((x - 均值(x))'*(x - 均值(x)));
如果样品是均匀的,W可以成为Inf的NaN。我不知道该如何正确对待这件事。检查W是否为NaN/Inf,如果是,拒绝无效假设?
要回答所有问题:
-峰度(第119行)并没有修改测试的威力,它很少被用来帮助在Shapiro-Wilk和Shapiro-Francia方法之间进行选择。最好使用样本峰度'kurtosis(x)'。
- 当构成x = norminv((1:9)/ 10))时,x通常不会分布,它代表了通过定义不正常的CDF的倒数。因此,如果您想测试其电源,可以计算x = normrnd(mu,sigma,n,1),在那里您可以选择样本(n)的大小并执行测试。
你能解释一下以下吗?
x通常是分布式。
如果我执行2个尾被测试,则函数拒绝零假设。
X = NORMINV((1:9)/ 10);
[h,p,w] = swtest(x,0.05,0)
h =
1
P =
0.0028
w =
0.9925.
不好意思,尾部选择的用处是什么?何时使用1,0或-1值?
谢谢你的帮助
我无法用数据测试代码,我不知道为什么。
我测试了这段代码,但我有一个疑问。在第119行中,峰度计算似乎是针对总体(峰度(x))而不是针对样本(峰度(x,0))。那么,在第119行中,它不应该是“if kurtosis(x,0)> 3”(flag=0)吗?
谢谢。
我测试了该代码的样本尺寸,小于4,大约4096。在所有测试的层面上,P值相当均匀。因此,似乎这项测试保持了标称抑制率。(Anderson-Darling测试对小样本尺寸的表现很好。)
有没有人试图验证除了LARS之外吗?
感谢您实现Shapiro-Wilk和Shapiro-Francia正态性测试的代码。
该算法有良好的评价,易于使用和参考。
我的印象是,这种实现比文献中应该描述的更加自由。在0.1级和不同的样本容量下运行1000次后,我计算出平均经验alpha值为0.11。
对不起,文件似乎可以。我的问题是我在我的电脑上有一个distchck..m文件的过期副本。
我只是在一些测试数据(n=16)上尝试它,它崩溃了,因为变量newSWstatistic的值是虚构的。