X2独立性测试

时间:2018-08-23 02:05:47

标签: r

所以我们有

13-17 18-24 25-34 35-44 45-54 55-64 65+
Female     1    45    15     6     2     3   2
Male       2   121    31     7     4     2   3

,并且原始数据具有标头,例如F.13-20F.21-35 M.13-20等。 你会怎么做?很难解释,但是我们在任何地方都找不到。

tab <- matrix(as.numeric(WeekReach[158,3:16]), nrow=2, byrow=TRUE)
colnames(tab) <- c("13-17", "18-24", "25-34", "35-44", "45-54", "55-64", "65+")
rownames(tab) <- c("Female","Male")

然后是:

exInd = function() {
n = sum(tab)
p = rowSums(tab)/sum(tab)
q = colSums(tab)/sum(tab)
return(p %o% q * n)}

chiSquaredStatistic = function(E) {
return(sum((tab - E)^2/E))}

E = exInd() 

x2 = replicate(1000, {
ageShuffle = sample(age)
genderShuffle = sample(gender)
Xindep = table(ageShuffle, genderShuffle)
chiSquaredStatistic(Xindep, E)})

但是我们需要一些东西来使男性和女性成为自己的东西-很难解释,老师甚至不会向我们解释#univeristyproblems


对,所以这是老师给的解决方案-注意,他们什么也没解释。

  

WeekReach = read.csv(“ http://staff.scm.uws.edu.au/~lapark/300958/labs/WeeklyReachDemog.csv”,as.is = TRUE)   制表符=矩阵(as.numeric(WeekReach [158,3:16]),nrow = 2,byrow = TRUE)   colnames(tab)<-c(“ 13-17”,“ 18-24”,“ 25-34”,“ 35-44”,   +“ 45-54”,“ 55-64”,“ 65+”)   行名(标签)<-c(“女”,“男”)

     

stretchTable = function(tab,variableNames){   + tabx = rep(行名(tab),rowSums(tab))   + l = ncol(tab)   + m = nrow(tab)   + cn =姓氏(标签)   + taby = c()   +表示(1:m中的a){   +(1:l中的b){   + taby = c(taby,rep(cn [b],tab [a,b]))   +}   +}   +   + d = data.frame(x = tabx,y = taby)   + colnames(d)=变量名   +回报(d)   +}

     

tab2 = StretchTable(tab,c(“ Gender”,“ Age”))

     

验证我们的值正确

     

表(tab2)

这是“问题” 我们在讲座中表明,可以针对给定的双向表(双向含义,具有多个行和列)执行独立性测试。要执行测试,我们需要:

如果行和列是独立的,则

计算表的期望值(演讲幻灯片中显示的代码)。 随机排列表格的行和列。 要执行改组,我们必须首先取消表的列表。例如,如果我们从表开​​始:

A B C X 2 1 1 是1 3 1 我们必须将其转换为以下形式:

列行 X X Y X Y Y Y X Y 编写代码以执行此表转换。

提示:要计算两列表,可以分别计算两列为性别和年龄,然后使用tab2 = data.frame(性别=性别,年龄=年龄)进行组合。同样,函数rowSums,colSums,行名,colnames和rep可能会有用(如果您不熟悉这些函数,请阅读有关它们的R文档,例如help(rowSums))。

一旦我们将数据分为两列,我们将对这些列进行混洗,然后重新计算表并计算χ2值(如本课程所示)。

使用上表标签和假设H0:性别和年龄是独立的,HA:性别和年龄不是独立的:

计算χ2随机分布。 计算制表符的χ2统计量。 计算测试的p值。 最后陈述测试结论。

玩得开心。

2 个答案:

答案 0 :(得分:0)

我假设您要执行chi-square test of independence,以确定在不同年龄段的男性/女性群体中,预期和观察到的频率之间是否存在显着差异。

以下内容将帮助您入门

df <- read.table(text =
    "13-17 18-24 25-34 35-44 45-54 55-64 65+
Female     1    45    15     6     2     3   2
Male       2   121    31     7     4     2   3", header = T)

chisq.test(df)
#
#   Pearson's Chi-squared test
#
#data:  df
#X-squared = 4.8117, df = 6, p-value = 0.5682

基于样本数据和卡方检验结果,我们未能拒绝原假设,并得出结论:没有足够的证据推断出不同频率下的男性和女性频率之间存在统计学上的显着差异年龄段。

答案 1 :(得分:0)

上面的回答^^他们制作了一张桌子并使用了所有这些功能,但不建议这样做。