Soru:
Simüle edilen verilerin normal olarak dağıtıldığı nasıl doğrulanır?
Charles
2012-04-19 09:31:07 UTC
view on stackexchange narkive permalink

Normal dağıtımlar ürettiği söylenen bir programım var ve onu test etmek istiyorum. Bir takım sorunlarım var; belki buradaki uzmanlar, temel olanları gereksizden ayırmama ve bunların çoğunu cevaplamama yardımcı olabilir.

  1. İdeal olarak basit bir test arıyorum - yapabileceğim Çok fazla sorun yaşamadan uygulayın.
  2. Bitişik değerler arasında korelasyon olabilir. Veriler 'başka türlü' normal olarak dağıtılırsa bazı testler bu başarısızlığa duyarlı olmayabilir.
  3. İdeal olarak, (küçük!) Bir miktar normal olmama durumuna izin vermek istiyorum. Gördüğüm testlerin çoğu, biraz normal olmayan verilerin geçmesine izin veriyor çünkü az sayıda değer test ediliyor (burada "küçük", sapmanın boyutuna bağlı olarak hala milyonlar anlamına gelebilir). Bu, normallik testinin değeriyle ilgili bu soruyu hatırlatıyor.
İlginç bir soru için +1, özellikle de pek çok ilginç noktayı ortaya çıkaran az miktarda normal olmayışa tahammül edebildiğiniz için. Ancak, standart testlerinizin - Shapiro-Wilk, Anderson-Darling, vb. - kendi özel durumunuzda, 1. kriterinize kesinlikle uyan artıları ve eksileri hakkında herhangi bir fikriniz var mı?
@PeterEllis: Gerçekten bilmiyorum. Bunu, en iyisinin iyi olacağı hissine kapılacak kadar sık ​​yapmıyorum. Hiç şüphe yok ki, çok fazla veri noktası kullanmadığım sürece bunların hiçbiri geçebilirdi, ancak biraz varyasyonu tolere etmenin sadece belirsizlikten daha iyi bir yolu olsaydı bilmek isterdim. (Varsa ama çok karmaşıksa, çok fazla noktayı test etmemeye geri döneceğim - ama en azından daha akıllı olacağım.)
Daha fazla bilgi edinmekle ilgileniyorum. Örneğin, programınız * biraz * normal olmayanın aksine * orta derecede * normal olmayan dağıtımlar oluştursa bunun sonucu ne olur?
@rolando2: Bu bir kütüphane, dolayısıyla onlarla hiçbir şey yapmıyor. Sadece doğru olduğunu onaylamak istiyorum. Ancak yeterli hesaplamayla her şeyin normal olmadığını ve ikisini ayırt etmenin ilginç bir problem olduğunu anladım. Tüm bunlar, son zamanlarda uygulamada sayıların normal olmamasına neden olan bir hata bulduğum gerçeğine dayanıyor - biraz daha fazla, ancak testlerim bunu keşfettiği kadar değil.
Dört yanıtlar:
conjugateprior
2012-04-19 13:43:42 UTC
view on stackexchange narkive permalink

Sorunlar, 'küçük' miktarlarda normal olmama ve 'bir miktar' otokorelasyon fikrinden kaynaklanıyor. Bunları nasıl işler hale getireceğiniz netleşene kadar, normallik testleriyle (normalliğe yakın değil) sıkışmışsınızdır. Sizin de ima ettiğiniz gibi, duyarsız bir normallik testi ile hassas bir normale yakınlık testi arasında oldukça kavramsal bir fark vardır. İlkini ikincisi olarak kullanabilirsiniz, ancak bu muhtemelen tam olarak doğru olmayacak ve çeşitli sınırlar içinde farklı davranacaktır. Bana öyle geliyor ki iki şekilde ilerleyebilirsiniz:

Genel normallik testleri, normal olmamanın hangi yönlerine diğerlerinden daha ciddi muamele edileceğini kontrol etmenize izin vermez. Öyleyse, normalliğin hangi yönünün gerçekten önemli olduğunu tanımlayabilir misiniz? Daha fazla endişeniz varsa, ör. şişman kuyruklar veya çarpık, sonra bunları ayrı ayrı test edebilirsiniz. Benzer şekilde, birinci dereceden otokorelasyonu tahmin ederseniz, ne kadarının 'çok fazla' olduğunu belirlemek için bu parametrede güven aralığını kullanabilirsiniz. Ama yine de doğru sıranın ne olduğuna (@ Jason O. Jensen bunun bir olduğunu varsayar, ancak bu üretim sürecine bağlı olacaktır) ve teste güvenip güvenmediğinize karar vermelisiniz. Doğru hatırlıyorsam, farklı normallik testlerinin (örneğin KS ve Shapiro-Wilks) boyutu, bazen işaretine bağlı olarak bile, düzey otokorelasyonuna göre değişir. Ve bu, çeşitli alternatiflere göre güçlerindeki çeşitliliğe ek olarak ...

