Là Shapiro bào Wilk là bài kiểm tra tính bình thường tốt nhất? Tại sao nó có thể tốt hơn các thử nghiệm khác như Anderson-Darling?


24

Tôi đã đọc được ở đâu đó trong tài liệu rằng bài kiểm tra Shapiro về Wilk được coi là bài kiểm tra tính quy phạm tốt nhất bởi vì ở mức ý nghĩa nhất định, , xác suất bác bỏ giả thuyết khống nếu nó sai cao hơn trong trường hợp khác kiểm tra tính quy phạm.α

Bạn có thể vui lòng giải thích cho tôi, bằng cách sử dụng các đối số toán học nếu có thể, chính xác thì nó hoạt động như thế nào so với một số bài kiểm tra tính quy phạm khác (nói bài kiểm tra Andersonling Darling)?


4
Lưu ý rằng sức mạnh phụ thuộc vào cách mà giả thuyết null là sai, trong đó đối với thử nghiệm mức độ phù hợp với mục đích chung có thể là bất kỳ cách nào trong vô số cách. Không cần kiểm tra, tôi vẫn đặt cược rằng mỗi bài kiểm tra quy tắc chung là mạnh nhất so với các lựa chọn thay thế nhất định.
Scortchi - Phục hồi Monica

5
Có lẽ không phải là câu trả lời mà bạn tìm kiếm, nhưng tôi muốn nói rằng phép thử tính quy tắc tốt nhất là một biểu đồ xác suất bình thường, tức là một biểu đồ lượng tử - lượng tử của các giá trị quan sát so với lượng tử bình thường. Thử nghiệm Shapiro-Wilk thực sự thường được khen ngợi, nhưng nó không thể cho bạn biết chính xác dữ liệu của bạn khác với bình thường như thế nào. Thường thì sự khác biệt không quan trọng được đánh dấu bằng thử nghiệm, bởi vì chúng đủ điều kiện có ý nghĩa đối với kích thước mẫu lớn và vấn đề ngược lại cũng có thể cắn bạn.
Nick Cox

Câu trả lời:


17

Đầu tiên là một nhận xét chung: Lưu ý rằng thử nghiệm Anderson-Darling dành cho các bản phân phối hoàn toàn được chỉ định, trong khi Shapiro-Wilk dành cho các quy tắc với bất kỳ giá trị trung bình và phương sai nào. Tuy nhiên, như đã lưu ý trong D'Agostino & Stephens Anderson-Darling thích nghi theo cách rất thuận tiện cho trường hợp ước tính, gần giống với (nhưng hội tụ nhanh hơn và được sửa đổi theo cách đơn giản hơn để xử lý hơn Thử nghiệm Lilliefors cho trường hợp Kolmogorov-Smirnov). Cụ thể, ở mức bình thường, bởi , các bảng có giá trị tiệm cận của có thể được sử dụng (không được kiểm tra mức độ phù hợp cho n <5). n=5 Một * = Một 2 ( 1 + 4[1]n=5A=A2(1+4n25n2)

Tôi đã đọc được ở đâu đó trong tài liệu rằng bài kiểm tra Shapiro về Wilk được coi là bài kiểm tra tính quy phạm tốt nhất bởi vì ở mức ý nghĩa nhất định, α, xác suất bác bỏ giả thuyết khống nếu nó sai cao hơn trong trường hợp của tính chuẩn khác xét nghiệm.

Như một tuyên bố chung đây là sai.

Những thử nghiệm thông thường nào "tốt hơn" phụ thuộc vào loại thay thế nào bạn quan tâm. Một lý do khiến Shapiro-Wilk trở nên phổ biến là nó có xu hướng có sức mạnh rất tốt trong một loạt các lựa chọn thay thế hữu ích. Nó xuất hiện trong nhiều nghiên cứu về sức mạnh và thường hoạt động rất tốt, nhưng nó không phải là tốt nhất trên toàn cầu.

Nó khá dễ dàng để tìm giải pháp thay thế mà theo đó nó ít mạnh hơn.

