Exakte Übereinstimmung und GenMatch in R

8

Beachten Sie also das Beispiel aus dem Matching-Paket und insbesondere das GenMatch-Beispiel Link zu PDF hier

Folgen Sie dem Beispiel hier

%Vor%

Wir sehen, dass alle Behandlungsfälle mit Kontrollfällen übereinstimmen. Nehmen wir an, wir wollen eine genaue Übereinstimmung im Ehestand (oder jede andere Variable). Aber wir wollen immer noch die zuvor erstellte GenMatch-Matrix verwenden.

Mit Bezug auf den Link

Exakt = ..... Wenn ein logischer Vektor bereitgestellt wird, sollte für jede Kovariate in X ein logischer Wert angegeben werden. Durch Verwendung eines logischen Vektors kann der Benutzer eine exakte Übereinstimmung für einige, aber nicht für andere Variablen angeben. Wenn keine genauen Übereinstimmungen gefunden werden, werden Beobachtungen gelöscht.

Deshalb ist folgendes richtig ??

%Vor%

Ich würde sagen, dass das nicht korrekt war, als ob Sie

vergleichen würden %Vor%

Sie erhalten die gleichen Werte

    
lukeg 01.05.2015, 10:13
quelle

1 Antwort

5

Ich sollte damit beginnen, dass ich diese Pakete und Funktionen noch nie zuvor benutzt habe, meine Antwort basiert ausschließlich auf dem Spielen mit Ihrem Code und der Dokumentation der Funktionen.

Es scheint eine schlecht dokumentierte, unwarnte Präzedenz von Weight.matrix über exact in der Funktion Match() gegeben zu haben. Es gibt einen Hinweis auf seiner Hilfeseite ( ?Match ):

  

Gewicht.matrix: ...

     

Dieser Code ändert die Gewichtungen, die durch die Umkehrung von   die Varianzen durch Multiplikation der ersten Variablen mit einer 1000, so dass es   ist stark gewichtet. Um eine genaue Übereinstimmung zu erzwingen, sehen Sie sich die genaue an   und Messschieberoptionen .

Wenn Sie angeben, dass Sie exact verwenden sollten, um eine genaue Übereinstimmung zu erzwingen (im Gegensatz zu den manuell berechneten Gewichten oder von GenMatch() ), scheint es mir, dass Sie sagen, dass Sie das eine oder das andere verwenden sollten. Das Verhalten ist jedoch, dass exact ignoriert wird, wenn Sie ein Argument für Weight.matrix angeben. Entfernen Sie dies aus der Funktion und Sie erhalten unterschiedliche Ergebnisse:

%Vor%

Ich kann nicht ins Detail gehen, was die Implikationen dieser Veränderungen sind, nur weil ich nicht mit der Theorie dahinter vertraut bin.

Ich habe die Quelle von Match() überprüft, aber es gibt dort nichts nützliches außer dass es eine Funktion namens RmatchLoop() aufruft, die ich nirgends finden konnte (ich vermute es ist Paket intern und ein anderer Voodoo ist es) notwendig, um es zu sehen).

Darauf basierend denke ich, dass Ihr Urteilsvermögen Wetter sein sollte oder nicht, es macht Sinn, beide Argumente zu verwenden, und von dem, was ich lese, tut es das nicht. Es gibt keinen Grund, jeder Kovariate unterschiedliche Gewichte zuzuweisen, wenn Sie nur mit einem von ihnen übereinstimmen möchten.

Übrigens könnte Ihr Code einige Verbesserungen verwenden, wie zum Beispiel:

  1. Vermeiden Sie die Verwendung von attach . Es ist gefährlich, wenn Sie sich dafür entscheiden, Variablen mit denselben Namen wie Ihre Datenspalten zu verwenden.
  2. Anstelle von cbind fast alle Spalten eines Datenframes werden nur diejenigen ausgelassen, die Sie nicht wollen:

Code:

%Vor%

Das Gleiche kann für BalanceMat getan werden. Und ein weiterer Vorteil ist, dass Sie die Daten als Datenrahmen behalten.

  1. Auch für das Argument exact wäre ein sauberer Weg:

Code:

%Vor%

Auf diese Weise sind Sie weniger anfällig für Änderungen in den Spaltenbestellungen usw.

    
Molx 05.05.2015, 02:04
quelle

Tags und Links