我的数据框样本如下:
ent corp smb fit se.fit UL LL PredictedProb 1 0 0 -2.54 0.10 0.087 0.06 0.072 0 0 1 -3.71 0.05 0.026 0.02 0.023 0 1 0 -3.60 0.05 0.029 0.02 0.026 1 0 0 -2.54 0.10 0.087 0.060 0.072 0 0 1 -3.71 0.05 0.026 0.021 0.023
我想基于预测的概率制作3个图,每个二进制文件(sent,corp,smb)的最佳拟合线 - 如果可能的话,我还想为预测的概率添加点。到目前为止,我已经能够创建3个单独的图,但我想将所有三个图放在一个图上。以下是我到目前为止:
以下是公司情节的代码:
corp.line <- ggplot(newdata3, aes(corp,PredictedProb))
corp.line <- corp.line + stat_smooth(method = "glm")
corp.line
以下是SMB情节的代码:
smb.line <- ggplot(newdata3, aes(smb,PredictedProb))
smb.line <- smb.line + stat_smooth(method = "glm")
smb.line
以下是Ent图的代码:
ent.line <- ggplot(newdata3, aes(enterprise,PredictedProb))
ent.line <- ent.line + stat_smooth(method="glm",family= binomial(link="logit"))
ent.line
此外,在上一个图中,我无法使用stat_smooth(method =“glm”)绘制最佳拟合线周围的平滑曲线。我还必须添加family = binomial(link =“logit”)。有谁知道为什么会这样。
重申一下,我的主要问题是如何在一个地块上绘制所有这三个,而不必将它们分开。另外,我想为预测的概率添加点。
请原谅我的任何不当行为。我仍然是堆栈交换和ggplot2的新手。
答案 0 :(得分:0)
您无法使用逻辑回归绘制“S”形曲线,因为您没有连续变量来绘制。相反,您只能在预测值附近绘制预测值和CI。
在数据框中创建一个包含ent,corp和smb的列。
newdata3<-read.table("clipboard", header=T)
newdata4<-unique(newdata3)[-4,] #different lower limits for smb... removing the second smb LL
newdata4$NewVar<-rep("",length(newdata[,1]))
newdata4$NewVar[which(newdata3$ent==1)]<-"ent"
newdata4$NewVar[which(newdata3$corp==1)]<-"corp"
newdata4$NewVar[which(newdata3$smb==1)]<-"smb"
windows(5,5)
ggplot(newdata4, aes(NewVar, PredictedProb, colour=NewVar)) + geom_point() +
geom_errorbar(aes(ymin=LL, ymax=UL), width=.1, size=1)