Apakah Shapiro-Wilk adalah tes normalitas terbaik? Mengapa mungkin lebih baik daripada tes lain seperti Anderson-Darling?

24

Saya telah membaca di suatu tempat dalam literatur bahwa tes Shapiro-Wilk dianggap sebagai tes normalitas terbaik karena untuk tingkat signifikansi yang diberikan, , probabilitas menolak hipotesis nol jika itu salah lebih tinggi daripada dalam kasus yang lain tes normalitas.α

Bisakah Anda jelaskan kepada saya, menggunakan argumen matematis jika memungkinkan, bagaimana tepatnya kerjanya dibandingkan dengan beberapa tes normalitas lainnya (katakanlah tes Anderson-Darling)?

syntagma
sumber
4
Perhatikan bahwa kekuatan tergantung pada cara di mana hipotesis nol salah, yang untuk tes kebaikan-untuk-tujuan-tujuan umum dapat menjadi salah satu cara yang tak terhitung banyaknya. Tanpa memeriksa saya masih bertaruh bahwa masing-masing tes normalitas umum paling kuat terhadap alternatif tertentu.
Scortchi
5
Bukan jawaban yang Anda cari, mungkin, tetapi saya akan mengatakan bahwa uji normalitas terbaik adalah plot probabilitas normal, yaitu plot kuantil-kuantil dari nilai yang diamati versus kuantil normal. Tes Shapiro-Wilk memang sering dipuji, tetapi tidak dapat memberi tahu Anda dengan tepat bagaimana data Anda berbeda dari normal. Seringkali perbedaan yang tidak penting ditandai oleh tes, karena mereka memenuhi syarat sebagai signifikan untuk ukuran sampel besar, dan masalah sebaliknya juga dapat menggigit Anda.
Nick Cox

Jawaban:

17

Pertama, komentar umum: Perhatikan bahwa uji Anderson-Darling adalah untuk distribusi yang benar-benar ditentukan, sedangkan Shapiro-Wilk adalah untuk normal dengan mean dan varian apa pun. Namun, seperti yang disebutkan dalam D'Agostino & Stephens Anderson-Darling beradaptasi dengan cara yang sangat mudah untuk kasus estimasi, mirip dengan (tetapi konvergen lebih cepat dan dimodifikasi dengan cara yang lebih mudah untuk ditangani daripada Tes Lilliefors untuk kasus Kolmogorov-Smirnov). Khususnya, pada normal, dengan , tabel nilai asimptotik dapat digunakan (jangan menguji goodness of fit untuk n <5).[1]n=5SEBUAH=SEBUAH2(1+4n-25n2)

Saya telah membaca di suatu tempat dalam literatur bahwa uji Shapiro-Wilk dianggap sebagai tes normalitas terbaik karena untuk tingkat signifikansi tertentu, α, probabilitas penolakan hipotesis nol jika salah lebih tinggi daripada dalam kasus normalitas lainnya. tes.

Sebagai pernyataan umum, ini salah.

Tes normalitas mana yang "lebih baik" tergantung pada kelas alternatif yang Anda minati. Salah satu alasan Shapiro-Wilk populer adalah bahwa ia cenderung memiliki kekuatan yang sangat baik di bawah berbagai alternatif yang bermanfaat. Itu muncul dalam banyak studi tentang kekuasaan, dan biasanya berkinerja sangat baik, tetapi itu tidak terbaik secara universal.

Sangat mudah untuk menemukan alternatif yang kurang kuat.

Sebagai contoh, terhadap alternatif berekor cahaya, seringkali memiliki daya yang lebih kecil daripada rentang yang dipelajarkan (bandingkan dengan uji normalitas data seragam , misalnya - pada , tes berdasarkan memiliki kekuatan sekitar 63% dibandingkan dengan sedikit lebih dari 38% untuk Shapiro Wilk).kamu=maks(x)-min(x)sd(x)n=30kamu

Anderson-Darling (disesuaikan untuk estimasi parameter) tidak lebih baik pada eksponensial ganda. Kecenderungan momen lebih baik terhadap beberapa alternatif kemiringan.

Bisakah Anda jelaskan kepada saya, menggunakan argumen matematis jika memungkinkan, bagaimana tepatnya kerjanya dibandingkan dengan beberapa tes normalitas lainnya (katakanlah tes Anderson-Darling)?