Ví dụ, đối với các lựa chọn thay thế ánh sáng, nó thường có ít năng lượng hơn phạm vi được học sinh (so sánh chúng trong bài kiểm tra tính quy tắc trên dữ liệu thống nhất , ví dụ - tại , một thử nghiệm dựa trên có sức mạnh khoảng 63% so với hơn 38% đối với Shapiro Wilk).u=max(x)min(x)sd(x)n=30u

Anderson-Darling (được điều chỉnh để ước tính tham số) làm tốt hơn theo cấp số nhân. Khoảnh khắc làm tốt hơn so với một số lựa chọn thay thế.

Bạn có thể vui lòng giải thích cho tôi, bằng cách sử dụng các đối số toán học nếu có thể, chính xác thì nó hoạt động như thế nào so với một số bài kiểm tra tính quy phạm khác (nói bài kiểm tra Andersonling Darling)?

Tôi sẽ giải thích một cách chung chung (nếu bạn muốn biết thêm chi tiết cụ thể các giấy tờ gốc và một số giấy tờ sau này thảo luận về chúng sẽ là lựa chọn tốt nhất của bạn):

Hãy xem xét một thử nghiệm đơn giản hơn nhưng có liên quan chặt chẽ, Shapiro-Francia; Đây thực sự là một chức năng của mối tương quan giữa số liệu thống kê đơn hàng và số liệu thống kê đơn hàng dự kiến ​​theo quy tắc (và như vậy, một thước đo khá trực tiếp về "mức độ đường thẳng" trong âm mưu QQ thông thường). Như tôi nhớ, Shapiro-Wilk mạnh hơn bởi vì nó cũng tính đến các hiệp phương sai giữa các thống kê đơn hàng, tạo ra một công cụ ước tính tuyến tính tốt nhất của từ âm mưu QQ, sau đó được chia tỷ lệ theo . Khi phân phối ở xa mức bình thường, tỷ lệ không gần bằng 1.σs

Khi so sánh Anderson-Darling, như Kolmogorov-Smirnov và Cramér-von Mises, dựa trên CDF theo kinh nghiệm. Cụ thể, nó dựa trên độ lệch có trọng số giữa ECDF và ECDF lý thuyết (trọng số cho phương sai làm cho nó nhạy hơn với độ lệch ở đuôi).

Thử nghiệm của Shapiro và Chen (1995) (dựa trên khoảng cách giữa các thống kê đơn hàng) thường thể hiện sức mạnh hơn một chút so với Shapiro-Wilk (nhưng không phải lúc nào cũng vậy); họ thường thực hiện rất giống nhau.[2]

-

Sử dụng Shapiro Wilk vì nó thường mạnh mẽ, có sẵn rộng rãi và nhiều người quen thuộc với nó (loại bỏ nhu cầu giải thích chi tiết về nó nếu bạn sử dụng nó trong một tờ giấy) - đừng sử dụng nó trong ảo tưởng rằng nó "bài kiểm tra tính bình thường tốt nhất". Không có một bài kiểm tra tính bình thường tốt nhất.

[1]: D'Agostino, RB và Stephens, MA (1986)
Lòng tốt của kỹ thuật phù hợp ,
Marcel Dekker, New York.

[2]: Chen, L. và Shapiro, S. (1995)
"Một thử nghiệm thay thế cho tính quy phạm dựa trên các khoảng cách chuẩn hóa."
Tạp chí tính toán và mô phỏng thống kê 53 , 269-287.


Bạn cùng lớp của tôi nói với tôi: "Nếu cỡ mẫu> 50, bạn nên sử dụng Kolmogorov-Smirnov." Đúng không?
kittygirl

Không. Theo hồi ức của tôi, bài báo gốc năm của Shapiro và Wilk chỉ đưa ra các hằng số cần thiết ( ) được sử dụng trong ước tính tuyến tính của cho lên tới nhưng cách đây hơn nửa thế kỷ. Mọi thứ đã chuyển sang một chút kể từ đó. Ngay cả khi không có điều đó, Shapiro Francia hoặc Anderson-Darling (cũng được điều chỉnh để ước tính tham số) thường là lựa chọn tốt hơn; những thứ này thường có sức mạnh thấp hơn đáng kể so với các lựa chọn thay thế thú vị. (& nếu bạn đang ước tính giá trị trung bình và sd từ mẫu, bạn không thực hiện nghiêm túc Kolmogorov-Smirnov, mà là thử nghiệm Lilliefors)aiσn50
Glen_b -Reinstate Monica

