kw.crf: Calculate KW-CRF pseudo-weights

View source: R/weighting_functions.R

kw.crfR Documentation

Calculate KW-CRF pseudo-weights

Description

This function computes KW pseudo-weights using conditional random forests (cforest() in partykit package) to predict propensity scores.

Usage

kw.crf(
  psa_dat,
  wt,
  rsp_name,
  formula,
  tune_mincriterion,
  covars,
  h = NULL,
  krn = "triang",
  large = F,
  rm.s = F
)

Arguments

psa_dat

Dataframe of the combined non-probability and probability sample

wt

Name of the weight variable in psa_dat (common weights of 1 for non-probability sample, and survey weights for probability sample)

rsp_name

Name of the non-probability sample membership indicator in psa_dat (1 for non-probability sample units, and 0 for probability sample units)

formula

Formula of the propensity model (see cforest() in partykit package)

tune_mincriterion

A vector of values for the tuning parameter mincriterion (see cforest() in partykit package)

covars

A vector of covariate names for standardized mean differences (SMD; covariate balance) calculation

h

Bandwidth parameter (will be calculated corresponding to kernel function if not specified)

krn

Kernel function. "triang": triangular density on (-3, 3), "dnorm": standard normal density, "dnorm_t": truncated standard normal density on (-3, 3).

large

The cohort size is so large that it has to be divided into pieces. Default is FALSE.

rm.s

Remove unmatched survey units or not. Default is FALSE.

Value

A list
pswt: A dataframe including KW pseudo-weights for each tuning parameter setting
smds: A vector of SMD for each set of KW pseudo-weights
best: Identifier for the KW pseudo-weights in pswt with the smallest SMD
p_score_c: A dataframe including propensity scores for non-probability sample units for each tuning parameter setting
p_score_s: A dataframe including propensity scores for probability sample units for each tuning parameter setting

Examples

# KW-CRF with example data
kwcrf <- kw.crf(simu_dat, "wt", "trt",
                "trt_f ~ x1+x2+x3+x4+x5+x6+x7",
                tune_mincriterion = c(0.95, 0.9),
                covars = c("x1","x2","x3","x4","x5","x6","x7"))
# Select KW-CRF pseudo-weights with best covariate balance
kwcrf_w <- kwcrf$pswt[, kwcrf$best]
# Compute weighted mean of y in non-prob data
sum((simu_dat$y[simu_dat$trt == 1]*kwcrf_w)/sum(kwcrf_w))

chkern/KWML documentation built on Sept. 10, 2022, 9:49 p.m.