首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'predict‘函数的逆

'predict‘函数的逆
EN

Stack Overflow用户
提问于 2010-11-16 14:58:02
回答 5查看 7.1K关注 0票数 11

使用predict()可以得到因变量(y)对于给定模型的自变量(x)的某一值的预测值。有没有什么函数可以预测给定yx

例如:

代码语言:javascript
复制
kalythos <- data.frame(x = c(20,35,45,55,70), 
    n = rep(50,5), y = c(6,17,26,37,44))
kalythos$Ymat <- cbind(kalythos$y, kalythos$n - kalythos$y)
model <- glm(Ymat ~ x, family = binomial, data = kalythos)

如果我们想知道x=50模型的预测值

代码语言:javascript
复制
predict(model, data.frame(x=50), type = "response")

例如,我想知道哪个x生产y=30

EN

回答 5

Stack Overflow用户

发布于 2010-11-16 18:38:51

看到之前的答案被删除了。在您的示例中,给定n=50,并且模型为二项式,则可以使用以下命令计算给定y的x:

代码语言:javascript
复制
f <- function (y,m) {
  (logit(y/50) - coef(m)[["(Intercept)"]]) / coef(m)[["x"]]
}
> f(30,model)
[1] 48.59833

但在这样做的时候,你最好咨询统计学家,告诉你如何计算反向预测区间。请将VitoshKa的考虑因素考虑在内。

票数 9
EN

Stack Overflow用户

发布于 2017-09-26 04:49:07

偶然发现了这个老帖子,但我想我会添加一些其他信息。对于logit/probit模型,包MASS具有函数dose.p。SE是通过增量方法实现的。

代码语言:javascript
复制
> dose.p(model,p=.6)
             Dose       SE
p = 0.6: 48.59833 1.944772

拟合反模型(x~y)在这里没有意义,因为正如@VitoshKa所说,我们假设x是固定的,y( 0/1响应)是随机的。此外,如果数据没有分组,你只有两个解释变量的值:0和1。但是,即使我们假设x是固定的,计算给定p的剂量x的置信区间仍然是有意义的,这与@VitoshKa所说的相反。就像我们可以根据ED50重新参数化模型一样,我们可以对ED60或任何其他分位数执行此操作。参数是固定的,但我们仍然计算它们的CI。

票数 3
EN

Stack Overflow用户

发布于 2010-11-16 18:40:05

您只需重新排列回归方程,但正如上面的注释所述,这可能会被证明是棘手的,并且不一定会有有意义的解释。

但是,对于您展示的案例,您可以使用:

代码语言:javascript
复制
(1/coef(model)[2])*(model$family$linkfun(30/50)-coef(model)[1])

注意,我首先除以x系数,以确保名称属性是正确的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4191857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档