我作为实施新计划的销售组织的一员工作。基本上,我们正在测试是否向潜在客户发送电子邮件使他们更有可能出现并查看我们产品的“演示”。我的数据包含约26,000个与潜在客户进行互动的观察结果,其中一些已经发送了“演示提醒”(电子邮件的用语),另一些则没有发送。每行数据还有列进一步细分数据(呼叫多久,销售人员打了多少电话,电话是否成功举行了演示等)。R:是否可以在拟合模型上绘制数据?
我使用这些数据在R中生成了一个广义线性模型,它似乎很适合。然后,使用没有发送提醒的数据,我绘制了关于他们发送了一个假想情况的预测图。
这里是我的代码如下所示:
library(car)
library(ggplot2)
#data
demo.reminder.data <- read.csv("demo mo mixed aggregate raw.csv")
#model
demo.glm.final <- glm(Demos_Held ~ Rep_Channel + Demo_sent + Contacts + Opportunities + Vertical + Total_calls_bucket + Rep_Location, data = demo.reminder.data, family = binomial(link = "logit"))
#null model and goodness of fit
demo.null <- glm(Demos_Held ~ 1, data = demo.reminder.data, family = 'binomial')
AIC(demo.null)
AIC(demo.glm.final)
#data with no demo reminders
demo.reminder.data.none.sent <- demo.reminder.data
demo.reminder.data.none.sent$Demo_sent <- "No Demo Reminder"
#data with demo reminders
demo.reminder.data.all.sent <- demo.reminder.data
demo.reminder.data.all.sent$Demo_sent <- "Demo Reminder"
#predict probability of hold with no reminder
demo.reminder.data$none.sent.pred <- predict(demo.glm.final, newdata=demo.reminder.data.none.sent, type="response")
#predict probability of hold with reminder
demo.reminder.data$all.sent.pred <- predict(demo.glm.final, newdata=demo.reminder.data.all.sent, type="response")
demo.reminder.data$abs.lift.pred <- demo.reminder.data$all.sent.pred - demo.reminder.data$none.sent.pred
#plot 1
qplot(none.sent.pred, abs.lift.pred, data=demo.reminder.data) + xlab("Probability of Hold - No Reminder") + ylab("Increase in Probability With Reminder") + ggtitle("Effect of Demo Reminders")
#plot 2
qplot(demo.reminder.data$none.sent.pred, demo.reminder.data$all.sent.pred, data = demo.reminder.data)+ xlab("Probability of Hold - No Reminder") + ylab("Increase in Probability With Reminder") + ggtitle("Effect of Demo Reminders")
问题/问题:当我绘制这个数据看起来方式太完美了。它基本上显示了一种可能性,即在初始可能性低于25%的情况下展示任何事情的可能性提高65%,而我的直觉告诉我一封电子邮件不具备这种权力。我怀疑问题是我只是在绘制拟合模型的点,这就是为什么我看到这个完美的日志曲线(将附加图片,但鉴于这是我的第一篇文章,我的声誉不够高)。我认为实际的数据会更加分散,并且曲线下方有更多的点(以及曲线上方的点)。
有没有一种方法可以让我绘制左右该模型可以显示实际的外观?
更重要的是,我想这是正确的方法吗?我相信是的,但我可能会错过一些非常明显的东西。
提前致谢!
编辑:拿到足够的积分后的情节
一个好的答案需要一段时间,但是您希望在参数和过程(采样)误差中包含不确定性。 'simulate()'方法会很方便;你可以通过使用'update(mymodel,data = transform(origdata,y = simulate(mymodel)))'然后'从这些模型中模拟()'来做参数自举。 –