使用R测试比例的统计差异

时间:2015-03-05 03:22:22

标签: r statistics glm

我正在尝试解决以下问题:

一个人可以被归类为GroupA,GroupB或GroupC。

我想知道attribute1(或attribute2)如何影响这些组中观察的比例。请注意,attribute1:attribute2具有1:N关系。 Attribute1有五个可能的值,A,B,C,D,E,而attribute2有两个可能的值:A,B。

模拟数据:

obsGroupA <- round(runif(40, 240, 63535))
obsGroupB <- round(runif(40, 2478, 95063))
obsGroupC <- round(runif(40, 3102, 104799))
propGroupA <- obsGroupA/(obsGroupA + obsGroupB + obsGroupC)
propGroupB <- obsGroupB/(obsGroupA + obsGroupB + obsGroupC)
propGroupC <- obsGroupC/(obsGroupA + obsGroupB + obsGroupC)
#propGroupA + propGroupB + propGroupC
attributeA <- c("A", "B", "C", "D", "E")[runif(40, 1, 5)]
attributeB <- ifelse(attributeA %in% c("A", "B", "E"), "A", "B")  

模特尝试:

#y <- cbind(obsGroupA, obsGroupB, obsGroupC)
y <- cbind(propGroupA, propGroupB, propGroupC)
model <- glm(y ~ attributeA)

我收到以下错误:

  

x [good,,drop = FALSE] :(下标)逻辑下标中的错误   长

我有什么想法可以在R中进行统计测试? 任何对正确统计测试的参考也将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

那么,你应该首先看一下像评论一样的回归分析。你在那里理解有些问题。但是,这就是你想要的:

obsGroupA <- round(runif(40, 240, 63535))
obsGroupB <- round(runif(40, 2478, 95063))
obsGroupC <- round(runif(40, 3102, 104799))
propGroupA <- obsGroupA/(obsGroupA + obsGroupB + obsGroupC)
propGroupB <- obsGroupB/(obsGroupA + obsGroupB + obsGroupC)
propGroupC <- obsGroupC/(obsGroupA + obsGroupB + obsGroupC)
#propGroupA + propGroupB + propGroupC
attributeA <- c("A", "B", "C", "D", "E")[runif(40, 1, 5)]
attributeB <- ifelse(attributeA %in% c("A", "B", "E"), "A", "B")

y <- data.frame(propGroupA, propGroupB, propGroupC,attributeA,attributeB)
model <- glm(propGroupA ~ attributeA ,data=y )
summary(model)