2x4列联表的统计数据,包括大小计数

时间:2014-09-14 07:05:23

标签: r statistics contingency

如果这是一个非常天真的问题,我道歉...

我有7000个带有计数数据的2x4列联表。它们代表基因组中的特定位置以及在2个不同环境中在该位置观察每个dna核苷酸的次数。 一个示例列联表是

            A      C      G      T 
condition1  0      2      20     70000
condition2  3      15     0      95000

or
            A      C     G       T 
condition1  80146  0     5       0
condition2  26821  2     4       0

数据只能是正整数。最小计数为0,最大计数可达800,000。一个计数通常几乎是该行和列的总计数(例如,在两种条件下相同,例如上面第一种情况中的单元T和第二种情况下的单元A),然后1或2个其他单元将具有低计数......在这些其他细胞中,应该观察到差异(如果有的话)。

目标是确定这两种环境条件之间存在显着差异的位置,以进一步分析。我们的测量方法估计误差率为10 ^ -6。

我正在使用R来分析这些数据。我不确定我是否可以对此进行卡方检验,因为它具有小或0计数的细胞。 通过费希尔的测试,我得到了2个错误:

with a workspace of 1E5 
FEXACT error 40.
Out of workspace.

with a workspace of >3E5
FEXACT error 501.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace size or use another algorithm.

有人可以建议适当的测试,或设置渔民或卡方?

非常感谢,

罗恩

2 个答案:

答案 0 :(得分:0)

Fisher在R中的精确测试仅适用于较小的数据。如果将T列中的数据从70000和95000减少到700和950,则Fisher测试将起作用。

与此同时,我对您的数据进行了chisq.test尝试,并且有效。对于较大的数据,卡方检验优于Fisher精确检验。

答案 1 :(得分:0)

卡方检验:

df1 = structure(list(A = c(0L, 3L), C = c(2L, 15L), G = c(20L, 0L), 
    T = c(70000L, 95000L)), .Names = c("A", "C", "G", "T"), class = "data.frame", row.names = 1:2)

df1
  A  C  G     T
1 0  2 20 70000
2 3 15  0 95000

chisq.test(df1)

        Pearson's Chi-squared test

data:  df1
X-squared = 35.8943, df = 3, p-value = 7.884e-08

Warning message:
In chisq.test(df1) : Chi-squared approximation may be incorrect

我不确定这是否足够。