我用2种方式制作了带有logit链接的GLM模型。我想知道根据这些值获胜的机会,例如,对于这些数据的所有组合。如果我使用expand.grid
,则win=1
,win=0
和height
的同一组合我有weight
或age
的机会。但如果我使用seq
,我就不会拥有所有组合。
我还希望能够使用以下示例数据预测获胜的可能性:height=1.89
,weight=90
,age=18
。我该怎么办?
set.seed(1)
mydat <- data.frame(
win = as.factor(sample(c(0, 1), 50, replace=TRUE)),
weight = runif(50, min=80, max=100),
height = runif(50, min=1.75, max=1.9),
age = runif(50, min=18, max=30)
)
mod1 <- glm(win ~ weight + height + age, data=mydat,
family=binomial(link="logit"))
all.x <- expand.grid(height=unique(mydat$height), weight=unique(mydat$weight),
age=unique(mydat$age),win=unique(mydat$win))
plotdat <- data.frame(weight=seq(from=80, to=100, length.out=200),
height=seq(from=1.75, to=1.9, length.out=200),
age=seq(from=18, to=30, length.out=200))
preddat1 <- predict(mod1, newdata=plotdat, se.fit=TRUE)
preddat2 <- predict(mod1, newdata=all.x, type="response")
dat1 <- data.frame(fit=preddat1$fit,prob=exp(preddat1$fit)/(1+exp(preddat1$fit)),
weight=plotdat$weight, height=plotdat$height,
age=plotdat$age)
dat1 <- dat1[order(dat1[,2]),]
dat2 <- cbind(all.x,preddat2)
dat2 <- dat2[order(dat2[,5]),]