2013-10-10 49 views
2

我對R不太滿意,我非常感謝任何幫助。在R中將一個大矢量拆分爲間隔

我跑這個循環,我有這個巨大的結果向量11,303,044行。 我有另一個由1681行的另一個循環產生的向量。

我想運行一個chisq.test來比較它們的分佈。但由於它們長度不同,所以不起作用。

我試圖從11,303,044大小的矢量中取出1681大小的樣本來匹配第二個矢量的大小長度,但每次運行它時都會得到不同的chisq.test結果。

我在想把這兩個向量分成相等數量的區間。

假設

向量1:

temp.mat<-matrix((rnorm(11303044))^2, ncol=1) 
head(temp.mat) 
dim(temp.mat) 

vector2:

temp.mat<-matrix((rnorm(1681))^2, ncol=1) 
head(temp.mat) 
dim(temp.mat) 

怎樣在相等的間隔將它們分割導致相同長度的載體?

謝謝:)

+0

由於大量的病例,任何測試幾乎肯定會非常顯着。與qqplot比較可能更有意義(可能需要一些採樣來減少繪圖負載)。 –

回答

0

chisq.testPearson's chi-square test。它是爲離散數據而設計的,並且具有兩個輸入向量,它將強制傳遞給因子的輸入,並且它測試的是獨立性,而不是分佈的均等性。例如,這意味着數據的順序會有所不同。

> set.seed(123) 
> x<-sample(5,10,T) 
> y<-sample(5,10,T) 
> chisq.test(x,y) 

    Pearson's Chi-squared test 

data: x and y 
X-squared = 18.3333, df = 16, p-value = 0.3047 

Warning message: 
In chisq.test(x, y) : Chi-squared approximation may be incorrect 
> chisq.test(x,y[10:1]) 

    Pearson's Chi-squared test 

data: x and y[10:1] 
X-squared = 16.5278, df = 16, p-value = 0.4168 

Warning message: 
In chisq.test(x, y[10:1]) : Chi-squared approximation may be incorrect 

所以我不認爲chisq.test是你想要的,因爲它不比較分佈。也許嘗試像ks.test,這將與不同長度的向量和連續數據。

> set.seed(123) 
> x<-rnorm(2000)^2 
> y<-rnorm(100000)^2 
> ks.test(x,y) 

    Two-sample Kolmogorov-Smirnov test 

data: x and y 
D = 0.0139, p-value = 0.8425 
alternative hypothesis: two-sided 

> ks.test(sqrt(x),y) 

    Two-sample Kolmogorov-Smirnov test 

data: sqrt(x) and y 
D = 0.1847, p-value < 2.2e-16 
alternative hypothesis: two-sided 
+0

我試過kolmogorov的測試,但是,因爲我的第一個矢量大小爲11,303,044,R打印出錯誤:無法分配大小爲86.2 Mb的矢量 –

+0

您的計算機上有多少內存?嘗試在KS測試之前調用'gc()',或者您可以簡單地執行't.test'。 – mrip

+0

另一種選擇是例如'ks.test(x,sample(y,10000))'。 – mrip

1
mat1<-matrix((rnorm(1130300))^2, ncol=1) # only one-tenth the size of your vector 
smat=sample(mat1, 100000)    #and take only one-tenth of that 
mat2<-matrix((rnorm(1681))^2, ncol=1) 
qqplot(smat,mat2)      #and repeat the sampling a few times 

你看到從統計的角度來看,似乎有趣。在「偏離平均值」的較高層次上,大樣本總是偏離「合適」,這並不令人驚訝,因爲它具有更高數量的極端值。

+0

感謝您的幫助,在這裏生成了一個有趣的情節。 –

+0

你的努力與直方圖的定性比較似乎是合理的,特別是如果你限制'休息時間'是相同的。'qqplot'會導致更細粒度的比較,並會披露任何「高頻」差異或奇怪的「尾巴行爲」。但是,在這樣的大樣本上不推薦您搜索「顯着性測試」,因爲它幾乎總是「顯着」,但通常沒有意義。 –