2016-03-29 23 views
1

varsayalım arasındaki tüm ikili farklar İki vektörleri vardır:İki vektör

X1 <- c(44350, 38920, 37530, 42280, 37320, 36910, 35720, 31220, 33400, 40710, 43830, 37390, 32340, 30770, 35800, 40250, 31490, 40460, 33730, 35850, 35320, 37500, 35380, 40910, 29040, 33950) 

X2 <- c(30390, 34170, 28910, 30660, 32510, 30540, 31990, 32380, 32110, 31260, 34670, 28240, 31840, 33350, 32150, 35640, 30730, 30280, 29420, 30990, 32880, 33280, 36960, 36990) 

Ben tüm ikili örneklerini saymak ilgileniyorum nerede X2 X1 < üyesi bir üyesi.

Her iki vektör için bunu R'de nasıl yapabilirim? Şimdi, her iki vektörü birleştirmeyi, rasgele hale getirmeyi, uzunluk (X1) ve uzunluk (X2) iki vektörüne bölündükten sonra, yukarıdaki gibi saymayı ve ilk sayımla karşılaştırmak için rastgele bir dağılım yaratmayı istediğimizi varsayalım.

Bu nasıl yapılır? a < b X2 X1 ve b'de

(s <- sum(outer(X1,X2,`<`))) 
# [1] 106 

iki

X <- c(X1,X2) 

Karışık, resplit birleştirin ve yeniden test örneklerinin

+1

'all_pairs = expand.grid (X1 = X1, X2 = X2)' başlamanız gerekir. – Gregor

+2

Vektörleştirmeden dolayı 'X1

+0

İkinci sorunuza gelince, neyi denediniz ve nereye takıldınız? Vektörleri nasıl birleştireceğinizi bilmiyor musunuz? 'C()' işlevini deneyin. Vektörü randomize edebilir misin? "R rastgele sıralama" için SO ara. Nasıl altüst edileceğini bilmiyor musun? Giriş torkunu okuyun R ... – Gregor

cevap

0

Sayısı birçok kez

set.seed(1) 

r <- replicate(1000000, { 
    X <- sample(X) 
    X1 <- head(X,length(X1)) 
    X2 <- tail(X,length(X2)) 
    sum(outer(X1,X2,`<`)) }) 

(p <- 1 - sum(s <= r)/length(r)) 
# [1] 1e-05 



Not: wilcox.test altında Mann-Whitney testi, böyle bir şey için arıyor olabilir gibi geliyor.

> wilcox.test(X2,X1) 

     Wilcoxon rank sum test 

data: X2 and X1 
W = 106, p-value = 2.858e-05 
alternative hypothesis: true location shift is not equal to 0 

yukarıda s = 106 için W = 106 karşılaştırın.

+0

Wilcoxon testi, vektörler eşleştirilmiş gözlemler olmadığından. Gerçi, istediğim kişi Man-Whitney olabilirdi. – Bryan

+0

Evet, wilcox.test' için yardım dosyasını okuyun.Varsayılan, iki vektör girişi için Mann-Whitney olacak olan 'paired = FALSE' şeklindedir. –