Saya akan menjelaskan secara umum (jika Anda ingin detail lebih spesifik, makalah asli dan beberapa makalah nanti yang membahasnya akan menjadi pilihan terbaik Anda):

Pertimbangkan tes yang lebih sederhana namun berkaitan erat, Shapiro-Francia; itu secara efektif fungsi korelasi antara statistik pesanan dan statistik pesanan yang diharapkan di bawah normalitas (dan dengan demikian, ukuran yang cukup langsung dari "seberapa lurus garis itu" dalam plot QQ normal). Seingat saya, Shapiro-Wilk lebih kuat karena ia juga memperhitungkan kovarian antara statistik pesanan, menghasilkan estimator linier terbaik dari plot QQ, yang kemudian diskalakan oleh . Ketika distribusinya jauh dari normal, rasionya tidak mendekati 1.σs

Sebagai perbandingan, Anderson-Darling, seperti Kolmogorov-Smirnov dan Cramér-von Mises, didasarkan pada CDF empiris. Secara khusus, ini didasarkan pada penyimpangan tertimbang antara ECDF dan ECDF teoritis (bobot-untuk-varians membuatnya lebih sensitif terhadap penyimpangan di ekor).

Tes oleh Shapiro dan Chen (1995) (berdasarkan jarak antara statistik urutan) sering menunjukkan kekuatan sedikit lebih dari Shapiro-Wilk (tetapi tidak selalu); mereka sering melakukan hal yang sama.[2]

-

Gunakan Shapiro Wilk karena sering kali kuat, tersedia secara luas, dan banyak orang yang mengenalnya (menghilangkan kebutuhan untuk menjelaskan secara terperinci apa itu jika Anda menggunakannya dalam kertas) - jangan gunakan itu di bawah ilusi bahwa itu adalah "tes normalitas terbaik". Tidak ada satu tes normalitas terbaik.

[1]: D'Agostino, RB dan Stephens, MA (1986)
Teknik Kebaikan ,
Marcel Dekker, New York.

[2]: Chen, L. dan Shapiro, S. (1995)
"Sebuah tes alternatif untuk normalitas berdasarkan jarak yang dinormalisasi."
Jurnal Perhitungan dan Simulasi Statistik 53 , 269-287.

Glen_b -Reinstate Monica
sumber
Teman sekelas saya memberi tahu saya: "Jika ukuran sampel> 50, Anda harus menggunakan Kolmogorov-Smirnov." Apakah itu benar?
kittygirl
Tidak. Untuk ingatan saya, makalah 1965 asli oleh Shapiro dan Wilk hanya memberikan konstanta yang diperlukan ( ) yang digunakan dalam estimasi linier untuk hingga tetapi itu lebih dari setengah abad yang lalu. Segalanya telah sedikit berubah sejak saat itu. Bahkan tanpa itu, Shapiro Francia atau Anderson-Darling (juga disesuaikan dengan estimasi parameter) biasanya merupakan pilihan yang lebih baik; ini sering memiliki kekuatan yang jauh lebih rendah terhadap alternatif yang biasanya menarik. (& jika Anda memperkirakan mean dan sd dari sampel, Anda tidak benar-benar melakukan Kolmogorov-Smirnov, melainkan tes Lilliefors)Sebuahsayaσn50
Glen_b -Reinstate Monica
Singkatnya, ada periode singkat beberapa tahun setelah 1967 (publikasi awal karya Lilliefors) di mana itu mungkin nasihat yang dapat dibenarkan, tetapi tidak untuk waktu yang lama sejak
Glen_b -Reinstate Monica
Ketika ukuran sampel> 5000, berjalan shapiro.testdalam R akan mendapatkan kesalahan. sample size must be between 3 and 5000Lalu, tes apa lagi yang harus digunakan?
kittygirl
1. Pada umumnya n Anda hampir selalu akan menolak model distribusi sederhana apa pun (bahkan ketika itu merupakan pendekatan yang cukup cocok); mungkin lebih disarankan untuk melakukan sesuatu yang lain (mengapa Anda menguji normalitas?) 2. Ini sebenarnya bukan masalah "harus" tentang hal itu; tidak ada satu pun kebaikan tes yang selalu lebih baik dari yang lain. Kebetulan Shapiro Wilk cukup baik. Namun, alternatif yang cocok pada umumnya adalah tes Shapiro-Francia. Jika Anda dapat menemukan implementasi tes Chen-Shapiro secara luas n (dengan asumsi ada alasan yang baik untuk menguji sama sekali), pertimbangkan itu sebagai gantinya.
Glen_b -Reinstate Monica
12

