Author: Martijn W Heymans
Date: 2022-10-02

# Pooling C-index of Logistic and Cox Regression Models

#### Martijn W Heymans

#### 2022-10-02

## Introduction

The `miceafter` package includes the function `pool_cindex`, to pool c-index values from logistic and Cox regression models. This vignette shows you how to use this function.

## Examples

## Pooling the C-index After the `mice` function and Logistic Regression

The lbp_orig is a dataset as part of the miceafter package with missing values. So we first impute them with the `mice` function. Than we use the `mids2milist` function to turn the `mids` object with multiply imputed datasets, as a result of using `mice`, into a `milist` object. Than we use the `with` function to apply repeated analyses with the `cindex` function across the multiply imputed datasets. Finally, we pool the results by using the `pool_cindex` function. We do that in one pipe.

      lbp_orig %>%
          mice(m=5, seed=3025, printFlag = FALSE) %>%
            mids2milist() %>%
              with(expr = cindex(glm(Chronic ~ Gender + Radiation, family=binomial))) %>%
                pool_cindex()
    #>        C-index Critical value 95 CI low 95 CI high
    #> [1,] 0.6553774        1.97818  0.567203   0.734012
    #> attr(,"class")
    #> [1] "mipool"

## Pooling the C-index after Multiply Imputed datasets are stored in a dataframe and with Logistic Regression

The dataset `lbpmilr` as part of the miceafter package is a long dataset that contains 10 multiply imputed datasets. The datasets are distinguished by the `Impnr` variable. First we convert the dataset into a `milist` object by using the `df2milist` function. Than we use the `with` function to apply repeated analyses with the `cindex` function across the multiply imputed datasets. Finally, we pool the results by using the `pool_cindex` function.

      imp_data <- df2milist(lbpmilr, impvar = "Impnr")

      ra <- with(data=imp_data,
       expr = cindex(glm(Chronic ~ Gender + Radiation, family=binomial)))

      res <- pool_cindex(ra)
      res
    #>        C-index Critical value 95 CI low 95 CI high
    #> [1,] 0.6638267       1.976656 0.5764274  0.7412861
    #> attr(,"class")
    #> [1] "mipool"

## Pooling the C-index after Multiply Imputed datasets are stored in a dataframe and with Cox Regression

The dataset `lbpmicox` as part of the miceafter package is a long dataset that contains 10 multiply imputed datasets. The datasets are distinguished by the `Impnr` variable. First we convert the dataset into a `milist` object by using the `df2milist` function. Than we use the `with` function to apply repeated analyses with the `cindex` function across the list of multiply imputed datasets. Finally, we pool the results by using the `pool_cindex` function.

      library(survival)
      lbpmicox %>%
        df2milist(impvar = "Impnr") %>%
          with(expr = cindex(coxph(Surv(Time, Status) ~ Radiation + Age))) %>%
            pool_cindex()
    #>        C-index Critical value 95 CI low 95 CI high
    #> [1,] 0.5413464       1.959964 0.4952103  0.5867842
    #> attr(,"class")
    #> [1] "mipool"