X2独立测试

问题描述 投票:0回答:2

所以我们有

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)tab = matrix(as.numeric(WeekReach [158,3:16]),nrow = 2,byrow = TRUE)colnames(tab)

stretchTable = function(tab,variableNames){+ tabx = rep(rownames(tab),rowSums(tab))+ l = ncol(tab)+ m = nrow(tab)+ cn = colnames(tab)+ taby = c( )+ for(a in 1:m){+ for(b in 1:l){+ taby = c(taby,rep(cn [b],tab [a,b]))+} +} + + d = data.frame(x = tabx,y = taby)+ colnames(d)= variableNames + return(d)+}

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

Verify that we the correct values

表(TAB2)

这是'问题'我们在讲座中展示了我们可以对给定的双向表执行独立性测试(双向意义,有多个行和列)。要执行测试,我们需要:

如果行和列是独立的,则计算表的预期值(演示幻灯片中显示的代码)。随机播放表格的行和列。为了实现改组,我们必须首先解开桌子。例如,如果我们从表开​​始:

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

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

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

一旦我们将数据分成两列,我们就会对列进行混洗并重新计算表并计算χ2值(如演讲中所示)。

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

计算χ2随机化分布。计算选项卡的χ2统计量。计算测试的p值。最后陈述测试结论。

玩得开心。

r
2个回答
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

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


0
投票

在上面回答^^他们制作了一张桌子,并使用了所有这些功能,但没有被告知这样的。

© www.soinside.com 2019 - 2024. All rights reserved.