Jelas perbandingan yang Anda baca tidak termasuk SnowsPenultimateNormalityTest ( http://cran.r-project.org/web/packages/TeachingDemos/TeachingDemos.pdf ) karena ia memiliki kekuatan setinggi mungkin di semua alternatif. Jadi itu harus dianggap "Terbaik" jika kekuasaan adalah satu-satunya pertimbangan (Perhatikan bahwa pendapat saya jelas-jelas bias, tetapi didokumentasikan dalam tautan / dokumentasi).

Namun, saya setuju dengan komentar Nick Cox bahwa tes terbaik adalah plot daripada tes formal karena pertanyaan "Cukup normal" jauh lebih penting daripada "Sangat normal". Jika Anda ingin tes yang bermakna maka saya akan menyarankan menggabungkan plot qq dengan metodologi dalam makalah ini:

Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne, DF dan Wickham, H. (2009) Statistik Inferensi untuk analisis data eksplorasi dan model diagnostik. Phil. Trans. R. Soc. A 2009 367, 4361-4383 doi: 10.1098 / rsta.2009.0120

Salah satu implementasi dari itu adalah vis.testfungsi dalam paket TeachingDemos untuk R (paket yang sama dengan SnowsPenultimateNormalityTest).

Greg Snow
sumber
1
Saya setuju dengan sentimen, tetapi menatap plot QQ tidak banyak solusi jika seseorang ingin melakukan banyak hal dengan lebih dari 10-20 variabel.
Andrew M
Kami mencetak plot QQ di samping tes normalitas. Mereka tidak eksklusif, tetapi alat pelengkap.
Aksakal
2
@ Andrew M Jadi, apakah melihat melalui hasil 100 atau 1000 Shapiro-Wilk atau tes lain apa yang Anda sukai? Tidaklah sulit untuk secara otomatis melihat plot QQ, katakan 25 sekaligus. Seringkali pandangan sekilas sudah cukup untuk melihat (secara harfiah) masalah nyata.
Nick Cox
10

Saya terlambat ke pesta, tetapi akan menjawab dengan referensi ke penelitian peer-review yang diterbitkan. Alasan mengapa saya tidak menjawab Ya / Tidak untuk pertanyaan OP adalah karena lebih rumit dari yang terlihat. Tidak ada satu tes yang akan menjadi yang paling kuat untuk sampel yang berasal dari distribusi apa pun dengan atau tanpa pencilan. Pencilan dapat sangat mengurangi daya satu pengujian dan meningkatkan untuk yang lain. Beberapa tes berfungsi lebih baik ketika sampel berasal dari distribusi simetris dll.

  • Henry C. Thode, Testing for Normalality, 2002 - Ini adalah buku paling komprehensif tentang masalah ini. Jika saya harus membuatnya menjadi jawaban sederhana, maka SW tidak lebih kuat daripada AD dalam semua kasus. Berikut adalah dua kutipan untuk kesenangan membaca Anda.

Dari bagian 7.1.5: Atas dasar kekuasaan, pilihan tes terkait langsung dengan informasi yang tersedia atau asumsi yang dibuat mengenai alternatif. Semakin spesifik alternatifnya, semakin spesifik dan semakin kuat tes biasanya; ini juga akan menghasilkan rekomendasi yang paling dapat diandalkan.

dan

Uji skewness dan kurtosis bersama seperti memberikan daya tinggi terhadap berbagai alternatif, seperti halnya Anderson-Darling . Wilk-Shapiro W menunjukkan daya yang relatif tinggi di antara alternatif simetris miring dan berekor pendek jika dibandingkan dengan tes lain, dan kekuatan yang dapat dipercaya untuk alternatif simetris berekor panjang.Ks2SEBUAH2

  • Romao, Xavier, Raimundo Delgado, dan Anibal Costa. "Perbandingan kekuatan empiris dari uji univariat good-of-fit untuk normalitas." Jurnal Perhitungan dan Simulasi Statistik 80.5 (2010): 545-591. Ini adalah penelitian terbaru yang dipublikasikan tentang subjek yang saya tahu.

Studi ini membahas kinerja 33 uji normalitas, untuk berbagai ukuran sampel, mempertimbangkan beberapa tingkat signifikansi dan untuk sejumlah distribusi normal yang simetris, asimetris, dan yang dimodifikasi. Rekomendasi umum untuk pengujian normalitas yang dihasilkan dari penelitian ini didefinisikan sesuai dengan sifat non-normalitas

Jika Anda benar-benar ingin memulai penelitian mereka menjadi ya / tidak, maka jawabannya adalah YA. Tes Shapiro-Wilks tampaknya sedikit lebih kuat dalam banyak kasus daripada Anderson-Darling. Mereka merekomendasikan tes Shapiro Wilk ketika Anda tidak memiliki distribusi alternatif tertentu dalam pikiran. Namun, jika Anda tertarik pada subjek ini, makalah ini layak dibaca. Setidaknya lihatlah tabelnya.

  • Edith Seier, Uji Normalitas: Perbandingan Daya , dalam International Encyclopedia of Statistics Science, 2014 - Sebuah survei penelitian yang dipublikasikan tentang subjek tersebut. Sekali lagi, jawabannya tergantung pada sampel dan pengetahuan Anda tentang distribusi alternatif, tetapi jawaban yang diremehkan adalah YA, Shapiro-Wilk biasanya lebih kuat, tetapi tidak selalu.

  • Henry C. Thode, Tes Normalitas , dalam International Encyclopedia of Statistics Science, 2014 - Deskripsi tes normalitas populer. Rekomendasinya:

Seperti yang ditunjukkan sebelumnya, jumlah tes normalitas besar, terlalu besar bahkan untuk sebagian besar dari mereka disebutkan di sini. Secara keseluruhan, tes terbaik tampaknya adalah tes momen, Shapiro-Wilk W, Anderson-Darling (lihat Tes Good-of-Fit Anderson-Darling), dan tes Jarque-Bera. Spesifik tentang ini dan banyak tes normalitas lainnya dan karakteristiknya dapat ditemukan di Thode (2002) dan tentang kebaikan umum masalah, termasuk tes normalitas, di D'Agostino dan Stephens (1986).SEBUAH2

Sekarang, ini semua tentang tes univariat. The Thode (2002) juga memiliki uji multivariat, data yang disensor, campuran normal, pengujian di hadapan pencilan, dan banyak lagi.

Aksakal
sumber
9

Jawaban yang lebih serius untuk melanjutkan pertanyaan ini dan terutama minat terus-menerus @ silverfish. Salah satu pendekatan untuk menjawab pertanyaan seperti ini adalah menjalankan beberapa simulasi untuk membandingkan. Di bawah ini adalah beberapa kode R yang mensimulasikan data di bawah berbagai alternatif dan melakukan beberapa tes normalitas dan membandingkan daya (dan interval kepercayaan pada daya karena daya diperkirakan melalui simulasi). Saya mengubah ukuran sampel agak karena tidak menarik ketika banyak kekuatan mendekati 100% atau 5%, saya menemukan angka bulat yang memberi kekuatan mendekati 80%. Siapa pun yang tertarik dapat dengan mudah mengambil kode ini dan memodifikasinya untuk asumsi yang berbeda, berbagai alternatif, dll.

Anda dapat melihat bahwa ada beberapa alternatif yang beberapa tesnya lebih baik dan yang lainnya lebih buruk. Pertanyaan pentingnya adalah alternatif mana yang paling realistis untuk pertanyaan / bidang ilmiah Anda. Ini benar-benar harus ditindaklanjuti dengan simulasi pengaruh jenis ketidaknormalan minat pada tes lain yang sedang dilakukan. Beberapa jenis ketidaknormalan ini sangat memengaruhi tes berbasis normal lainnya, yang lain tidak terlalu memengaruhi mereka.

> 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
Greg Snow
sumber
Terima kasih telah menambahkan jawaban ini yang merupakan pelengkap yang bagus untuk jawaban Anda sebelumnya. Tidak ada penghinaan yang ditujukan pada jawaban Anda yang lain, yang merupakan salah satu favorit saya di SE!
Silverfish,
1
Saya mengambil kebebasan mengedit kode Anda untuk menambahkan pemformatan kode & memasukkan semuanya ke dalam jendela, Greg. Saya pikir akan lebih mudah untuk membaca dengan cara ini, tetapi jika Anda tidak suka, putar kembali dengan permintaan maaf saya.
gung - Reinstate Monica