Hi!
I have got a question regarding the teffects psmatch command.
I have got a dataset with 1218 patients, 143 treated with a drug and 1075 without treatment. The treatment variable is called lsivt. The outcome variable is a dichotomized variable, FO3m. Below is a crosstab of lsivt against FO3m
| FO3m
lsivt | 0 1 | Total
-----------+----------------------+----------
0 | 874 201 | 1,075
1 | 112 31 | 143
-----------+----------------------+----------
Total | 986 232 | 1,218
I want to perform a propensity score matching, adjusting for a couple of other variables: diabetes, hypertension etc.
The first command I run is:
teffects psmatch (FO3m) (lsivt age gender NIHSS hypertension diabetes prevstroke smoking), atet
tebalance summarize
with the following output:
teffects psmatch (FO3m) (lsivt age gender NIHSS hypertension diabetes prevstroke smoking), atet
Treatment-effects estimation Number of obs = 1,162
Estimator : propensity-score matching Matches: requested = 1
Outcome model : matching min = 1
Treatment model: logit max = 2
------------------------------------------------------------------------------
| AI Robust
FO3m | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
ATET |
lsivt |
(1 vs 0) | -.0547445 .0545405 -1.00 0.316 -.161642 .0521529
------------------------------------------------------------------------------
. tebalance summarize
note: refitting the model using the generate() option
Covariate balance summary
Raw Matched
-----------------------------------------
Number of obs = 1,162 274
Treated obs = 137 137
Control obs = 1,025 137
-----------------------------------------
-----------------------------------------------------------------
|Standardized differences Variance ratio
| Raw Matched Raw Matched
----------------+------------------------------------------------
age | -.1614855 .1706383 .9645654 .9889126
gender | -.2001502 .0635569 .896099 1.057561
NIHSS | .9836409 .0808688 1.266541 .8777478
hypertension | -.0251263 .154458 1.029614 .8974008
diabetes | -.1593301 .0680689 .8687085 1.086427
prevstroke | -.0990549 .0217887 .8148463 1.05
smoking | -.1230905 .0481789 .9192908 1.046252
-----------------------------------------------------------------
.
end of do-file
I interpret there as being no difference in outcome between the levels of lsivt in this analysis as the significance level is 0.316 and the command tebalance summarize seems to compare 137 treated against 137 controls (1:1 match) which is what I am expecting.
The second command (in which the atet is omitted) is the following:
teffects psmatch (FO3m) (lsivt age gender NIHSS hypertension diabetes prevstroke smoking),
tebalance summarize
with the following output:
teffects psmatch (FO3m) (lsivt age gender NIHSS hypertension diabetes prevstroke smoking),
Treatment-effects estimation Number of obs = 1,162
Estimator : propensity-score matching Matches: requested = 1
Outcome model : matching min = 1
Treatment model: logit max = 2
------------------------------------------------------------------------------
| AI Robust
FO3m | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
ATE |
lsivt |
(1 vs 0) | -.1019793 .027483 -3.71 0.000 -.1558451 -.0481136
------------------------------------------------------------------------------
. tebalance summarize
note: refitting the model using the generate() option
Covariate balance summary
Raw Matched
-----------------------------------------
Number of obs = 1,162 2,324
Treated obs = 137 1,162
Control obs = 1,025 1,162
-----------------------------------------
-----------------------------------------------------------------
|Standardized differences Variance ratio
| Raw Matched Raw Matched
----------------+------------------------------------------------
age | -.1614855 -.2100811 .9645654 .6867666
gender | -.2001502 .1775046 .896099 1.044887
NIHSS | .9836409 .0430565 1.266541 .8556752
hypertension | -.0251263 .0284012 1.029614 .9742328
diabetes | -.1593301 -.2002186 .8687085 .8125443
prevstroke | -.0990549 -.1450292 .8148463 .7234841
smoking | -.1230905 .0323539 .9192908 1.01975
-----------------------------------------------------------------
.
In this analysis the lsivt levels seem to significantly differ after matching (p<0.0001). the tebalance summarize command is confusing me though. I thought this was a 1:1 matching. How can 1162 treated observations be matched against 1162 control patients when I don’t even have that many patients?
Could someone please advice me on how to interpret this and which method to use?
Best regards
/Charith
I have got a question regarding the teffects psmatch command.
I have got a dataset with 1218 patients, 143 treated with a drug and 1075 without treatment. The treatment variable is called lsivt. The outcome variable is a dichotomized variable, FO3m. Below is a crosstab of lsivt against FO3m
| FO3m
lsivt | 0 1 | Total
-----------+----------------------+----------
0 | 874 201 | 1,075
1 | 112 31 | 143
-----------+----------------------+----------
Total | 986 232 | 1,218
I want to perform a propensity score matching, adjusting for a couple of other variables: diabetes, hypertension etc.
The first command I run is:
teffects psmatch (FO3m) (lsivt age gender NIHSS hypertension diabetes prevstroke smoking), atet
tebalance summarize
with the following output:
teffects psmatch (FO3m) (lsivt age gender NIHSS hypertension diabetes prevstroke smoking), atet
Treatment-effects estimation Number of obs = 1,162
Estimator : propensity-score matching Matches: requested = 1
Outcome model : matching min = 1
Treatment model: logit max = 2
------------------------------------------------------------------------------
| AI Robust
FO3m | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
ATET |
lsivt |
(1 vs 0) | -.0547445 .0545405 -1.00 0.316 -.161642 .0521529
------------------------------------------------------------------------------
. tebalance summarize
note: refitting the model using the generate() option
Covariate balance summary
Raw Matched
-----------------------------------------
Number of obs = 1,162 274
Treated obs = 137 137
Control obs = 1,025 137
-----------------------------------------
-----------------------------------------------------------------
|Standardized differences Variance ratio
| Raw Matched Raw Matched
----------------+------------------------------------------------
age | -.1614855 .1706383 .9645654 .9889126
gender | -.2001502 .0635569 .896099 1.057561
NIHSS | .9836409 .0808688 1.266541 .8777478
hypertension | -.0251263 .154458 1.029614 .8974008
diabetes | -.1593301 .0680689 .8687085 1.086427
prevstroke | -.0990549 .0217887 .8148463 1.05
smoking | -.1230905 .0481789 .9192908 1.046252
-----------------------------------------------------------------
.
end of do-file
I interpret there as being no difference in outcome between the levels of lsivt in this analysis as the significance level is 0.316 and the command tebalance summarize seems to compare 137 treated against 137 controls (1:1 match) which is what I am expecting.
The second command (in which the atet is omitted) is the following:
teffects psmatch (FO3m) (lsivt age gender NIHSS hypertension diabetes prevstroke smoking),
tebalance summarize
with the following output:
teffects psmatch (FO3m) (lsivt age gender NIHSS hypertension diabetes prevstroke smoking),
Treatment-effects estimation Number of obs = 1,162
Estimator : propensity-score matching Matches: requested = 1
Outcome model : matching min = 1
Treatment model: logit max = 2
------------------------------------------------------------------------------
| AI Robust
FO3m | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
ATE |
lsivt |
(1 vs 0) | -.1019793 .027483 -3.71 0.000 -.1558451 -.0481136
------------------------------------------------------------------------------
. tebalance summarize
note: refitting the model using the generate() option
Covariate balance summary
Raw Matched
-----------------------------------------
Number of obs = 1,162 2,324
Treated obs = 137 1,162
Control obs = 1,025 1,162
-----------------------------------------
-----------------------------------------------------------------
|Standardized differences Variance ratio
| Raw Matched Raw Matched
----------------+------------------------------------------------
age | -.1614855 -.2100811 .9645654 .6867666
gender | -.2001502 .1775046 .896099 1.044887
NIHSS | .9836409 .0430565 1.266541 .8556752
hypertension | -.0251263 .0284012 1.029614 .9742328
diabetes | -.1593301 -.2002186 .8687085 .8125443
prevstroke | -.0990549 -.1450292 .8148463 .7234841
smoking | -.1230905 .0323539 .9192908 1.01975
-----------------------------------------------------------------
.
In this analysis the lsivt levels seem to significantly differ after matching (p<0.0001). the tebalance summarize command is confusing me though. I thought this was a 1:1 matching. How can 1162 treated observations be matched against 1162 control patients when I don’t even have that many patients?
Could someone please advice me on how to interpret this and which method to use?
Best regards
/Charith