R 二项GLM中的新数据预测

R 二项GLM中的新数据预测,r,statistics,regression,glm,R,Statistics,Regression,Glm,我第一次问的问题是要符合GLM,我做到了,没有任何问题。我得到了这个方程式,我确信它是正确的 洛吉特(损害)=5.08498-0.11560(临时性) 然后,有人问我: 构建第二个绘图,将温度数据的范围扩展到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=spa

我第一次问的问题是要符合GLM,我做到了,没有任何问题。我得到了这个方程式,我确信它是正确的

洛吉特(损害)=5.08498-0.11560(临时性)

然后,有人问我:

构建第二个绘图,将温度数据的范围扩展到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之间的值,并且根据数据销毁的大多数航天飞机都有高(er)pi值

现在问题来了。当我初始化我的新数据时,我该怎么做呢?初始化TempF很容易,但是我该如何处理损坏呢?我之前执行的predict命令没有给我0或1,而是一组介于0和1之间的概率值。我究竟该如何初始化一个30到85度的新数据帧

编辑:谢谢大家。这很有帮助,我可以做出预测。然而,我认为我的编码有点不对劲。我也在试着做一条合适的线,但我不确定如何改变我预测的元素数量。这主要是由于数据中存在大量重复。所以当我这么做的时候

newdata = data.frame(TempF=seq(30,85))
spacshu.predict = predict(spacshub.glm, newdata, type="response", se.fit=T)

与数据集中的138个元素相反,只有56个元素。除非它们相等,否则我无法绘制拟合图。关于我的预测值,我该怎么办?

首先回到基础,您正在研究一个具有二项式因变量(损害)的逻辑回归模型。 您描述的logit函数:

   logit(Damage)= 5.08498-0.11560(TempF)
可以估计你想要的范围(30到85华氏度)的logit(伤害)

这将导致您的logit在该范围内的所有不同数字,请查看此logit值的真正含义

你从方程中得到的值可以用你已经描述过的方程转换成概率,它会给你一个介于0和1之间的值。这是在特定温度下,有(1)或不会(0)损坏的概率

GLM只是一种预测与连续变量相关的二项变量发生概率的方法


希望这足以让您开始绘制图。

如果您理解您的问题,您实际上不需要在新数据中初始化
损坏,因为这就是您所预测的。
predict
函数只需要预测器变量(
TempF
)。阅读帮助页面。谢谢,我可以使用该命令进行预测,但是我遇到了一些进一步的麻烦。我编辑我的文章就是为了反映这种情况。如果你想在每个原始点进行估算,那么就省去newdata参数。或者用
绘制一个,用
线
绘制另一个。这个问题要求我将温度范围扩大到30度,这与原始数据不同,因为原始数据的范围在50到85度之间。我想问题是要我做一个预测,包括30到85的数值。