Learn R Programming

StratifiedSampling (version 0.2.0)

harmonize: Harmonization by calibration

Description

This function harmonize the two weight schemes such that the totals are equal.

Usage

harmonize(X1, d1, id1, X2, d2, id2, totals)

Arguments

X1

A matrix, the matching variables of sample 1.

d1

A numeric vector that contains the initial weights of the sample 1.

id1

A character or numeric vector that contains the labels of the units in sample 1.

X2

A matrix, the matching variables of sample 2.

d2

A numeric vector that contains the initial weights of the sample 1.

id2

A character or numeric vector that contains the labels of the units in sample 2.

totals

An optional numeric vector that contains the totals of the matching variables.

Value

A list of two vectors, the new weights of sample 1 (respectively new weights of sample 2).

Details

All details of the method can be seen in the manuscript: Rapha<U+00EB>l Jauslin and Yves Till<U+00E9> (2021) <arXiv:>.

Examples

Run this code
# NOT RUN {
#--- SET UP

N = 1000
p = 5
X = array(rnorm(N*p),c(N,p))

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,]

re <- harmonize(X1,d1,id1,X2,d2,id2)

colSums(re$w1*X1)
colSums(re$w2*X2)

#---  if the true totals is known

totals <- c(N,colSums(X))
re <- harmonize(X1,d1,id1,X2,d2,id2,totals)

colSums(re$w1*X1)
colSums(re$w2*X2)
colSums(X)

# }

Run the code above in your browser using DataLab