---
title: "mice and miceafter for Regression modelling"
author: "Martijn W Heymans"
date: "`r Sys.Date()`"
output:
  rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{mice and miceafter for Regression modelling}
  %\VignetteEngine{knitr::rmarkdown}
  \usepackage[utf8]{inputenc}
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(miceafter)
library(mice)
library(magrittr)
library(dplyr)
```

# Installing the miceafter and mice packages

You can install the development version from [GitHub](https://github.com/) with:

``` r
# install.packages("devtools")
devtools::install_github("mwheymans/miceafter")
```
You can install mice with:

``` r
install.packages("mice")

``` 
# Examples 

+ [mice and miceafter for pooling logistic regression models]
+ [mice and miceafter for pooling linear regression models]
+ [mice and miceafter for selecting logistic regression models]
+ [mice and miceafter for selecting linear regression models]

## mice and miceafter for pooling logistic regression models

lbp_orig is a dataset that is 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 a `mids` object, as a result of using `mice`, into a `milist` object with multiply imputed datasets. Than we use the `with` function to apply repeated logistic regression analyses. With the `pool_glm` function we obtain the results for the pooled model.

```{r}

  library(mice)
  library(miceafter)
  
  imp <- mice(lbp_orig, m=5, maxit=5, printFlag = FALSE) 
 
  dat_imp <- mids2milist(imp)
  
  ra <- with(dat_imp, expr = glm(Chronic ~ factor(Carrying) + Gender + Smoking + 
                      Function + JobControl + JobDemands + SocialSupport, 
                      family = binomial))
  
  poolm <- pool_glm(ra, method="D1")
  poolm$pmodel
  poolm$pmultiparm
 
```

Back to [Examples]

## mice and miceafter for pooling linear regression models

The lbp_orig is a dataset that is 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 a `mids` object, as a result of using `mice`, into a `milist` object with multiply imputed datasets. Than we use the `with` function to apply repeated linear regression analyses. With the `pool_glm` function we obtain the results for the pooled model.

```{r}

  library(mice)
  library(miceafter)
  
  imp <- mice(lbp_orig, m=5, maxit=5, printFlag = FALSE) 
 
  dat_imp <- mids2milist(imp)
  
  ra <- with(dat_imp, expr = glm(Pain ~ factor(Carrying) + Gender + Smoking + 
                      Function + JobControl + JobDemands + SocialSupport))
  
  poolm <- pool_glm(ra, method="D1")
  poolm$pmodel
  poolm$pmultiparm
 
```

Back to [Examples]

## mice and miceafter for selecting logistic regression models

We follow the same procedure as the first example but also apply model selection here.

```{r}

  library(mice)
  library(miceafter)
  
  imp <- mice(lbp_orig, m=5, maxit=5, printFlag = FALSE) 
 
  dat_imp <- mids2milist(imp)
  
  ra <- with(dat_imp, expr = glm(Chronic ~ factor(Carrying) + Gender + Smoking + 
                      Function + JobControl + JobDemands + SocialSupport, 
                      family = binomial))
  
  poolm <- pool_glm(ra, method="D1", p.crit = 0.15, direction = "BW")
  poolm$pmodel
  poolm$pmultiparm
 
```

Back to [Examples]

## mice and miceafter for selecting linear regression models

We follow the same procedure as the second example but also apply model selection here.

```{r}

  library(mice)
  library(miceafter)
  
  imp <- mice(lbp_orig, m=5, maxit=5, printFlag = FALSE) 
 
  dat_imp <- mids2milist(imp)
  
  ra <- with(dat_imp, expr = glm(Pain ~ factor(Carrying) + Gender + Smoking + 
                      Function + JobControl + JobDemands + SocialSupport))
  
  poolm <- pool_glm(ra, method="D1", p.crit = 0.15, direction = "BW")
  poolm$pmodel
  poolm$pmultiparm
  
```

Back to [Examples]
