Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • exact mach on more than one variable using psmatch2

    I am able to perform psmatch2 with an exact match on one variable. I learned to do this by searching older posts on this forum.

    For example, I could do an exact match on AGE (numerical variable).

    Code:
    probit GROUP1 AGE RSXM RRCC DECEASED_TY DIABETES_FINAL THYMO_IND_FINAL CAMPATH_IND_FINAL SIMULECT_IND_FINAL
    
    
    predict double pscore if e(sample)
    
    egen GROUP_AGE = group(AGE)      
    
    
    generate double pscore2 = GROUP_AGE*10+pscore
    
    
    rsort
    
    psmatch2 GROUP1, outcome(PTLD) neighbor(1) noreplacement caliper(0.01) pscore(pscore2)
    But what if I want to perform exact matches on DECEASED_TY (categorical: 1=deceased donor kidney transplant, 0=living donor kidney transplant) and RRCC (categorical: 1=White race, 2=Black race, 3=Hispanic, 4=others) in addition to the exact match on AGE. How do I do that? And if I cannot do exact matches with psmatch2, which command should I use?
    Last edited by Napat Lee; 14 Feb 2024, 21:19.

  • #2
    The little trick you used for a single covariate plus propensity score is clever, but it does not readily generalize to more than one variable.

    Take a look at https://www.statalist.org/forums/for...opensity-score, where a very similar question is posed, and fairly general code to solve the problem is offered at #4. (But read #1-3 to get an understanding of what is going on first.)

    Comment


    • #3
      Thank you again, Clyde Schechter. I am struggling with the rename command. It came up with syntax error.

      Code:
      //    VERIFY ID IS AN IDENTIFIER
      isid TRR_ID_CODE
      
      //    CALCULATE PROPENSITY SCORE
      assert inlist(RECIPIENT_EBV_NEG, 0, 1)
      
      logistic RECIPIENT_EBV_NEG RSXM  DIABETES_FINAL THYMO_IND_FINAL CAMPATH_IND_FINAL SIMULECT_IND_FINAL CMV_LOW_RISK CMV_INT_RISK CMV_HIGH_RISK
      
      predict pscore
      
      //    MATCHING
      local match_vars AGE RRCC DECEASED_TY
      ds RECIPIENT_EBV_NEG `match_vars', not
      
      PT_CODE       ETHCAT        L_FIN_RESI~X  DON_TY        AGE           HBV_SUR_AN~N  RECOV_OUT_US  RBMI
      TRR_ID_CODE   INIT_BMI_C~C  R_FIN_RESI~X  GENDER_DON    DISTANCE      HCV_SEROST~S  RECOV_COUN~Y  RSXM
      WL_ORG        END_BMI_CALC  PRE_TX_TXFUS  HOME_STATE~N  RESUM_MAIN~L  HIV_SEROST~S  PROTEIN_UR~E  PPRA
      COD_WL        DAYSWAIT_A~C  FIN_RESIST~X  HCV_RIBA_DON  DIAL_TRR      CMV_STATUS    LIPASE        PRAC
      NUM_PREV_TX   COMPOSITE_~E  TXHRT         HCV_ANTIBO~N  DIAG_KI       HBV_SURF_T~L  AMYLASE       PRA30
      CURRENT_PRA   WLHR          TXINT         LIV_DON_TY    COLD_ISCH_KI  HIV_NAT       INOTROP_AG~S  PRA70
      PEAK_PRA      WLHL          TXKID         CONTROLLED~N  GRF_STAT_KI   HCV_NAT       CARDARREST~O  PRA100
      USE_WHICH_~A  WLIN          TXLIV         CORE_COOL_~N  DWFG_KI       HBV_NAT       RESUSCIT_DUR  PRAU
      CREAT_CLEAR   WLKI          TXLNG         NON_HRT_DON   PRVTXDIF_KI   PREV_TX_ANY   TATTOOS       DIABETES_F~L
      GFR           WLKP          TXPAN         ANTIHYPE_DON  GTIME_KI      PREV_TX_AN~N  LT_KI_BIOPSY  RCMV
      DONATION      WLLI          TXVCA         BLOOD_INF_~N  GSTATUS_KI    TX_TYPE       LT_KI_GLOM~L  DCMV
      ON_DIALYSIS   WLLU          PREV_MALIG~Y  BUN_DON       COD_KI        MED_COND_TRR  RT_KI_BIOPSY  DTIM
      C_PEPTIDE     WLPA          RDA1          CREAT_DON     COD2_KI       PX_STAT       RT_KI_GLOM~L  DTIMC
      C_PEPTIDED~E  WLPI          RDA2          DOBUT_DON_~D  COD3_KI       PX_STAT_DATE  REFERRAL_D~E  DIALDUR
      A2A2B_ELIG~Y  WLVC          RDB1          HTLV1_OLD_~N  TRTREJ1Y_KI   PREV_KI_DATE  RECOVERY_D~E  DIALDUR0
      A1            REGION        RDB2          HTLV2_OLD_~N  TRTREJ6M_KI   FUNC_STAT_~F  ADMIT_DATE~N  DIALDUR1
      A2            INACT_REAS~D  RDDR1         OTHER_INF_~N  MULTIORG      SHARE_TY      DONOR_ID      DIALDUR3
      B1            BW4           RDDR2         PT_DIURETI~N  ART_RECON     PSTATUS       HBSAB_DON     DIALDUR9
      B2            BW6           DON_RETYP     PT_STEROID~N  DUCT_MGMT     PTIME         EBV_IGG_CA~N  DIALDUR_MIS
      DR1           C1            DA1           PT_T3_DON     GRF_PLACEM    LOS           EBV_IGM_CA~N  DRC
      DR2           C2            DA2           PT_T4_DON     PA_PRESERV~M  PAYBACK       HBV_DNA_DON   DRCC
      ANTIBODY_T~D  DR51          DB1           PULM_INF_DON  VASC_MGMT     ECD_DONOR     CDC_RISK_H~N  DRCCC
      GENDER        DR51_2        DB2           SGOT_DON      VEN_EXT_GRF   AGE_GROUP     DATA_TRANS~T  DRCCB
      ABO           DR52          DDR1          SGPT_DON      INSULIN_PA    MALIG         DATA_WAITL~T  DRCCH
      WGT_KG_TCR    DR52_2        DDR2          TBILI_DON     INSULIN_DO~A  MALIG_TY      CTR_CODE      DRCCO
      HGT_CM_TCR    DR53          RA1           URINE_INF_~N  C_PEPTIDE~RR  HGT_CM_CALC   OPO_CTR_CODE  DSXM
      BMI_TCR       DR53_2        RA2           VASODIL_DON   HBA1C_PA_TRR  WGT_KG_CALC   INIT_OPO_C~E  DHTN
      CITIZENSHIP   DQ1           RB1           VDRL_DON      PK_DA1        BMI_CALC      END_OPO_CT~E  DIABETES_D~L
      CITIZEN_CO~Y  DQ2           RB2           CLIN_INFEC~N  PK_DA2        STATUS_TCR    LISTING_CT~E  DCOD
      PERM_STATE    WL_ID_CODE    RDR1          CONTIN_CIG~N  PK_DB1        STATUS_TRR    TX_YEAR       DTRAU
      EDUCATION     PERIP_VASC    RDR2          DIET_DON      PK_DB2        STATUS_DDR    TXTYP         DGF
      FUNC_STAT~CR  EXH_PERIT_~S  AMIS          DIURETICS_~N  PK_DDR1       VAL_DT_DDR    THYMO_IND     CENG
      DGN_TCR       AGE_DIAB      BMIS          CANCER_SIT~N  PK_DDR2       STATUS_LDR    ALEMTU_IND    SURG
      DGN2_TCR      EXH_VASC_A~S  DRMIS         HIST_CIG_DON  ENTERIC_DR~N  VAL_DT_LDR    BASILI_IND    CENP
      DIAB          YR_ENTRY_U~R  HLAMIS        DIABDUR_DON   ENTERIC_DR~T  VAL_DT_TCR    TACRO_D       SURP
      DRUGTRT_COPD  WORK_INCO~CR  NPKID         INSULIN_DE~N  END_STAT_PA   VAL_DT_TRR    CYCLO_D       CENF
      TOT_SERUM_~M  ACADEM~G_TCR  NPPAN         HIST_CANCE~N  FAILDATE_PA   LT_ONE_WEE~N  MYCOPHE_D     TRANSPLANT~E
      C_PEPTIDE~CR  ACADEM~L_TCR  END_CPRA_D~L  INSULIN_DU~N  DIAG_PA       REJ_BIOPSY    AZA_D         AGE_40
      HBA1C_PA_TCR  MALIG_TCR_KI  AGE_DON       HIST_DIABE~N  GRF_STAT_PA   REJCNF_KI     MTOR_D        AGE_65
      INIT_CURRE~A  PRI_PAYMEN~I  DDAVP_DON     SKIN_CANCE~N  INFECT_PA     REJTRT_KI     STEROIDS_D    AGE_99
      INIT_PEAK_~A  MALIG_TCR_PA  CMV_OLD_LI~N  DIABETES_DON  BLEED_PA      REJCNF_PA     BELATACEPT_D  DECEASED_TY
      INIT_STAT     PRI_PAYMEN~A  CMV_DON       HEPARIN_DON   ANAST_LK_PA   REJTRT_PA     RITUXIMAB_D   HLA_HIGH
      INIT_WGT_KG   PREV_TX       CMV_TEST_DON  ARGININE_DON  REJ_ACUTE_PA  ADMISSION_~E  REJ_1YR       CMV_LOW_RISK
      INIT_HGT_CM   PREV_KI_TX    EBV_TEST_DON  INSULIN_DON   REJ_HYPER_PA  DISCHARGE_~E  REJ1Y_IMMA    CMV_INT_RISK
      INIT_CPRA     PREV_PA_TX    HBV_TEST_DON  HGT_CM_DON~C  BIOP_ISLET~A  COMPL_ABSC    REJ1Y_IMMS    CMV_HIGH_R~K
      END_CPRA      ACADEM~L_TRR  HCV_TEST_DON  WGT_KG_DON~C  PANCREATIT~A  COMPL_ANASLK  REJ1YR_FINAL  CMV_MISS
      INIT_EPTS     ACADEM~G_TRR  CMV_NUCLEI~N  BMI_DON_CALC  REJ_CHRONI~A  COMPL_PANC~A  TRR_FOL_ID~E  THYMO_IND_~L
      END_EPTS      FUNC_STAT~RR  CMV_IGG_DON   KDPI          RETXDATE_PA   SURG_INCIS    MALIG_DENO~H  SIMULECT_I~L
      REM_CD        MALIG_TRR     CMV_IGM_DON   KDRI_MED      PRVTXDIF_PA   OPER_TECH     DX_DATE_LY~H  CAMPATH_IN~L
      DAYSWAIT_C~N  MALIG_TY_TRR  EBV_DNA_DON   KDRI_RAO      GTIME_PA      EDUCATION_~N  PATHOLOGY     PTLD_ONSET
      END_STAT      PERM_STATE~R  EBV_IGG_DON   HBV_NAT_DON   GSTATUS_PA    KI_CREAT_P~P  PTLD          PTLD_OUTCOME
      INIT_AGE      WORK_INCO~RR  EBV_IGM_DON   HCV_NAT_DON   COD_PA        KI_PROC_TY    DX_DATE       GROUP
      ACTIVATE_D~E  TX_DATE       HBV_CORE_DON  HIV_NAT_DON   COD2_PA       PRI_PAYMEN~N  PATHOLOGY_~D  EBV_IGG_LI~G
      CREAT_CLEA~E  ACUTE_REJ_~I  ETHCAT_DON    END_STAT_KI   COD3_PA       MEDICARE_DON  RRC           EBV_IGG_DE~D
      DEATH_DATE    CREAT_TRR     COD_CAD_DON   CREAT6M       TRTREJ1Y_PA   MEDICAID_DON  RRCC          pscore
      DIALYSIS_D~E  FIRST_WK_D~L  DEATH_CIRC~N  CREAT1Y       TRTREJ6M_PA   OTH_GOVT_DON  RRCCC
      END_DATE      ORG_REC_ON    DEATH_MECH~N  DIAL_DATE     ORGAN         PRIV_INS_DON  RRCCB
      GFR_DATE      PREV_PREG     CITIZENSHI~N  RETXDATE_KI   CMV_IGG       HMO_PPO_DON   RRCCH
      INIT_DATE     REC_ON_ICE    HEP_C_ANTI~N  FAILDATE_KI   CMV_IGM       SELF_DON      RRCCO
      WT_QUAL_DATE  REC_ON_PUMP   HCV_RNA_DON   PUMP_KI       EBV_SEROST~S  DONATION_DON  RWT
      ETHNICITY     SERUM_CREAT   ABO_DON       ABO_MAT       HBV_CORE      FREE_DON      RHT
      
      rename (`non_match_vars') =_ctrl
      
      
      syntax error
          Syntax is
              rename  oldname    newname   [, renumber[(#)] addnumber[(#)] sort ...]
              rename (oldnames) (newnames) [, renumber[(#)] addnumber[(#)] sort ...]
              rename  oldnames              , {upper|lower|proper}
      I am not sure what went wrong with the rename command. Could you please help me figure out?

      Comment


      • #4
        The problem is you skipped a step. The command immediately following -ds RECIPIENT_EBV_NEG `match_vars', not- should be -local non_match_vars `r(varlist)'- By skipping that step, you left local macro non_match_vars undefined, so when Stata reached the -rename- command, which uses that local macro, it failed.

        Comment


        • #5
          The SSC contributed "kmatch" command supports multiple exact matches

          Comment


          • #6
            Clyde Schechter Oh, my bad. I did not realize I skipped that command. Thank you again for your guidance, sir.

            Comment

            Working...
            X