【问题标题】:Predict mean response for a logistic regression model in R预测 R 中逻辑回归模型的平均响应
【发布时间】:2022-01-25 05:36:49
【问题描述】:

我使用 glm 函数在 R 中训练了一个逻辑回归模型

model<-glm(df1$deny~df1$dir+df1$hir+df1$lvr+df1$ccs+df1$mcs+df1$pbcr+df1$dmi+df1$self+df1$single+df1$uria+df1$condominium+df1$black,data=df1,family='binomial')

现在我想得到一个数据点的平均响应

test<-c(0.59,0.24,0.941177,3,2,0,1,0,0,10.6,1,1)

测试数据点是模型中的相应预测变量。即 dir = 0.59, hir = 0.24...

在这种情况下如何获得平均响应?

【问题讨论】:

    标签: r logistic-regression predict


    【解决方案1】:
    model <- glm(deny~dir+hir+lvr+ccs+mcs+pbcr+dmi+
                    self+single+uria+condominium+black,
                  data=df1,family='binomial')
    test <- c(0.59,0.24,0.941177,3,2,0,1,0,0,10.6,1,1)
    

    您可以使用模型定义:

    X <- matrix(c(1, test), nrow = 1)
    beta <- coef(model)
    drop(plogis(X %*% beta))
    

    dftest <- as.data.frame(X)
    names(dftest) <- c("dir", "hir", "lvr", "ccs", ...)
    

    (名字列表需要自己填写,我比较懒)

    或者可能

    names(dftest) <- setdiff(names(df1), "deny")
    

    如果模型变量与数据框的顺序等匹配

    然后:

    predict(model, newdata = dftest, type = "response")
    

    【讨论】:

      【解决方案2】:

      已排序。我做了

      df.test<- df1[0,-13]
      head(df.test)
      test<- c(0.59,0.24,0.941177,3,2,0,1,0,0,10.6,1,1)
      df.test[nrow(df.test)+1,]=test
      pred<- model.1 %>% predict(df.test,type='response')
      pred
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-28
        • 1970-01-01
        • 2014-07-29
        • 1970-01-01
        • 2018-01-26
        • 2016-12-11
        • 2020-08-19
        相关资源
        最近更新 更多