Wilcoxon testi yapmadan önce titreşmek yanlış mı?


9

Ben bir komut dosyası kullanarak verileri test yazdı wilcox.test, ama sonuçları aldığımda, tüm p-değerleri nerede 1 eşittir. Bazı web sitelerinde veri test etmeden önce jitter kullanabileceğiniz okudum (dedikleri gibi bağları önlemek için), Bunu yaptım ve şimdi kabul edilebilir bir sonucum var. Bunu yapmak yanlış mı?

test<- function(column,datacol){
    library(ggplot2)
t=read.table("data.txt", stringsAsFactors=FALSE)
uni=unique(c(t$V9))
    for (xp in uni) { 
          for(yp in uni) {
            testx <- subset(t, V9==xp)
            testy <- subset(t, V9==yp)
            zz <- wilcox.test(testx[[datacol]],jitter(testy[[datacol]]))
            p.value <- zz$p.value
          }
        }
}


Bu çıktı dput(head(t))

structure(list(V1 = c(0.268912,
0.314681, 0.347078, 0.286945, 
0.39562, 0.282182), V2 = c(0.158921, 0.210526, 0.262024, 0.322006, 
0.133417, 0.283025), V3 = c(0.214082, 0.166895, 0.132547, 0.147361, 
0.09174, 0.169093), V4 = c(0.358085, 0.307898, 0.258352, 0.243688, 
0.379224, 0.2657), V5= c(-0.142223, 0.010895, 0.14655, 
0.08152, 0.02116, 0.030083), V6 = c(0.096408, -0.091896,

-0.331229, -0.446603, -0.088493, -0.262037), V7` = c(1.680946, 
1.649559, 1.534401, 1.130529, 3.441356, 1.211815), V8 = c("NC_000834",  "NC_000844",
"NC_000845", "NC_000846", "NC_000857",
"NC_000860" ), V9 = c("Chordata",
"Arthropoda", "Chordata", "Chordata", 
"Arthropoda", "Chordata"), V10 =
c("???:???", "Diplostraca", 
"???:???", "Rheiformes", "Diptera",
"Salmoniformes"), V11 = c("???:???",
"Branchiopoda", "Mammalia", "Aves",
"Insecta", "Actinopterygii" )), .Names
= c("V1", "V2", "V3", "V4", "V5", "V6",  "V7",
"V8", "V9", "V10",
"V11"), row.names = c(NA,  6L),
class = "data.frame")

Veriler çok büyük ve başladığım konu bu ve bana bunu yapmanın yanlış olabileceğini söylediler

Not Bu soru tex'ten gelmektedir.SE: lateks tablosunda PDFcontain R çıktısı oluşturma


2
Bize verilerinizin ne olduğunu söylemiyorsunuz, ancak verilere rastgele gürültü ekleyen ve daha sonra üzerinde istatistiksel bir test yürüten herhangi bir prosedürden çok şüpheliyim. Ayrıca, kodunuzun ne düşündüğünü yaptığından emin misiniz? Okumam, döngünüze rağmen, tek bir p.value döndürecek - x = y = {lastvaluof} (uni)
Andrie

@Andrie: yardımınız için teşekkürler, ancak tam kod bu değil, bu wilcox testini hesaplayan fonksiyonun bir parçası ve her biri için farklı p-değeri değerleri üreten kod (xp, yp), bu bir Verilerimin bir parçası olarak, görüntüleyebilir ve bunu yapıp yapamayacağımı kontrol edebilirsiniz, şimdiden teşekkürler. mediafire.com/?mnj26kp4bv5lcr5

1
Özellikle R, dput()bunu yapmak için herhangi bir ihtiyacı ortadan kaldıran çok yararlı bir işlev sağlarsa, diğer bağlantılara yeniden yönlendirilmesi gereken veri bağlantılarından çok şüpheliyim . Yardım almak için lütfen tekrarlanabilir bir örnek verin.
Chase


@weblover İstatistik sorunuzu burada sormanızı (tex.SE'de) önerdiğimde, SO'ya zaten sormuş olduğunuzu bilmiyordum. Lütfen iki yayından birini silin (bu bir istatistik sorusu olduğundan muhtemelen SO'da).
chl

Yanıtlar:


6

R-yardım listesinde bununla ilgili bir konu var; bkz. örnek: http://tolstoy.newcastle.edu.au/R/e8/help/09/12/9200.html

İlk öneri, testi farklı titreme ile çok sayıda tekrarlamak ve daha sonra ortalama veya maksimum alarak toplam p-değerini elde etmek için p-değerlerini birleştirmektir. Ayrıca, bunun yerine basit bir permütasyon testinin kullanılabileceğini de öne sürüyorlar (ikisi arasından tercih ettiğim şey budur). R'de t testleri (eşleştirilmiş ve eşleştirilmemiş) yerine hangi permütasyon testi uygulamasını kullanmak için sorusuna bakın. permütasyon testlerinin bazı örnekleri için.

Bu iş parçacığının başka bir yerinde, Greg Snow şunları yazıyor: Bir uyarıyı önlemek için verilere rastgele gürültü eklemek, alarmın kapanmasına neyin neden olduğunu araştırmak yerine pilleri bir duman dedektöründen susturmak için çıkarmaya benzer. (Bkz. Http://tolstoy.newcastle.edu.au/R/e8/help/09/12/9195.html )


Cevabınız için teşekkürler, ama anlamamıştım, şimdi ne yapmalıyım? testi değiştirin veya verileri bir şeye göre ayarlayın ve bu nedir ???
weblover

Bağlantı verdiğim sayfayı özetleyeceğim.
Aaron Stack Overflow'dan ayrıldı

3

(yasal uyarı: Kodu kontrol etmedim, cevabım sadece açıklamanıza dayanıyor)

Yapmak istediğiniz şeyin gerçekten kötü bir fikir olduğunu hissediyorum . Wilcoxon, rütbeler için yeniden örnekleme (veya randomizasyon) testidir. Yani, değerlerin sırasını alır ve bu safları safların olası tüm permütasyonları ile karşılaştırır (bkz. Örneğin burada ).

Yani, fark ettiğiniz gibi, onlardan rütbe alamadığınız için bağlar oldukça kötü. Ancak, verilerinize rastgele parazit (titreşim) eklemek tüm safları dönüştürür, böylece rastgele safları olur! Yani, verilerinizi ciddi şekilde bozar.

Bu nedenle: Bunu yapmak yanlış .


thnx cevap, ama bu durumda ne yapmalıyım ??
weblover

2

Birkaç kişiye şimdi ne yapmanız gerektiğini sordunuz. Bana göre, şimdi yapmanız gereken, burada uygun p-değerinin 1.000 olduğunu kabul etmektir. Gruplarınız farklı değil.


merhaba, bunu kabul etmek mantıklı mı? çünkü tüm gruplar ve alt gruplar birlikte karşılaştırıldığında, aynı p-değerini verir, bu mantıklı değildir çünkü her durumda 1 değişkeni test ediyorum örneğin: test ("Ph", V1), bu yüzden p-değeri aynı olmamalıdır herşey . herhangi bir fikir ??
weblover

Tabii, mantıklı olabilir. 1'lik bir p değeri, iki grubun mümkün olduğunca aynı olduğu anlamına gelir. Neredeyse tüm bağlarınız varsa, bu doğru olabilir.
Aaron Stack Overflow'dan ayrıldı

@Aaron @Web Bu veriler (V1 - V7) bağlı değildir. 1'in p-değerlerinin elde edilmesinde bir yerde bir hata yapılmış olmalıdır. Onları Wilcoxon imzalı-sıra testiyle karşılaştırırken 0.036'nın çok fazla p-değeri elde ediyorum.
whuber

OP, verilerin ilk birkaç satırını yayınladı; görünüşe göre daha fazla bağlar olmalı, ancak veriler altı ondalık basamağa gittiği için bu pek olası görünmüyor. Yani evet, tam olarak belirttiğin gibi olmasa da, analizde bir hata olabilir gibi görünüyor.
Aaron Stack Overflow'dan ayrıldı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.