---
title: "Pooling and Selection of Linear Regression Models"
author: "Martijn W Heymans"
date: "`r Sys.Date()`"
output:
  rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Pooling and Selection of Linear Regression Models}
  %\VignetteEngine{knitr::rmarkdown}
  \usepackage[utf8]{inputenc}
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

# Introduction

With the `psfmi_lm` function you can pool Linear regression models by using  
the following pooling methods: RR (Rubin's Rules), D1, D2 and MPR 
(Median R Rule). 

You can also use forward or backward selection from
the pooled model. 

This vignette show you examples of how to apply these 
procedures.

# Examples 

* [Linear Regression]
    + [Pooling without BS and method D1] 
    + [Pooling with BS and method D1]
    + [Pooling with BS and method MPR] 
    + [Pooling with BS including interaction terms and method D2]
    + [Pooling with BS and forcing interaction terms and method D1]
    + [Pooling with BS including spline coefficient and method D1]

## Pooling without BS and method D1

```{r}

  library(psfmi)
  pool_lm <- psfmi_lm(data=lbpmilr, nimp=5, impvar="Impnr", 
                      formula = Pain ~ Gender + Smoking + 
                      Function + JobControl + JobDemands + SocialSupport, 
                      method="D1")
  
  pool_lm$RR_model
 
```

Back to [Examples]

## Pooling with BS and method D1

Pooling linear regression models over 5 imputed datasets with backward selection
using a p-value of 0.05 and as method D1 and forcing the predictor "Smoking" in the 
models during backward selection.

```{r}

  library(psfmi)
  pool_lm <- psfmi_lm(data=lbpmilr, nimp=5, impvar="Impnr", 
                      formula = Pain ~ Gender + Smoking + 
                      Function + JobControl + JobDemands + SocialSupport, 
                      keep.predictors = "Smoking", method="D1", p.crit=0.05, 
                      direction="BW")
  
  pool_lm$RR_model_final
  pool_lm$multiparm_final
  pool_lm$predictors_out
  
```

Back to [Examples]

## Pooling with BS and method MPR

Pooling linear regression models over 5 imputed datasets with backward selection
using a p-value of 0.05 and as method D1 and forcing the predictor "Smoking" in the 
models during backward selection.

```{r}

  library(psfmi)
  pool_lm <- psfmi_lm(data=lbpmilr, nimp=5, impvar="Impnr", 
                      formula = Pain ~ Gender + Smoking + 
                      Function + JobControl + JobDemands + SocialSupport, 
                      keep.predictors = "Smoking", method="MPR", p.crit=0.05, 
                      direction="BW")
  
  pool_lm$RR_model_final
  pool_lm$multiparm_final
  pool_lm$predictors_out  
```

Back to [Examples]

## Pooling with BS including interaction terms and method D2
      
Pooling linear regression models over 5 imputed datasets with BS
using a p-value of 0.05 and as method D2. Several interaction terms,
including a categorical predictor, are part of the selection procedure.

```{r}

  library(psfmi)
  pool_lm <- psfmi_lm(data=lbpmilr, nimp=5, impvar="Impnr", 
                      formula = Pain ~ Gender + Smoking + 
                        Function + JobControl + factor(Carrying) + 
                        factor(Satisfaction) +
                        factor(Carrying):Smoking + Gender:Smoking, 
                      method="D2", p.crit=0.05, 
                      direction="BW")
  
  pool_lm$RR_model_final
  pool_lm$multiparm_final
  pool_lm$predictors_out 
  
```

Back to [Examples]

## Pooling with BS and forcing interaction terms and method D1
      
Same as above but now forcing several predictors, including interaction terms,
in the model during BS.

```{r}

  library(psfmi)
  pool_lm <- psfmi_lm(data=lbpmilr, nimp=5, impvar="Impnr", 
                      formula = Pain ~ Gender + Smoking + 
                      Function + JobControl + factor(Carrying) + factor(Satisfaction) +
                        factor(Carrying):Smoking + Gender:Smoking, 
                      keep.predictors = c("Smoking*Carrying", "JobControl"), method="D1", 
                      p.crit=0.05, direction="BW")
  
  pool_lm$RR_model_final
  pool_lm$multiparm_final
  pool_lm$predictors_out 
 
```

Back to [Examples]

## Pooling with BS including spline coefficient and method D1

Pooling linear regression models over 5 imputed datasets with BS
using a p-value of 0.05 and as method D1. A spline predictor and interaction 
term are part of the selection procedure.

```{r}

  library(psfmi)
  pool_lm <- psfmi_lm(data=lbpmilr, nimp=5, impvar="Impnr", 
                      formula = Pain ~ Gender + Smoking + 
                      JobControl + factor(Carrying) + factor(Satisfaction) +
                      factor(Carrying):Smoking + rcs(Function, 3), 
                      method="D1", 
                      p.crit=0.05, direction="BW")
  
  pool_lm$RR_model_final
  pool_lm$multiparm_final
  pool_lm$predictors_out 
  
```

Back to [Examples]
