Ссылаясь на пакет Matching, мы рассмотрим пример, используя GenMatch
.Какова весовая матрица, сгенерированная в пакете соответствия
Мы читаем, что Weight Matrix
, который создается является матрицей, диагональ соответствует весу данного каждому переменному в X
Но мы не уверены, что значения, полученные представления - они связаны со стандартом отклонение.
Позволяет взять пример, приведенный в GenMatch
library(Matching)
data(lalonde)
attach(lalonde)
#The covariates we want to match on
X = cbind(age, educ, black, hisp, married, nodegr, u74, u75, re75, re74)
#The covariates we want to obtain balance on
BalanceMat <- cbind(age, educ, black, hisp, married, nodegr, u74, u75, re75, re74,
I(re74*re75))
#Let's call GenMatch() to find the optimal weight to give each
#covariate in 'X' so as we have achieved balance on the covariates in
#'BalanceMat'. This is only an example so we want GenMatch to be quick
#so the population size has been set to be only 16 via the 'pop.size'
#option. This is *WAY* too small for actual problems.
#For details see http://sekhon.berkeley.edu/papers/MatchingJSS.pdf.
#
genout <- GenMatch(Tr=treat, X=X, BalanceMatrix=BalanceMat, estimand="ATE", M=1,
pop.size=16, max.generations=10, wait.generations=1)
Тогда мы можем вывести Weight.matrix
, который будет использоваться в дальнейшем для сопряжения данных
genout$Weight.matrix
и в частности значения, присвоенного age
genout$Weight.matrix[1,1]
Мы получаем значение ~ 205. Но что означает этот вес или представляет его?
Кроме того, если мы хотим рандомизировать порядок данных, значение постоянно меняется.
n <- 100
P1 <- rep(NA, n)
for (i in 1:n) {
lalonde <- lalonde[sample(1:nrow(lalonde)), ] # randomise order
X = cbind(lalonde$age, lalonde$educ, lalonde$black, lalonde$hisp,
lalonde$married, lalonde$nodegr, lalonde$u74, lalonde$u75,
lalonde$re75, lalonde$re74)
BalanceMat <- cbind(lalonde$age, lalonde$educ, lalonde$black,
lalonde$hisp, lalonde$married, lalonde$nodegr,
lalonde$u74, lalonde$u75, lalonde$re75, lalonde$re74,
I(lalonde$re74*lalonde$re75))
genout <- GenMatch(Tr=lalonde$treat, X=X, BalanceMatrix=BalanceMat, estimand="ATE", M=1,
pop.size=16, max.generations=10, wait.generations=1)
P1[i] <- genout$Weight.matrix[1,1]
}
Автор статьи также предлагает additional information может помочь, но это не объясняет, что представляет weight matrix
значения. КАК кто-либо их интерпретирует или понимает, почему изменяется их величина при изменении порядка данных.