如何在R编程中计算卡方?

时间:2019-05-14 16:56:23

标签: r

这是我的数据框,称为mydata。

                   Denomination     
Attendance    Protestant Catholic Jewish
Regular          182      213    203
Irregular        154      138    110

我想通过卡方检验来计算假设。所以我这样设定我的假设:

  

H0:教派与出勤没有关系

     

H1:面额和出勤率之间有关系。

我已经尝试通过计算实际值和期望值,并将它们进行比较以计算卡方。但是没有得到输出。

我尝试过的代码:

> rowSums(mydata,na.rm = FALSE,dims = 1L)
> colSums(mydata,na.rm = FALSE,dims = 1L)
> sum(mydata)
> e = rowSums(mydata) * colSums(mydata)/ 1000
> chisq.test(mydata) = sum((mydata-e)^2 / e)

但是我没有得到结果。请提出建议?

1 个答案:

答案 0 :(得分:2)

这里需要注意的几件事:

  1. chisq.test只能有数字列(或整数)。您显示数据的方式似乎Attendance是它自己的列,而不是rowname
  2. 您无需计算rowSumscolSums即可使用测试。

这是我运行的代码:

dfs <- data.frame(Attendance = c("Regular", "Irregular"), Protestant = c(182, 154), Catholic = c(213, 138), Jewish = c(203,110))
rownames(dfs) <- dfs[,1]
dfs$Attendance <- NULL
chisq.test(dfs)

    Pearson's Chi-squared test

data:  dfs
X-squared = 7.8782, df = 2, p-value = 0.01947