将logit套袋系数汇总到模型中

时间:2019-07-16 15:24:59

标签: r

所以我正在研究逻辑回归模型,并做了一些手工装袋以确定汇总模型。

我检索了每个系数的平均值,但是现在我不知道如何将它们替换为原始的,无袋装的模型。

## Bagging

length_divisor<-4
iterations<-100

predictions<-foreach(m=1:iterations,.combine=cbind) %do% {
  training_positions <- sample(nrow(train), size=floor((nrow(train)/length_divisor)))
  train_pos<-1:nrow(train) %in% training_positions

  glm_fit <- glm(y~.,family=binomial(link='logit'),data=train[train_pos,])

  predict(glm_fit,newdata = remove_missing_levels(fit = glm_fit, test_data = subset(test,select=seq(1,16))), type="response")

  merger <- as.data.frame(glm_fit$coefficients)
  if(m == 1) { coefs <- merger } else {
    coefs <- bind_rows(coefs %>% rownames_to_column(), merger %>% rownames_to_column()) %>% group_by(rowname) %>% summarise_all(sum)
  }
}    
coefs$`glm_fit$coefficients` <- coefs$`glm_fit$coefficients` / iterations

这是套袋部分。我得到这样的东西:

 **print(coefs)**

 # A tibble: 39 x 2
                   rowname `glm_fit$coefficients`
                     <chr>                  <dbl>
  1            (Intercept)          -3.158792e+01
  2                  age_1           1.519103e-02
  3          ENCOURS_CONSO          -1.761395e-05
  4        ENCOURS_HABITAT           1.789009e-06
  5  flag_univers_detenus1           2.366870e+01
  6  flag_univers_detenus2           2.309662e+01
  7  flag_univers_detenus3           2.294252e+01
  8  flag_univers_detenus4           2.334582e+01
  9       mt_flux_cred_12M           6.602257e-06
 10 mt_op_credit_depot_12M          -2.581061e-06
 # ... with 29 more rows

我想将coefs $ glm_fit$coefficients的结果包括在以前的logit模型中,如下所示:

old_logit_model$coefficients <- coefs$`glm_fit$coefficients`

我对r中的类和语法不太熟悉,所以我不知道该怎么做。顺便说一句,我知道存在logit套袋功能,但是由于我在封闭环境中工作,所以它们不能包含在无法导入的软件包中。

0 个答案:

没有答案