alfa çeşitliliği wilcox.test
Alfa çeşitliliğindeki önemli farkı tespit etmek için Wilcox testi yapmaya çalışıyorum ama bir hata mı gösteriyor? physeqN2 bir phyloseq nesnesidir ve Season bir meta veri sütunudur.
results = estimate_richness(physeqN2, measures = 'Chao1')
d = sample_data(physeqN2)
# calculate Wilcox Test
Wet.root = results[d[,'Season'] == 'Wet',]
Dry.root = results[d[,'Season'] == 'Dry',]
pmv <-pairwise.wilcox.test(Wet.root, Dry.root)
capture.output(pmv, file = "chao1.16s.wet_vs_Dry.root.txt")
Error;
Error in wilcox.test.default(xi, xj, paired = paired, ...) :
'x' must be numeric
Calls: pairwise.wilcox.test ... compare.levels -> wilcox.test -> wilcox.test.def ault
Execution halted
Bunu başka bir şekilde yapmayı denedim ama burada da hata mı alıyorum?
alpha.diversity <- estimate_richness(physeqN2, measures=c("Chao1"))
## Wilcox on observed richness
data <- cbind(sample_data(physeqN2), alpha.diversity)
pmv <-pairwise.wilcox.test(Chao1 ~ Season, data)
capture.output(pmv, file = "chao1.16s.wet_vs_Dry.root.txt")
Error:
Error in if (length(ans) == 0L || as.character(ans[[1L]])[1L] == "~") { :
missing value where TRUE/FALSE needed
Calls: pairwise.wilcox.test ... sapply -> lapply -> FUN -> compare.levels -> [ -> [.formula
Execution halted
Çok teşekkürler
Yanıtlar
Bunun giriş verilerinde bir hata olduğunu düşünüyorum.
Vahşi bir tahminle, giriş verilerinin eşleştirilmiş olarak kabul edilmediğini düşündüğüm, dolayısıyla hata paired = paired. Diğer tuhaf hata ise x must be numeric. İlk olarak,
- Eksik verileri nasıl puanlıyorsunuz, bu
-şans eseri değil mi? Eksik veriler,nantür sözdizimi yoluyla olmalıdır . - başlık hatası olmadığına emin misin? Bir başlığın sayısal verilere sürüklenmesi gibi mi?
Wilcoxan parametrik olmayan bir T testidir, bu nedenle ıslak kök ve kuru kök tam olarak aynı örnekle eşleşmelidir. Bu nedenle, jenerik kuru köke karşı genel bir ıslak kök değil, aynı örnekten ıslak ve kuru. Elinizdeki veriler buysa, program eşleşmediğini düşünür.
Eğer gerçekten eşleştirilmişse, yine bence hata kaynağı, eşleştirmeleri eşit olmayan uzunluklarda bırakan bazı eksik değerlere sahip olmanız veya başka bir başlık hatasıdır.
Veriler gerçekten eşlenmemişse, Mann-Whitney U testine bakardım, bu senaryoda daha kolay olurdu.
R sözdizimini kullanmıyorum (sadece pandas veri çerçeveleri), bu nedenle ilk örnekteki sözdiziminin geçerli olup olmadığını söyleyemem, ancak girdinizle ilgili olarak oldukça açık. Python'da genellikle ona tüm veri çerçevesini verir ve ona şekle girmesini söylersiniz.
Gerçek şu ki, bir çok program Wilcoxan'ı yapıyor, tek seferlik bir test ise R'yi kullanmanıza gerek yok. Açıkçası, bu biraz farklı bir boru hattının (otomasyon) bir parçasıysa.