Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
re: st: Fwd: psmatch2 kernel matching
From
"Ariel Linden" <[email protected]>
To
<[email protected]>
Subject
re: st: Fwd: psmatch2 kernel matching
Date
Fri, 1 Nov 2013 12:01:11 -0400
Hi Christina,
Welcome to the statalist. Please make sure to read the statalist FAQ
(http://www.stata.com/support/faqs/resources/statalist-faq) before posting
so that you can learn about how to post queries most effectively. For
example, you need to state where you download a user-written program from,
such as -psmatch2- (a user written program from
http://fmwww.bc.edu/RePEc/bocode/p). Also, it's "Stata", not "STATA".
As for your question below, you provided information on the first part of
your analysis (ie., using kernel matching), but you did not describe what
you are using it for in the outcome analysis. In any case, it appears that
you are measuring the difference between groups in the time to a given
event, and the output appears to show that there is no statistically
significant difference between groups.
Yes, you can use the _weight generated from -psmatch2- as a pweight in the
outcome model. I would suggest you review the _weights to see if everyone
got a weight (or else they will be dropped from the analysis). Also, it
looks like there was some problem to review when you stset your data...
This is probably as much as I can comment on, given what you provided...
Ariel
Date: Thu, 31 Oct 2013 18:21:20 -0400
From: Christina Wei <[email protected]>
Subject: st: Fwd: psmatch2 kernel matching
Hi all, I have a question about kernel matching/propensity match analysis.
I have a database with ~ 400 pts, there are 2 groups of patients
(treated and untreated), whom I am trying to match them by key
covariates. I decided to go with kernel matching because it gave me
the greatest amount of metabias reduction, compared to other matching
algorithms.
The command I used was:
. psmatch2 treat_status age_1 female income_1 smoker_1 bmi_1 waist_1
edu_1 if cohort==0 & dmstatus _11==0, kernel k(epan) com logit
Logistic regression Number of obs =
379
LR chi2(7) =
20.50
Prob > chi2 =
0.0046
Log likelihood = -231.45013 Pseudo R2 =
0.0424
-
----------------------------------------------------------------------------
--
treat_status | Coef. Std. Err. z P>|z| [95% Conf.
Interval]
-
-------------+--------------------------------------------------------------
--
age_1 | .0407305 .0108218 3.76 0.000 .0195202
.0619408
female | -.2388684 .31013 -0.77 0.441 -.8467301 .3689933
income_1 | -.1101363 .0899938 -1.22 0.221 -.286521
.0662483
smoker_1 | -.0553164 .2924599 -0.19 0.850 -.6285272
.5178944
bmi_1 | .0393986 .0238286 1.65 0.098 -.0073045
.0861017
waist_1 | -.0023815 .0100084 -0.24 0.812 -.0219976
.0172346
edu_1 | .0305265 .0567433 0.54 0.591 -.0806883
.1417412
_cons | -2.340632 1.441815 -1.62 0.105 -5.166537
.4852736
-
----------------------------------------------------------------------------
--
----------------------------------------------------------------------------
--
Then I checked covariate balance using pstest to make sure that each
covariate are evenly balanced between the groups.
Then I used the _weight generated from the psmatch2 command to help
match up my patients in the following cox regression:
. stset DM_yr_conversion if cohort==0 & dmstatus_11==0 [pw=_weight],
failure(DM_censor) id(unqid_c
ohort)
id: unqid_cohort
failure event: DM_censor != 0 & DM_censor < .
obs. time interval: (DM_yr_conversion[_n-1], DM_yr_conversion]
exit on or before: failure
weight: [pweight=_weight]
if exp: cohort==0 & dmstatus_11==0
-
----------------------------------------------------------------------------
--
1156 total obs.
758 ignored at outset because of -if <exp>-
5 event time missing (DM_yr_conversion>=.) PROBABLE
ERROR
29 weights invalid PROBABLE
ERROR
-
----------------------------------------------------------------------------
--
364 obs. remaining, representing
364 subjects
54 failures in single failure-per-subject data
2131.652 total analysis time at risk, at risk from t = 0
earliest observed entry t = 0
last observed exit t = 9.745206
.
end of do-file
. do "C:\Users\CHRIST~1\AppData\Local\Temp\STD0h000000.tmp"
. stcox i.treat_status hba1c_1 glucose_1 if _support==1 & cohort==0
failure _d: DM_censor
analysis time _t: DM_yr_conversion
id: unqid_cohort
weight: [pweight=_weight]
(sum of wgt is 4.7067e+02)
Iteration 0: log pseudolikelihood = -288.35
Iteration 1: log pseudolikelihood = -266.04
Iteration 2: log pseudolikelihood = -265.86
Iteration 3: log pseudolikelihood = -265.86
Refining estimates:
Iteration 0: log pseudolikelihood = -265.86194
Cox regression -- Breslow method for ties
No. of subjects = 470.66 Number of obs = 360
No. of failures = 60.15
Time at risk = 2727.483
Wald chi2(3) =
47.38
Log pseudolikelihood = -265.86194 Prob > chi2 =
0.0000
(Std. Err. adjusted for 360 clusters in
unqid_cohort)
-
----------------------------------------------------------------------------
--
| Robust
_t | Haz. Ratio Std. Err. z P>|z| [95% Conf.
Interval]
-
-------------+--------------------------------------------------------------
--
1.treat_status | 1.315519 .527333 0.68 0.494 .5996365
2.886063
hba1c_1 | 5.451966 1.915138 4.83 0.000 2.738719
10.85322
glucose_1 | 1.03018 .0161385 1.90 0.058 .9990303
1.062302
-
----------------------------------------------------------------------------
--
I hope this is adequate to perform the intended analysis. I am new to
STATA and propensity match analysis and your assistance is greatly
appreciated.
Sincerely,
Christina
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/