Nói tóm lại, có một khoảng thời gian ngắn của một vài năm sau năm 1967 (ấn phẩm ban đầu về công việc của Lilliefors), nơi nó có thể là một lời khuyên chính đáng, nhưng không lâu lắm
Glen_b -Reinstate Monica

Khi cỡ mẫu> 5000, chạy shapiro.testtrong R sẽ gặp lỗi. sample size must be between 3 and 5000Sau đó, nên sử dụng thử nghiệm nào khác?
kittygirl

1. Ở quy mô lớn, hầu như bạn sẽ luôn từ chối bất kỳ mô hình phân phối đơn giản nào (ngay cả khi đó là một xấp xỉ phù hợp); Có thể nên làm điều gì khác hơn (tại sao bạn lại kiểm tra tính bình thường?) 2. Đây thực sự không phải là vấn đề "nên" về nó; không có sự tốt đẹp nào của bài kiểm tra luôn tốt hơn bất kỳ bài kiểm tra nào khác. Nó chỉ xảy ra rằng Shapiro Wilk là hợp lý tốt. Tuy nhiên, một sự thay thế phù hợp ở n lớn là thử nghiệm Shapiro-Francia. Nếu bạn có thể tìm thấy việc triển khai thử nghiệm Chen-Shapiro ở n lớn (giả sử có lý do chính đáng để kiểm tra), thay vào đó hãy xem xét điều đó.
Glen_b -Reinstate Monica

12

