我首先要求我适应GLM的问题,我没有遇到任何问题。我得到了这个方程式,我非常肯定是正确的。
logit(Damage)= 5.08498-0.11560(TempF)
然后,我被问到这个问题:
构建第二个图表,将温度数据的范围扩展到30华氏度。使用以下脚本执行此操作以开始使用:
plot(c(30,85), c(0,1), type='n',xlab="Temperature (F)", ylab="Damage") rug(x=spacshu$TempF[spacshu$Damage==0],side=1) rug(x=spacshu$TempF[spacshu$Damage==1],side=3)
然后使用您在上面创建的模型估算出的温度范围为30到85华氏度的预测响应。
通过“上面”,它很可能是指我做这部分的部分,涉及反向变换。
spacshub.pred = exp(predict(spacshub.glm))/(1+exp(predict(spacshub.glm)))
我的困惑从这里开始。数据(上图,.txt文件中的超链接)显示基于温度和损坏的观察结果,损坏是二项式变量,仅为0(未销毁)和1(销毁)。从我读到的二项式glms,
将Yi视为伯努利随机变量,我们可以按如下方式说明概率分布:
{P(Yi = 1)= pi,P(Yi = 0)= 1-pi}
当我在R中插入一个值时,它给出了一个介于0和1之间的值,并且根据数据销毁的大多数航天飞机都有高(呃)pi值。
现在问题就在于此。当我初始化我的新数据时,我该如何去做呢?初始化TempF的东西很容易,但我该如何处理损坏呢?我之前执行的预测命令没有给出0或1,而是一组介于0和1之间的概率值。我究竟如何初始化30到85度的新数据框?
编辑:谢谢大家。这有帮助,我可以做出预测。但是,我认为我的编码有点不对劲。我也试图制作一条拟合线,但我不确定如何改变我预测的元素数量。这主要是因为数据中存在大量重复。所以当我这样做时newdata = data.frame(TempF=seq(30,85))
spacshu.predict = predict(spacshub.glm, newdata, type="response", se.fit=T)
只有56个元素,而不是数据集中的138个元素。除非它们相等,否则我无法绘制拟合图。我该如何处理预测器?
答案 0 :(得分:0)
首先回到基础,你正在研究一个具有二项式因变量(损伤)的逻辑回归模型。 您描述的logit函数:
logit(Damage)= 5.08498-0.11560(TempF)
可以估算所需范围的 logit (伤害)(30到85华氏度)。
这将导致您在该范围内的logit的所有不同数字,看看here以查看此logit值的真正含义。
你从你的方程中得到的值可以用你已经描述过的方程转换成概率,它会给你一个介于0和1之间的值。这就是在某个温度下会有(1)或意志的概率不是(0)是伤害。
GLM只是一种预测二项式变量与连续变量相关的概率的方法。
希望这足以让你的情节得以实现。