Package 'madr'

Title: Model Averaged Double Robust Estimation
Description: Estimates average treatment effects using model average double robust (MA-DR) estimation. The MA-DR estimator is defined as weighted average of double robust estimators, where each double robust estimator corresponds to a specific choice of the outcome model and the propensity score model. The MA-DR estimator extend the desirable double robustness property by achieving consistency under the much weaker assumption that either the true propensity score model or the true outcome model be within a specified, possibly large, class of models.
Authors: Matthew Cefalu
Maintainer: Matthew Cefalu <[email protected]>
License: GPL-3
Version: 1.0.0
Built: 2025-01-29 05:23:37 UTC
Source: https://github.com/cran/madr

Help Index


Worker function that fits propensity score models

Description

This function fits propensity score models and saves necessary information

Usage

add.to.dictionary(X, U, W, alpha)

Arguments

X

vector of the treatment (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

alpha

vector of inclusion indicators (which columns of U) to included in the propensity score model

Value

A list. The list contains the following named components:

out

a list that contains the BIC and estimated propensity scores from propensity score models


Worker function that fits outcome models

Description

This function fits outcome models and saves necessary information

Usage

add.to.dictionary.outcome(Y, X, U, W, alpha, binary = F)

Arguments

Y

vector of the outcome

X

vector of the treatment (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

alpha

vector of inclusion indicators (which columns of U) to included in the propensity score model

binary

indicates if the outcome is binary

Value

A list. The list contains the following named components:

out

a list that contains the BIC, predicted values, and estimated treatment effect from each outcome model


Convert BIC to model probabilities

Description

This function transforms BIC to model probabilities

Usage

bic.to.prob(bic)

Arguments

bic

vector of BICs

Value

A vector of model probabilities of the same dimension of bic


Expit (inverse logit) function

Description

This function transforms the input using the expit function

Usage

expit(x)

Arguments

x

vector of values to apply the expit function

Value

A vector of the same dimension of x


Calculate model averaged double robust estimate

Description

This function estimates a model averaged double robust estimate.

Usage

madr(Y, X, U, W = NULL, M = 1000, cut = 0.95, enumerate = F,
  tau = NULL, two.stage = NULL)

Arguments

Y

vector of the outcome

X

vector of the treatment (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

M

the number of MCMC iteration

cut

cumulative probability of models to be retained for improved computational efficiency (1 retains all visited models)

enumerate

indicator if all possible models should be enumerated (default: FALSE)

tau

scalar value for the prior model dependence (1 is an independent prior; defaults to 0)

two.stage

indicator if the two-stage procedure for calculating the model weights should be used (defaults to TRUE)

Value

A list. The list contains the following named components:

madr

the model averaged double robust estimate

weight.ps

a vector that contains the inclusion probability of each covariate in the propensity score model

weight.om

a vector that contains the inclusion probability of each covariate in the outcome model

Examples

set.seed(122)
## generate data
n = 100 # number of observations
k = 4   # number of covariates
U = matrix(rnorm(n*k),n,k)
colnames(U) = paste0("U",1:k)
A = rbinom(n,1,expit(-1+.5*rowSums(U)))
Y = rnorm(n,1+A+.25*rowSums(U))

## A is confounded -- true effect is 1
lm(Y~A)

## fit ma-dr -- can enumerate models if k isnt too big
res = madr(Y=Y,X=A,U=U,enumerate=TRUE,tau=1,two.stage=FALSE) # independent prior
res

res = madr(Y=Y,X=A,U=U,enumerate=TRUE,tau=0,two.stage=TRUE) # tau=0 and using two-stage weights
res

## no need to refit madr each time when enumerating -- use summarize and specify different taus
summary(res,tau=1,two.stage=FALSE) # independent prior
summary(res,tau=0,two.stage=FALSE)
summary(res,tau=0,two.stage=TRUE) # two-stage procedure for calculating weights

## use mcmc instead of enumerating (the default)
madr(Y=Y,X=A,U=U,M=1000,cut=1) #should approximate tau=0 and two.stage=TRUE

Model averaged double robust estimate with enumeration of all possible models (linear terms only)

Description

This function enumerates all possible models and estimates a model averaged double robust estimate

Usage

madr.enumerate(Y, X, U, W = NULL, tau = 1, two.stage = F)

Arguments

Y

vector of the outcome

X

vector of the treatment indicator (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

tau

scalar value for the prior model dependence (1 is an independent prior)

two.stage

indicator if the two-stage procedure for calculating the model weights should be used

Value

A object of class madr.enumerate. The object contains the following named components:

out

a matrix that contains the BIC and estimated treatment from each outcome model

ps

a matrix that contains the BIC from each propensity score model

dr

a matrix that contains the model-specific double robust estimates

U.names

the column names of U


Calculate model averaged double robust estimate using a pseudo-MC3 algorithm

Description

This function uses a pseudo-MC3 algorithm to search the model space, then estimate a model averaged double robust estimate using the two-stage procedure for estimating model weights with tau=0.

Usage

madr.mcmc(Y, X, U, W = NULL, M = 1000, cut = 0.95)

Arguments

Y

vector of the outcome

X

vector of the treatment (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

M

the number of MCMC iteration

cut

cumulative probability of models to be retained for improved computational efficiency (1 retains all visited models)

Value

A list. The list contains the following named components:

madr

the model averaged double robust estimate

weight.ps

a vector that contains the inclusion probability of each covariate in the propensity score model

weight.om

a vector that contains the inclusion probability of each covariate in the outcome model


Calculate model probabilities for the outcome models using a pseudo-MC3 algorithm

Description

This function uses a pseudo-MC3 algorithm to search the outcome model space.

Usage

OM.MA(Y, X, U, W = NULL, M = 1000, alpha = NULL, binary = F)

Arguments

Y

vector of the outcome

X

vector of the treatment (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

M

the number of MCMC iteration

alpha

vector of inclusion indicators (which columns of U) to start MCMC algorithm (optional)

binary

indicator if the outcome is binary (optional)

Value

A list. The list contains the following named components:

dict

a list that contains the BIC, predicted values, and estimated treatment effect from each outcome model

alpha

the last model visited by the algorithm

out.table

a matrix that contains the BIC and estimated treatment effect from each outcome model


Enumerates all possible outcome models (linear terms only)

Description

This function enumerates and fits all possible outcome models

Usage

OM.MA.enumerate(Y, X, U, W = NULL)

Arguments

Y

vector of the outcome

X

vector of the treatment indicator (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

Value

A list. The listcontains the following named components:

dict

a list that contains the BIC, predicted values, and estimated treatment effect from each outcome model

out.table

a matrix that contains the BIC and estimated treatment effect from each outcome model


Print function for madr.enumerate class

Description

This function prints results from madr.enumerate class

Usage

## S3 method for class 'madr.enumerate'
print(x, ...)

Arguments

x

madr.enumerate object

...

ignored


Print function for madr.mcmc class

Description

This function prints results from madr.mcmc class

Usage

## S3 method for class 'madr.mcmc'
print(x, ...)

Arguments

x

madr.mcmc object

...

ignored


Print function for summary.madr.enumerate class

Description

This function prints results from summary.madr.enumerate class

Usage

## S3 method for class 'summary.madr.enumerate'
print(x, ...)

Arguments

x

summary.madr.enumerate object

...

ignored


Calculate model probabilities for the propensity score model using a pseudo-MC3 algorithm

Description

This function uses a pseudo-MC3 algorithm to search the propensity score model space.

Usage

PS.MA(X, U, W = NULL, M = 1000, alpha = NULL, master.index = NULL,
  master.dict = list())

Arguments

X

vector of the treatment (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

M

the number of MCMC iteration

alpha

vector of inclusion indicators (which columns of U) to start MCMC algorithm (optional)

master.index

indexes which columns of U should be considered for inclusion in the propensity score model (optional)

master.dict

list containing information from previous propensity score model fits (optional)

Value

A list. The list contains the following named components:

dict

a list that contains the BIC and estimated propensity scores from propensity score models

alpha

the last model visited by the algorithm

out.table

a matrix that contains the BIC from each propensity score model


Enumerates all possible propensity score models (linear terms only)

Description

This function enumerates and fits all possible propensity score models

Usage

PS.MA.enumerate(X, U, W = NULL)

Arguments

X

vector of the treatment indicator (0/1)

U

matrix of covariates to be considered for inclusion/exclusion

W

matrix of covariates that will be included in all models (optional)

Value

A list. The list contains the following named components:

dict

a list that contains the BIC and estimated propensity scores from propensity score models

out.table

a matrix that contains the BIC from each propensity score model


Provides model averaged double robust estimate for different values of tau

Description

This function estimates model averaged double robust estimate for different values of tau using a madr.enumerate object

Usage

## S3 method for class 'madr.enumerate'
summary(object, tau = NULL, two.stage = NULL, ...)

Arguments

object

madr.enumerate object

tau

scalar value for the prior model dependence (1 is an independent prior; defaults to value used in madr.enumerate)

two.stage

indicator if the two-stage procedure for calculating the model weights should be used (defaults to value used in madr.enumerate)

...

ignored

Value

A list. The list contains the following named components:

madr

the model averaged double robust estimate

weight.ps

a vector that contains the inclusion probability of each covariate in the propensity score model

weight.om

a vector that contains the inclusion probability of each covariate in the outcome model

tau

value of tau used in estimation

two.stage

indicator if the two-stage procedure for calculating the model weights was used