Odnosząc się do Pakietu Matching, patrzymy na przykład przy użyciu GenMatch
.Co to jest macierz wagi generowana w pakiecie dopasowywania
Czytamy, że Weight Matrix
który jest tworzony jest matryca którego przekątna proporcjonalnej do masy podanej na każdej zmiennej X
Ale nie mamy pewności, jakie wartości generowanych reprezentują - są one związane ze standardem odchylenie.
Weźmy przykład przedstawione w 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)
Następnie można wyprowadzić Weight.matrix
że będzie później wykorzystane do pary danych
genout$Weight.matrix
, a w szczególności wartości przypisanej do age
genout$Weight.matrix[1,1]
Otrzymujemy wartość ~ 205. Ale co ta waga oznacza lub reprezentuje?
Co więcej, jeśli mamy losować kolejność danych, ich wartość stale się zmienia.
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]
}
Autor artykułu sugeruje również additional information może być pomocne, ale nie wyjaśnia, jakie wartości weight matrix
reprezentować. Każdy, kto je zinterpretuje lub zrozumie, dlaczego ich wielkość zmienia się, gdy kolejność danych jest zmieniana.