Quantcast
Channel: Statalist
Viewing all articles
Browse latest Browse all 72862

creating a variable that identifies all observations used in a matching process

$
0
0
Dear all,
I have exhausted most propensity score matching resources, I have finally found a course which was recommended in one of David Radwin post, luckily to be held April 20.

However, I came up with a solution to one of my problems, but need help with code.

After performing psmatch2, using 1:3 matching. The psmatch2 generates
_id - Eevery observation gets a unique id
_n1 _n2 _n3 - This is the Id with which the treated is matched with a control therefore having _nn = 3

I would like to create a new variable which will have the triplet controls under each other for each treatment.

So in my example (print screen)
For treated ID 11 = beside it has _n1 _n2 _n3 corresponding ID numbers

I would like
ID 11 observation first followed by its triplets matches underneath which would be those in green triangles

Array

Dataset:

Code:
* Example generated by -dataex-. For more info, type help dataex
clear
input float(gender smoking infection socialdeprivation ethnicity) double _pscore byte(_treated _support) double(_weight _infection) byte(_id _n1 _n2 _n3) float _nn double _pdif float match byte dup2 float(pair paircount)
1 0 0 7 4 .14629124373657137 0 1  .3333333333333333                 .  1 .  . . 0                    .  1 0  1 1
1 1 1 5 1 .17480944488523578 1 1                  1                 0 11 2  1 3 3  .008726538480995832  2 1  2 2
0 0 0 7 1 .18353598336623161 0 1  .3333333333333333                 .  2 .  . . 0                    .  2 1  2 2
1 0 0 6 4 .23642515629258887 0 1  .6666666666666666                 .  3 .  . . 0                    .  3 0  3 1
1 0 1 4 1 .27681680297995453 0 1  .3333333333333333                 .  4 .  . . 0                    .  4 0  4 1
1 1 1 5 3  .2881297448796828 1 1                  1 .3333333333333333 12 5  4 3 3 .0007233261974433081  5 1  5 2
0 0 0 6 1  .2888530710771261 0 1  .3333333333333333                 .  5 .  . . 0                    .  5 1  5 2
0 0 0 6 2  .3595669083790513 0 1  .3333333333333333                 .  6 .  . . 0                    .  6 0  6 1
1 0 0 3 1  .4088562831270797 0 1  .6666666666666666                 .  7 .  . . 0                    .  7 0  7 1
1 1 1 2 1  .5554993045631528 1 1                  1 .3333333333333333 14 8  9 7 3                    0  8 2  8 3
0 1 1 5 2  .5035916419173779 1 1                  1                 0 13 8  7 6 3  .051907662645774844  8 2  8 3
1 0 0 2 1  .5554993045631528 0 1 1.6666666666666665                 .  8 .  . . 0                    .  8 2  8 3
1 1 0 2 2  .6333538983172218 1 1                  1 .3333333333333333 15 9 10 8 3   .05971942761857574  9 3  9 4
1 1 1 1 1  .6930733259357975 1 1                  1 .3333333333333333 17 9 10 8 3                    0  9 3  9 4
1 0 1 1 1  .6930733259357975 0 1 1.3333333333333333                 .  9 .  . . 0                    .  9 3  9 4
1 1 0 2 2  .6333538983172218 1 1                  1 .3333333333333333 16 9 10 8 3   .05971942761857574  9 3  9 4
1 0 0 2 3  .7048182691423677 0 1                  1                 . 10 .  . . 0                    . 10 0 10 1
0 1 1 1 3  .9372933094185172 1 0                  .                 . 20 .  . . .                    . 20 0  . 0
0 1 1 1 4  .9538339376992043 1 0                  .                 . 21 .  . . .                    . 21 0  . 0
0 1 1 1 1  .8866625742391517 1 0                  .                 . 18 .  . . .                    . 18 0  . 0
0 1 1 1 1  .8866625742391517 1 0                  .                 . 19 .  . . .                    . 19 0  . 0
0 1 0 . 4                  . . .                  .                 . 22 .  . . .                    . 22 0  . 0
end
label values gender Gender
label def Gender 0 "Female", modify
label def Gender 1 "Male", modify
label values smoking Smoking
label def Smoking 0 "Nonsmoker", modify
label def Smoking 1 "Smoker", modify
label values socialdeprivation social
label def social 1 "Most deprived", modify
label def social 7 "Least deprived", modify
label values ethnicity Ethnicity
label def Ethnicity 1 "White", modify
label def Ethnicity 2 "Asian", modify
label def Ethnicity 3 "Black African", modify
label def Ethnicity 4 "Mixed", modify
label values _treated _treated
label def _treated 0 "Untreated", modify
label def _treated 1 "Treated", modify
label values _support _support
label def _support 0 "Off support", modify
label def _support 1 "On support", modify

This follows the same concept but with 1:1, where there is only one _n1. In my case as I have _n1 _n2 _n3 it's more challenging

generate pair = _id if _treated == 0
replace pair = _n1 if _treated==1

bysort pair: egen paircount = count(pair)
drop if paircount !=2

Viewing all articles
Browse latest Browse all 72862

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>