在R上进行chisq测试的置换数据和随机模拟

时间:2013-09-25 01:46:09

标签: r permutation

我是R的新手,我正在尝试将观察值表与一个预期值进行比较并计算chisq。作为我的任务的一部分,我需要将期望值表与我使用观察值中的随机排列创建的一组999个表进行比较。我需要计算每个表的chisq值(nsim = 999),然后绘制所有chisq值的直方图以及来自观察数据的实际chisq。这是我正在使用的数据和代码:

> survival=table(titanic[,c("CLASS","SURVIVED")])
> survival
      SURVIVED
CLASS   no yes
  1st  122 203
  2nd  167 118
  3rd  528 178
  crew 673 212

> expected=expected(survival) #library(epitools)
> expected
      SURVIVED
CLASS        no       yes
  1st  220.0136 104.98637
  2nd  192.9350  92.06497
  3rd  477.9373 228.06270
  crew 599.1140 285.88596

>nsim=999
>random= rep(survival,nsim)

现在我被卡住了!

1 个答案:

答案 0 :(得分:1)

生成排列的最简单方法是在sample列上使用"SURVIVED"命令:

sample(titanic[,"SURVIVED"])

将对该列的yes/no标签进行随机播放,然后您可以重复此次999次:

replicate(999, {
  permSurvival <- sample(titanic[,"SURVIVED"])
  # Code to measure chi square test goes here
})