пороговые данные и вычислить соотношение шансов - PullRequest
2 голосов
/ 29 ноября 2011

У меня есть простой процесс генерации искусственных данных:

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 Ответ

3 голосов
/ 29 ноября 2011

Для создания бункеров используйте функцию 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...