阈值数据和计算比值比

时间:2011-11-29 16:12:45

标签: r

我有一个简单的人工数据生成过程:

n.site <- 150
X <- sort(runif(n = n.site, min = -1, max =1))
xb <- 0.0 + 3.0*X 
occ.prob <- 1/(1+exp(-xb))
plot(X, occ.prob,xlab="X",ylab="occ.prob")
Y <- rbinom(n = n.site, size = 1, prob = occ.prob)
plot(X, Y,xlab="X",ylab="Y")

我想将X分成间隔并计算优势比(给定Y)。我怎么能在R?中做到这一点?

1 个答案:

答案 0 :(得分:3)

要创建分档,请使用函数cut

dat <- data.frame(X, Y)
dat$bin <- cut(X, breaks=seq(-1, 1, 0.2))

然后用你最喜欢的方法进行总结。我在包ddply

中说明了plyr
library(plyr)
Z <- ddply(dat, .(bin), summarize, yy = sum(Y)/length(Y))

计算赔率:

Z$odds <- Z$yy/(1-Z$yy)

使用基本图形绘制结果...

plot(Z$bin, Z$odds)

enter image description here

...或ggplot

library(ggplot2)
ggplot(Z, aes(x=bin, y=odds)) + geom_point()

enter image description here