仅使用两个变量创建交叉制表矩阵

时间:2014-01-19 12:38:16

标签: r matrix

如果问题过于简单,我道歉,但我现在才开始讨论R和统计相关的问题。

我正在使用内置infert数据集中的数据,对于作业,我需要构建交叉制表矩阵,其中列将是induced变量行将是spontaneous变量。

以下是不熟悉infert的任何人的矩阵示例:

> infert
    education age parity induced case spontaneous stratum pooled.stratum
1      0-5yrs  26      6       1    1           2       1              3
2      0-5yrs  42      1       1    1           0       2              1
3      0-5yrs  39      6       2    1           0       3              4
4      0-5yrs  34      4       2    1           0       4              2
5     6-11yrs  35      3       1    1           1       5             32
6     6-11yrs  36      4       2    1           1       6             36
7     6-11yrs  23      1       0    1           0       7              6
8     6-11yrs  32      2       0    1           0       8             22
9     6-11yrs  21      1       0    1           1       9              5
10    6-11yrs  28      2       0    1           0      10             19
11    6-11yrs  29      2       1    1           0      11             20
...
247   12+ yrs  29      1       0    0           1      82             43
248   12+ yrs  23      1       0    0           1      83             40

之后,我还需要对结果应用卡方式表格测试,以查看这两个变量是否相关联。

问题是,由于我的经验不足,我不知道从哪里开始。谷歌没有得到任何相关结果,我找不到任何关于构建交叉制表矩阵的方法()或教程。

然而,一个非常相关的页面也包含我发现的卡方测试方法的信息this,尽管它使用外部包gmodels

使用内置R函数执行此操作的任何方法,还是必须获取gmodels

1 个答案:

答案 0 :(得分:1)

您可以使用table创建列联表:

freq <- table(infert[c("induced", "spontaneous")])
#        spontaneous
# induced  0  1  2
#       0 67 47 29
#       1 45 16  7
#       2 29  8  0

现在,您可以使用chisq.test来测试这两个变量是否独立:

chisq.test(freq)

#  Pearson's Chi-squared test
#
# data:  freq
# X-squared = 18.198, df = 4, p-value = 0.001129