2013-10-10 47 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'会导致更细粒度的比较,并会披露任何“高频”差异或奇怪的“尾巴行为”。但是,在这样的大样本上不推荐您搜索“显着性测试”,因为它几乎总是“显着”,但通常没有意义。 –