İkincisi, verileri kendiniz oluşturduğunuzu söylüyorsunuz. Ya bir çeşit rastgele sayı üretecini test ettiğinizi ya da bir şeyin asimptotik olarak normal bir dağılıma ulaşıp ulaşmadığını merak ettiğinizi hayal ediyorum. İlk durum için, muhtemelen neyin yanlış olabileceğine dair bir fikriniz vardır, bu nedenle yukarıda önerildiği gibi bunu test edebilirsiniz. İkinci durumda, daha az sezgim var. MCMC yakınsama literatürünün bu vaka hakkında söyleyecek yararlı bir şeyi olması muhtemeldir.

Tahmininiz doğru - bu rastgele bir sayı oluşturucu. (Üzgünüm, daha açık konuşmalıydım!) Durumu ele almak için iyi bir * genel * yol bulmaya çalışıyorum. Bir fonksiyonun 200 basamaklı hassasiyette çağrıldığı ve sonucun standart bir doğru sonuçla kontrol edildiği sistemin farklı bir bölümünün testini hatırlattım. İşlev, hassasiyet eklemek için ince ayarlandığında, son ondalık basamak 1 değiştirildi (biraz daha doğru hale geldi), ancak daha sonra test, beklenen, daha az doğru verilerle eşleşmediği için başarısız oldu! Yolun sonunda oraya tekrar çıkmak istemem. :)
Jason O. Jensen
2012-04-19 11:14:22 UTC
view on stackexchange narkive permalink

Öncelikli endişeniz ikinci nokta ise, verileri bir gözlemde 'geciktirebilir' ve ardından 'gecikmiş' verilerdeki 'ham' verileri geri yükleyebilirsiniz. Bunu her şekilde bir gecikme için yapın ve verilerin yeterince rastgele olup olmadığına p değerine göre karar verin.

Siteye hoş geldiniz! Görünüşe göre orijinal posterin birincil endişesi zamansal otokorelasyon değil, normalliği test etmekti. Her durumda, ileride başvurmak için, bu bir cevaptan çok bir yoruma benziyor (SSS'ye bakın).
Bu mantıklı bir yaklaşım gibi görünüyor - 2. noktayı ayrı ayrı ele alın. Ne tür bir test kullanabilirim?
Evet, bu muhtemelen bir yorum olmalıydı. Temel bir kural, katsayı için p-seviyesi .05'ten düşükse, ikisinin ilgisiz olduğu hipotezini reddetmektir, ancak bu test öncelikle yanlış pozitiflerle ilgilidir. Çoğunlukla yanlış bir negatifle ilgileniyor gibisiniz (yanlışlıkla komşu değerlerin ilgisiz olduğunu varsayarak). Test etmek için alternatif bir dağılım varsaymanız gerekir. Katsayının boyutuna bakmak, etkinin anlamlı olarak anlamlı olup olmadığına dair muhtemelen daha iyi bir gösterge verebilir.
MånsT
2012-04-20 14:58:11 UTC
view on stackexchange narkive permalink

Başka bir öneri de, oluşturulan verileriniz ile normal dağılım arasındaki Kullback-Leiber sapmasını veya Hellinger mesafesini hesaplamaktır. Bu size verilerinizin ne kadar normal olmadığının bir ölçüsünü verir (ve umarız normallikten küçük bir sapmanın ne olduğunu belirleyebilirsiniz).

Greg Snow
2012-04-19 23:53:41 UTC
view on stackexchange narkive permalink

Neredeyse normale yakınlık için düşünebildiğim en iyi test:

  Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne, DF ve Wickham, H. (2009) Keşifsel veri analizi ve model teşhisi için İstatistiksel Çıkarım Phil. Trans. R. Soc. 2009 367, 4361-4383 doi: 10.1098 / rsta.2009.0120  

TeachingDemos code içindeki vis.test işlevi > R paketi, bu testte varyasyonlar uygular. Bu, ya R'nin rastgele normal oluşturucusunun karşılaştırma için yeterince iyi olduğuna ya da karşılaştırma için yeterince başka bir normal kaynağınız olduğuna güvendiğinizi varsayar. Bu test otomatikleştirilemez, ancak oldukça basittir ve yukarıdaki fikirlere uyar (ve isterseniz otokorelasyona bakmanın bir yolunu da bulabilirsiniz).



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...