我希望有新鲜眼睛的人能够帮助我在这里!我试图发现一个实验的力量,所以也做了以下内容:R电源与信号强度代码
height <- seq(0, 151)
social <- rpois(length(height), 9 + 0.2 * (height))
m2 <- glm(score ~ height, family = poisson)
summary(m2)
m3 <- update(m2, ~. - height)
anova(m2, m3, test = "Chi")
test.results <- anova(m2, m3, test = "Chi")
names(test.results)
test.results$"P(>|Chi|)"
test.results$"P(>|Chi|)"[2]
get.p.value <- function(slope) {
social <- rpois(length(height), 9 + slope * (height))
m2 <- glm(score ~ height, family = poisson)
m3 <- update(m2, ~. - r.hand)
anova(m2, m3, test = "Chi")$"P(>|Chi|)"[2]
}
p.vals <- numeric(1000)
for (i in 1000) {
p.vals[-0.5] <- get.p.value(-0.5)
}
p.vals
power.of.test <- length(p.vals[p.vals < 0.05])/length(p.vals)
power.of.test
slope.line <- seq(-0.2, -1.1, -0.1)
p.vals <- numeric(100)
power.of.test <- numeric(10)
for (j in 1:10) {
for (i in 1:100) p.vals[i] <- get.p.value(slope.line[j])
power.of.test[j] <- length(p.vals[p.vals < 0.05])/length(p.vals)
}
plot(slope.line, power.of.test)
然而,这将产生:
In rpois(length(height), 9 + slope * (height)) : NAs produced
我显然犯了愚蠢的错误的地方,并花了一整天重新输入它以确保我不会错过括号等,但一切似乎都是按顺序的。我有一种感觉,这与我从glm获得的9和斜率值有关,但这可能是错误的?提前致谢。
你愿意缩进和注释你的代码吗? – 2011-01-11 21:26:22
您的泊松率(lambda)不能小于0. – 2011-01-11 22:06:03