Learn R Programming

StratifiedSampling (version 0.4.1)

bsmatch: Statistical matching using optimal transport and balanced sampling

Description

We propose a method based on the output of the function otmatch. The method consists of choosing a unit from sample 2 to assign to a particular unit from sample 1.

Usage

bsmatch(object, Z2)

Value

A list of two objects, A data.frame that contains the matching and the normalized weights. The first two columns of the data.frame contain the unit identities of the two samples. The third column are the final weights. All remaining columns are the matching variables.

Arguments

object

A data.frame, output from the function otmatch.

Z2

A optional matrix, if we want to add some variables for the stratified balanced sampling step.

Details

All details of the method can be seen in the manuscript: Raphaël Jauslin and Yves Tillé (2021) <arXiv:2105.08379>.

See Also

otmatch, stratifiedcube

Examples

Run this code

#--- SET UP
N=1000
p=5
X=array(rnorm(N*p),c(N,p))
EPS= 1e-9

n1=100
n2=200

s1=sampling::srswor(n1,N)
s2=sampling::srswor(n2,N)


id1=(1:N)[s1==1]
id2=(1:N)[s2==1]

d1=rep(N/n1,n1)
d2=rep(N/n2,n2)

X1=X[s1==1,]
X2=X[s2==1,]

#--- HARMONIZATION

re=harmonize(X1,d1,id1,X2,d2,id2)
w1=re$w1
w2=re$w2

#--- STATISTICAL MATCHING WITH OT

object = otmatch(X1,id1,X2,id2,w1,w2)

#--- BALANCED SAMPLING

out <- bsmatch(object)


Run the code above in your browser using DataLab