外推曲线R二项式模型



这是我使用的代码:

data<-read.table("YB.txt",header=T)
attach(data)
fit2<-glm(cbind(success,fail)~time*col,data=data,family=binomial)
summary(fit2)
predict.data<-as.data.frame(predict(fit2,newdata=temp.data,type="link",se=TRUE))
new.data<-cbind(temp.data,predict.data)
std<-qnorm(0.95/2+0.5)
new.data$ymin<-fit2$family$linkinv(new.data$fit-std*new.data$se)
new.data$ymax<-fit2$family$linkinv(new.data$fit+std*new.data$se)
new.data$fit<-fit2$family$linkinv(new.data$fit)
op<-cbind(success/(Neggs))
p<-ggplot(data,aes(x=time,y=op,fill=col,color=col))+geom_point()
p+geom_ribbon(data=new.data,aes(y=fit,ymin=ymin,ymax=ymax),alpha=0.1,linetype="dashed")+geom_line(data=new.data,aes(y=fit),linetype="solid")+labs(x="patatou",y="patata",title="patati")+theme_calc()+scale_color_manual(values=c("#CC6666", "#9999CC"))+labs(colour="Eggs color",linetype="Eggs color",shapes="Eggs color")

=>我得到了两条漂亮的预测曲线。然而,我收集的数据从5天开始,到13天结束。我想要0-5天和13天后(即20天(的曲线。为了预测我应该得到什么。所以我尝试了这个:

NewData<-as.matrix(cbind(time,col))
colnames<-(NewData)
colnames(NewData)<-c("time","col")
predict(fit2,NewData,se.fit=TRUE,scale=NULL,df=Inf,interval=c("none","confidence","prediction"),level=0.95)

没用。。。有人有办法解决这个问题吗?

predict()使用拟合模型为您提供与newdata参数中x变量值相对应的y变量值。因此,如果你只提供范围从5到13的x变量值,你只会得到相应的预测y变量值。为了"扩展"预测线,您需要在要绘制的整个范围内提供x变量值,例如0到20。你会想要这样的东西:

x_coords <- seq(from=0, to=20, by=0.1)
y_coords <- predict(fitted_model, newdata=data.frame(x=x_coords))
plot(x, y, xlim=c(0,20))
points(x=x_coords, y=y_coords, type="l")

我在这里的回答(链接(提供了一个使用ISLR包中的Auto数据集的工作示例。

相关内容

  • 没有找到相关文章