Rõ ràng so sánh mà bạn đọc không bao gồm SnowsPenultimateNormalityTest ( http://cran.r-project.org/web/packages/TeachingDemos/TeachingDemos.pdf ) vì nó có sức mạnh cao nhất có thể trong tất cả các lựa chọn thay thế. Vì vậy, nó nên được coi là "Tốt nhất" nếu quyền lực là sự cân nhắc duy nhất (Lưu ý rằng ý kiến ​​của tôi rõ ràng sai lệch, nhưng được ghi lại trong liên kết / tài liệu).

Tuy nhiên, tôi đồng ý với nhận xét của Nick Cox rằng bài kiểm tra tốt nhất là cốt truyện chứ không phải bài kiểm tra chính thức vì câu hỏi "Đủ bình thường" quan trọng hơn nhiều so với "Chính xác là bình thường". Nếu bạn muốn một bài kiểm tra có ý nghĩa thì tôi khuyên bạn nên kết hợp biểu đồ qq với phương pháp luận trong bài viết này:

Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne, DF và Wickham, H. (2009) Suy luận thống kê để phân tích dữ liệu khám phá và chẩn đoán mô hình Phil. Xuyên. R. Sóc. A 2009 367, 4361-4383 doi: 10.1098 / rsta.2009.0120

Một cách thực hiện đó là vis.testchức năng trong gói DạyDemos cho R (cùng gói với SnowsPenultimateNormalityTest).


1
Tôi đồng ý với tình cảm, nhưng nhìn vào cốt truyện QQ không phải là một giải pháp nếu người ta muốn làm bất cứ điều gì với hơn 10-20 biến.
Andrew M

Chúng tôi in các lô QQ ngoài các bài kiểm tra tính quy phạm. Chúng không độc quyền, nhưng các công cụ bổ sung.
Aksakal

2
@Andrew M Vì vậy, đang xem qua kết quả của 100 hoặc 1000 hoặc hơn Shapiro-Wilk hoặc các xét nghiệm khác bạn thích gì? Không khó để tự động hóa việc nhìn vào các lô QQ, nói 25 tại một thời điểm. Thường thì một cái liếc mắt là đủ để thấy (theo nghĩa đen) một vấn đề thực sự.
Nick Cox

10

Tôi đến bữa tiệc muộn, nhưng sẽ trả lời bằng các tài liệu tham khảo cho nghiên cứu được đánh giá ngang hàng được công bố. Lý do tại sao tôi không trả lời Có / Không cho câu hỏi của OP là nó phức tạp hơn vẻ ngoài của nó. Không có một thử nghiệm nào mạnh nhất đối với các mẫu đến từ bất kỳ phân phối nào có hoặc không có ngoại lệ. Outliers có thể làm giảm nghiêm trọng sức mạnh của một thử nghiệm và tăng cho một thử nghiệm khác. Một số thử nghiệm hoạt động tốt hơn khi mẫu đến từ phân phối đối xứng, vv

  • Henry C. Thode, Kiểm tra tính quy phạm , 2002 - Đây là một cuốn sách toàn diện nhất về chủ đề này. Nếu tôi phải bỏ qua một câu trả lời đơn giản, thì SW không mạnh hơn AD trong mọi trường hợp. Đây là hai đoạn trích cho niềm vui đọc của bạn.

Từ phần 7.1.5: Trên cơ sở quyền lực, việc lựa chọn thử nghiệm có liên quan trực tiếp đến thông tin có sẵn hoặc các giả định được đưa ra liên quan đến phương án. Sự thay thế càng cụ thể, thử nghiệm sẽ càng cụ thể và mạnh mẽ hơn; điều này cũng sẽ dẫn đến các khuyến nghị đáng tin cậy nhất.

Một thử nghiệm độ lệch và kurtosis chung như cung cấp sức mạnh cao chống lại một loạt các lựa chọn thay thế, cũng như Anderson-Darling . Wilk-Shapiro W cho thấy sức mạnh tương đối cao trong số các lựa chọn đối xứng lệch và đuôi ngắn khi so sánh với các thử nghiệm khác, và sức mạnh đáng nể đối với các lựa chọn đối xứng đuôi dài.Ks2A2

  • Romao, Xavier, Raimundo Delgado và Anibal Costa. "Một so sánh sức mạnh thực nghiệm của các bài kiểm tra mức độ phù hợp đơn nhất cho sự bình thường." Tạp chí tính toán và mô phỏng thống kê 80,5 (2010): 545-591. Đây là nghiên cứu được công bố gần đây nhất về chủ đề tôi biết.

Nghiên cứu đề cập đến việc thực hiện 33 thử nghiệm quy phạm, đối với các cỡ mẫu khác nhau, xem xét một số mức ý nghĩa và đối với một số phân phối bình thường đối xứng, không đối xứng và được sửa đổi. Các khuyến nghị chung cho thử nghiệm tính quy phạm do nghiên cứu được xác định theo tính chất của tính phi quy phạm

Nếu bạn thực sự muốn đưa nghiên cứu của họ xuống có / không, thì câu trả lời là CÓ. Thử nghiệm Shapiro-Wilks dường như mạnh hơn một chút trong hầu hết các trường hợp so với Anderson-Darling. Họ khuyên bạn nên thử nghiệm Shapiro Wilk khi bạn không có ý định phân phối thay thế cụ thể. Tuy nhiên, nếu bạn quan tâm đến chủ đề này, bài báo đáng đọc. Ít nhất là nhìn vào các bảng.

  • Edith Seier, Các thử nghiệm thông thường: So sánh sức mạnh , trong Từ điển bách khoa quốc tế về khoa học thống kê, 2014 - Một cuộc khảo sát về nghiên cứu được công bố về chủ đề này. Một lần nữa, câu trả lời phụ thuộc vào mẫu và kiến ​​thức của bạn về phân phối thay thế, nhưng câu trả lời tầm thường sẽ là CÓ, Shapiro-Wilk thường mạnh hơn, nhưng không phải lúc nào cũng vậy.

  • Henry C. Thode, Các thử nghiệm thông thường , trong Từ điển bách khoa quốc tế về khoa học thống kê, 2014 - Mô tả các thử nghiệm quy phạm phổ biến. Đề nghị của ông:

Như đã chỉ ra trước đây, số lượng kiểm tra tính quy phạm là lớn, quá lớn đối với ngay cả phần lớn trong số chúng được đề cập ở đây. Nhìn chung, các bài kiểm tra tốt nhất dường như là các bài kiểm tra thời điểm, Shapiro biên Wilk W, AndersonTHER Darling (xem Bài kiểm tra mức độ phù hợp của Anderson-Darling), và bài kiểm tra Jarque Muff Bera. Cụ thể về những điều này và nhiều bài kiểm tra tính quy phạm khác và đặc điểm của chúng có thể được tìm thấy trong Thode (2002) và về tính tốt chung của các vấn đề, bao gồm các bài kiểm tra tính quy phạm, trong D'Agostino và Stephens (1986).A2

Bây giờ, đây là tất cả về các bài kiểm tra đơn biến. Thode (2002) cũng có thử nghiệm đa biến, dữ liệu bị kiểm duyệt, hỗn hợp thông thường, thử nghiệm với sự có mặt của các ngoại lệ, và nhiều hơn nữa.


9

Một câu trả lời nghiêm túc hơn để tiếp tục câu hỏi này và đặc biệt là sự quan tâm tiếp tục của @ silverfish. Một cách tiếp cận để trả lời các câu hỏi như thế này là chạy một số mô phỏng để so sánh. Dưới đây là một số mã R mô phỏng dữ liệu theo các phương án khác nhau và thực hiện một số thử nghiệm quy tắc và so sánh công suất (và khoảng tin cậy về công suất do công suất được ước tính thông qua mô phỏng). Tôi đã điều chỉnh kích thước mẫu một chút vì nó không thú vị khi nhiều quyền hạn gần 100% hoặc 5%, tôi tìm thấy số tròn mang lại sức mạnh gần 80%. Bất cứ ai quan tâm có thể dễ dàng lấy mã này và sửa đổi nó cho các giả định khác nhau, các lựa chọn thay thế khác nhau, v.v.

Bạn có thể thấy rằng có những lựa chọn thay thế mà một số bài kiểm tra làm tốt hơn và những bài kiểm tra khác làm bài kém hơn. Câu hỏi quan trọng là những lựa chọn thay thế nào thực tế nhất cho câu hỏi / lĩnh vực khoa học của bạn. Điều này thực sự cần được theo dõi với một mô phỏng về tác động của các loại lợi ích phi quy phạm đối với các thử nghiệm khác đang được thực hiện. Một số loại không quy tắc này ảnh hưởng lớn đến các thử nghiệm thông thường khác, những loại khác không ảnh hưởng nhiều đến chúng.

> library(nortest)
> 
> simfun1 <- function(fun=function(n) rnorm(n), n=250) {
+   x <- fun(n)
+   c(sw=shapiro.test(x)$p.value, sf=sf.test(x)$p.value, ad=ad.test(x)$p.value,
+     cvm=cvm.test(x)$p.value, lillie=lillie.test(x)$p.value, 
+     pearson=pearson.test(x)$p.value, snow=0)
+ }
> 
> ### Test size using null hypothesis near true
> 
> out1 <- replicate(10000, simfun1())
> apply(out1, 1, function(x) mean(x<=0.05))
     sw      sf      ad     cvm  lillie pearson    snow 
 0.0490  0.0520  0.0521  0.0509  0.0531  0.0538  1.0000 
> apply(out1, 1, function(x) prop.test(sum(x<=0.05),length(x))$conf.int)  #$
             sw         sf         ad        cvm     lillie    pearson      snow
[1,] 0.04489158 0.04776981 0.04786582 0.04671398 0.04882619 0.04949870 0.9995213
[2,] 0.05345887 0.05657820 0.05668211 0.05543493 0.05772093 0.05844785 1.0000000
> 
> ### Test again with mean and sd different
> 
> out2 <- replicate(10000, simfun1(fun=function(n) rnorm(n,100,5)))
> apply(out2, 1, function(x) mean(x<=0.05))
     sw      sf      ad     cvm  lillie pearson    snow 
 0.0482  0.0513  0.0461  0.0477  0.0515  0.0506  1.0000 
> apply(out2, 1, function(x) prop.test(sum(x<=0.05),length(x))$conf.int)  #$
             sw         sf         ad        cvm     lillie    pearson      snow
[1,] 0.04412478 0.04709785 0.04211345 0.04364569 0.04728982 0.04642612 0.9995213
[2,] 0.05262633 0.05585073 0.05043938 0.05210583 0.05605860 0.05512303 1.0000000
> 
> #### now for the power under different forms of non-normality
> 
> ## heavy tails, t(3)
> rt3 <- function(n) rt(n, df=3)
> 
> out3 <- replicate(10000, simfun1(fun=rt3, n=75))
There were 50 or more warnings (use warnings() to see the first 50)
> round(apply(out3, 1, function(x) mean(x<=0.05, na.rm=TRUE)),3)
     sw      sf      ad     cvm  lillie pearson    snow 
  0.788   0.831   0.756   0.726   0.624   0.440   1.000 
> round(apply(out3, 1, function(x){ 
+ prop.test(sum(x<=0.05,na.rm=TRUE),sum(!is.na(x)))$conf.int),3) }  #$
        sw    sf    ad   cvm lillie pearson snow
[1,] 0.780 0.824 0.748 0.717  0.614   0.431    1
[2,] 0.796 0.838 0.765 0.734  0.633   0.450    1
> 
> 
> ## light tails, uniform
> u <- function(n) runif(n)
> 
> out4 <- replicate(10000, simfun1(fun=u, n=65))
> round(apply(out4, 1, function(x) mean(x<=0.05, na.rm=TRUE)),3)
     sw      sf      ad     cvm  lillie pearson    snow 
  0.906   0.712   0.745   0.591   0.362   0.270   1.000 
> round(apply(out4, 1, function(x){ 
+ prop.test(sum(x<=0.05,na.rm=TRUE),sum(!is.na(x)))$conf.int),3) }  #$
        sw    sf    ad   cvm lillie pearson snow
[1,] 0.900 0.703 0.737 0.581  0.353   0.261    1
[2,] 0.911 0.720 0.754 0.600  0.372   0.279    1
> 
> ## double exponential, Laplace
> de <- function(n) sample(c(-1,1), n, replace=TRUE) * rexp(n)
> 
> out5 <- replicate(10000, simfun1(fun=de, n=100))
> round(apply(out5, 1, function(x) mean(x<=0.05, na.rm=TRUE)),3)
     sw      sf      ad     cvm  lillie pearson    snow 
  0.796   0.844   0.824   0.820   0.706   0.477   1.000 
> round(apply(out5, 1, function(x){ 
+ prop.test(sum(x<=0.05,na.rm=TRUE),sum(!is.na(x)))$conf.int),3) }  #$
        sw    sf    ad   cvm lillie pearson snow
[1,] 0.788 0.837 0.817 0.813  0.697   0.467    1
[2,] 0.804 0.851 0.832 0.828  0.715   0.486    1
> 
> ## skewed, gamma(2,2)
> g22 <- function(n) rgamma(n,2,2)
> 
> out6 <- replicate(10000, simfun1(fun=g22, n=50))
Warning message:
In cvm.test(x) :
  p-value is smaller than 7.37e-10, cannot be computed more accurately
> round(apply(out6, 1, function(x) mean(x<=0.05, na.rm=TRUE)),3)
     sw      sf      ad     cvm  lillie pearson    snow 
  0.954   0.930   0.893   0.835   0.695   0.656   1.000 
> round(apply(out6, 1, function(x){ 
+ prop.test(sum(x<=0.05,na.rm=TRUE),sum(!is.na(x)))$conf.int),3) }  #$
        sw    sf    ad   cvm lillie pearson snow
[1,] 0.950 0.925 0.886 0.827  0.686   0.646    1
[2,] 0.958 0.935 0.899 0.842  0.704   0.665    1
> 
> ## skewed, gamma(2,2)
> g99 <- function(n) rgamma(n,9,9)
> 
> out7 <- replicate(10000, simfun1(fun=g99, n=150))
> round(apply(out7, 1, function(x) mean(x<=0.05, na.rm=TRUE)),3)
     sw      sf      ad     cvm  lillie pearson    snow 
  0.844   0.818   0.724   0.651   0.526   0.286   1.000 
> round(apply(out7, 1, function(x){ 
+ prop.test(sum(x<=0.05,na.rm=TRUE),sum(!is.na(x)))$conf.int),3) }  #$
        sw    sf    ad   cvm lillie pearson snow
[1,] 0.836 0.810 0.715 0.642  0.516   0.277    1
[2,] 0.851 0.826 0.732 0.660  0.536   0.294    1
> 
> ## tails normal, middle not
> mid <- function(n) {
+   x <- rnorm(n)
+   x[ x > -0.5 & x < 0.5 ] <- 0
+   x
+ }
> 
> out9 <- replicate(10000, simfun1(fun=mid, n=30))
Warning messages:
1: In cvm.test(x) :
  p-value is smaller than 7.37e-10, cannot be computed more accurately
2: In cvm.test(x) :
  p-value is smaller than 7.37e-10, cannot be computed more accurately
> round(apply(out9, 1, function(x) mean(x<=0.05, na.rm=TRUE)),3)
     sw      sf      ad     cvm  lillie pearson    snow 
  0.374   0.371   0.624   0.739   0.884   0.948   1.000 
> round(apply(out9, 1, function(x){ 
+ prop.test(sum(x<=0.05,na.rm=TRUE),sum(!is.na(x)))$conf.int),3) }  #$
        sw    sf    ad   cvm lillie pearson snow
[1,] 0.365 0.362 0.614 0.730  0.878   0.943    1
[2,] 0.384 0.381 0.633 0.747  0.890   0.952    1
> 
> ## mixture on variance
> mv <- function(n, p=0.1, sd=3) {
+   rnorm(n,0, ifelse(runif(n)<p, sd, 1))
+ }
> 
> out10 <- replicate(10000, simfun1(fun=mv, n=100))
Warning message:
In cvm.test(x) :
  p-value is smaller than 7.37e-10, cannot be computed more accurately
> round(apply(out10, 1, function(x) mean(x<=0.05, na.rm=TRUE)),3)
     sw      sf      ad     cvm  lillie pearson    snow 
  0.800   0.844   0.682   0.609   0.487   0.287   1.000 
> round(apply(out10, 1, function(x){ 
+ prop.test(sum(x<=0.05,na.rm=TRUE),sum(!is.na(x)))$conf.int),3) }  #$
        sw    sf    ad   cvm lillie pearson snow
[1,] 0.792 0.837 0.673 0.599  0.477   0.278    1
[2,] 0.808 0.851 0.691 0.619  0.497   0.296    1
> 
> ## mixture on mean
> mm <- function(n, p=0.3, mu=2) {
+   rnorm(n, ifelse(runif(n)<p, mu, 0), 1)
+ }
> 
> out11 <- replicate(10000, simfun1(fun=mm, n=400))
> round(apply(out11, 1, function(x) mean(x<=0.05, na.rm=TRUE)),3)
     sw      sf      ad     cvm  lillie pearson    snow 
  0.776   0.710   0.808   0.788   0.669   0.354   1.000 
> round(apply(out11, 1, function(x){ 
+ prop.test(sum(x<=0.05,na.rm=TRUE),sum(!is.na(x)))$conf.int),3) }  #$
        sw    sf    ad   cvm lillie pearson snow
[1,] 0.768 0.701 0.801 0.780  0.659   0.344    1
[2,] 0.784 0.719 0.816 0.796  0.678   0.363    1

Cảm ơn bạn đã thêm câu trả lời này là một bổ sung tốt đẹp cho câu trả lời trước đó của bạn. Không có sự chê bai nào dành cho câu trả lời khác của bạn, đó là một trong những mục yêu thích của tôi trên SE!
Cá bạc

1
Tôi đã tự do chỉnh sửa mã của bạn để thêm định dạng mã và phù hợp với mọi thứ trong cửa sổ, Greg. Tôi nghĩ rằng sẽ dễ dàng hơn để đọc theo cách này, nhưng nếu bạn không thích nó, hãy quay lại với lời xin lỗi của tôi.
gung - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.