Learn R Programming

miceadds (version 3.17-44)

syn.formula: Synthesizing Method for synthpop Using a Formula Interface

Description

Defines a synthesizing method for for synthpop using a formula interface.

Usage

syn.formula(y, x, xp, proper=FALSE, syn_formula, syn_fun, syn_args, ...)

Value

A vector of length k with synthetic values of y.

Arguments

y

Original data vector of length \(n\)

x

Matrix (\(n \times p\)) of original covariates

xp

Matrix (\(k \times p\)) of synthesised covariates

proper

Logical value specifying whether proper synthesis should be conducted.

syn_formula

A formula object

syn_fun

Synthesizing method in synthpop package

syn_args

Function arguments of syn_fun

...

Further arguments to be passed

Details

When using the synthesis method "mice" in synthpop::syn, the function arguments have to appear as rf.syn_formula, rf.syn_fun and rf.syn_args (convention in synthpop).

See Also

synthpop::syn

Examples

Run this code
if (FALSE) {
#############################################################################
# EXAMPLE 1: SD2011 | using a formula for defining the regression model
#############################################################################

library(synthpop)

#** selection of dataset
data(SD2011, package="synthpop")
vars <- c("sex","age","ls","smoke")
dat  <- SD2011[1:1000, vars]
dat$ls <- as.numeric(dat$ls)

#** default synthesis
imp0 <- synthpop::syn(dat)
pred <- imp0$predictor.matrix
method <- imp0$method

#** use synthesizing method 'formula'
method["ls"] <- "formula"
syn_fun <- list( ls="normrank" )
syn_args <- list( ls=list( smoothing="density" ) )
syn_formula <- list( ls=~ sex + age + I(age^2) + I(age>50) )

#* synthesize data
imp <- synthpop::syn( dat, method=method, predictor.matrix=pred, k=2000, m=1,
            rf.syn_fun=syn_fun, rf.syn_args=syn_args, rf.syn_formula=syn_formula)
summary(imp)
}

Run the code above in your browser using DataLab