Long time quiet reader, first time poster - I hope I have followed the community recommended approach properly. I apologise if not and thank you in advance for any help.
I am using the xtologit command in Stata 17.0. I have consulted as many previous questions to this forum and help guides as I can but I am still missing some understanding.
I have an ordinal dependent variable which is the number of visits to the GP (general practitioner doctor surgery in the UK) in the last 12 months. Categorised as follows: 1 (Very poor health (10+ visits)); 2 (Poor health (4-6 visits)); 3 (Average health (2-3 visits); 4 (Good health (1-2 visits); 5 (Perfect health (0 visits). Whereby this variable is a proxy for health - those in a low category (1, or 2) are visiting the GP more times and are believed to be in worse health.
In my dataset I have a group of individuals who are 'treated' (by receiving an exogenous increase in income) and a group who are 'control' (who are the untreated / counterfactual). I have control variables for female (1= female; 0=male); furthereduc (1= achieved higher education; 0= did not) and age (continuous). I am using a two period difference-in-differences approach to determine if the increase in income has a causal effect on decreasing the number of GP visits - which is why I am most interested in the interpretation of the estimate on the interaction term.
Please may I seek clarification and advice on the following questions:
(1) in the below -xtologit- output, is my general interpretation correct? "being a treated individual in the post period (atet) there is a higher probability (likelihood) of being in the lower categories of GP visits - given negative coefficients"
(2) is my code for trying to output margins correct? I am trying to reach an output where I can make a comment such as "The ATET (being treated and in the post period) means an individual is X% less likely to be in category 1 of visit_gp (i.e. very poor health) and the individual is Y% less likely to be in the category 2 of visit_gp (i.e. poor health) and the individual is Z% more likely to be in the category 5 (i.e. perfect health). I am not sure my current code is delivering the required output because I would have expected some positive and some negative marginal effects
Here is the code I am using:
Code:
xtset pidp year keep if year==2015 | year==2016 *Remove observations which have missing values drop if treated2016_basecase==. | visit_gp==. | age==. | female==. | furthereduc==. *Any individual that only appears once must be dropped because otherwise regression may capture effects of leaving the labour market bysort pidp: drop if _N==1 *Check to ensure that the size of treatment and control groups is the same in both the pre and post intervention periods tab year treated2016_basecase *Generating Average Treatment Effect of Treated (ATET) g atet=. replace atet =(treated2016_basecase*post2016) label define atet 1 "ATET" 0 "Baseline", replace label values atet atet label variable atet "ATET" *Ordered logistic regression for GP visits xtologit visit_gp i.post2016 i.treated2016_basecase i.atet c.age i.furthereduc i.female
This is the output I currently have:
Code:
Fitting comparison model: Iteration 0: log likelihood = -1894.1805 Iteration 1: log likelihood = -1878.6944 Iteration 2: log likelihood = -1878.6672 Iteration 3: log likelihood = -1878.6672 Refining starting values: Grid node 0: log likelihood = -1836.7557 Fitting full model: Iteration 0: log likelihood = -1836.7557 Iteration 1: log likelihood = -1772.2448 Iteration 2: log likelihood = -1768.3413 Iteration 3: log likelihood = -1768.2766 Iteration 4: log likelihood = -1768.2765 Random-effects ordered logistic regression Number of obs = 1,362 Group variable: pidp Number of groups = 681 Random effects u_i ~ Gaussian Obs per group: min = 2 avg = 2.0 max = 2 Integration method: mvaghermite Integration pts. = 12 Wald chi2(6) = 27.67 Log likelihood = -1768.2765 Prob > chi2 = 0.0001 ---------------------------------------------------------------------------------------------- visit_gp | Coefficient Std. err. z P>|z| [95% conf. interval] -----------------------------+---------------------------------------------------------------- | post2016 | Post Intervention | -.0708782 .1365138 -0.52 0.604 -.3384403 .1966839 | treated2016_basecase | Treated | .3639954 .2394449 1.52 0.128 -.1053079 .8332988 | atet | ATET | -.5966812 .2292338 -2.60 0.009 -1.045971 -.1473911 age | -.0139749 .0088376 -1.58 0.114 -.0312964 .0033465 | furthereduc | Achieved Further Education | -.0769321 .2039696 -0.38 0.706 -.4767051 .3228409 | female | female | -.7140386 .2144538 -3.33 0.001 -1.13436 -.2937168 -----------------------------+---------------------------------------------------------------- /cut1 | -5.816949 .5220329 -6.840115 -4.793783 /cut2 | -4.394885 .4991386 -5.373179 -3.416591 /cut3 | -2.28405 .4776321 -3.220192 -1.347908 /cut4 | .7056797 .4685216 -.2126058 1.623965 -----------------------------+---------------------------------------------------------------- /sigma2_u | 4.578534 .5849712 3.564295 5.88138 ---------------------------------------------------------------------------------------------- LR test vs. ologit model: chibar2(01) = 220.78 Prob >= chibar2 = 0.0000 . . margins atet Predictive margins Number of obs = 1,362 Model VCE: OIM 1._predict: Pr(1.visit_gp), predict(pr outcome(1)) 2._predict: Pr(2.visit_gp), predict(pr outcome(2)) 3._predict: Pr(3.visit_gp), predict(pr outcome(3)) 4._predict: Pr(4.visit_gp), predict(pr outcome(4)) 5._predict: Pr(5.visit_gp), predict(pr outcome(5)) ------------------------------------------------------------------------------- | Delta-method | Margin std. err. z P>|z| [95% conf. interval] --------------+---------------------------------------------------------------- _predict#atet | 1#Baseline | .0458419 .0062402 7.35 0.000 .0336114 .0580724 1#ATET | .0691755 .01205 5.74 0.000 .0455578 .0927932 2#Baseline | .0703647 .0072393 9.72 0.000 .056176 .0845534 2#ATET | .0933941 .0116942 7.99 0.000 .070474 .1163142 3#Baseline | .2122565 .0118731 17.88 0.000 .1889857 .2355273 3#ATET | .2466207 .0160977 15.32 0.000 .2150697 .2781716 4#Baseline | .4070927 .0141687 28.73 0.000 .3793227 .4348628 4#ATET | .3909165 .0158156 24.72 0.000 .3599184 .4219146 5#Baseline | .2644442 .0148508 17.81 0.000 .2353372 .2935512 5#ATET | .1998932 .0221671 9.02 0.000 .1564464 .24334 -------------------------------------------------------------------------------
Below is a snippet of my dataset using the dataex command
Code:
* Example generated by -dataex-. For more info, type help dataex clear input long pidp float(female education treated2016_basecase post2016 atet visit_gp) 68017687 1 3 1 0 0 4 68017687 1 4 1 1 1 3 68137365 1 1 0 0 0 5 68137365 1 1 0 1 0 4 68150967 0 3 0 0 0 2 68150967 0 3 0 1 0 1 68150975 0 3 0 0 0 2 68150975 0 3 0 1 0 3 68155047 1 3 0 0 0 4 68155047 1 3 0 1 0 3 68166607 1 6 1 0 0 4 68166607 1 6 1 1 1 3 68197895 0 2 1 0 0 5 68197895 0 2 1 1 1 5 68244807 1 3 0 0 0 3 68244807 1 3 0 1 0 4 68273371 1 2 1 0 0 3 68273371 1 2 1 1 1 2 68317567 0 3 1 0 0 4 68317567 0 3 1 1 1 2 68347487 0 2 1 0 0 3 68347487 0 2 1 1 1 1 68351571 0 4 0 0 0 3 68351571 0 4 0 1 0 4 68356331 0 3 0 0 0 5 68356331 0 3 0 1 0 5 68439289 1 3 0 0 0 3 68439289 1 3 0 1 0 3 68469887 1 4 0 0 0 5 68469887 1 4 0 1 0 4 68474647 1 1 1 0 0 4 68474647 1 1 1 1 1 1 68569173 1 4 0 0 0 1 68569173 1 4 0 1 0 1 68573253 1 4 0 0 0 4 68573253 1 4 0 1 0 2 68622207 1 3 0 0 0 1 68622207 1 3 0 1 0 4 68636487 1 3 0 0 0 4 68636487 1 3 0 1 0 4 69078487 1 4 0 0 0 3 69078487 1 4 0 1 0 3 69264127 1 3 0 0 0 5 69264127 1 3 0 1 0 4 69269571 0 3 0 0 0 3 69269571 0 3 0 1 0 3 69280447 0 4 1 0 0 3 69280447 0 4 1 1 1 4 69625205 1 6 0 0 0 3 69625205 1 6 0 1 0 5 69831249 1 3 1 0 0 3 69831249 1 3 1 1 1 3 70154249 1 4 0 0 0 4 70154249 1 4 0 1 0 5 70625485 1 2 0 0 0 2 70625485 1 2 0 1 0 3 70786645 1 1 1 0 0 4 70786645 1 1 1 1 1 5 71148405 0 3 1 0 0 4 71148405 0 3 1 1 1 4 71148409 1 3 0 0 0 5 71148409 1 3 0 1 0 4 71434005 1 4 1 0 0 5 71434005 1 4 1 1 1 5 71461209 1 4 1 0 0 4 71461209 1 4 1 1 1 4 73997888 1 5 1 0 0 5 73997888 1 5 1 1 1 4 77031164 0 3 1 0 0 2 77031164 0 3 1 1 1 2 81731933 0 1 0 0 0 5 81731933 0 1 0 1 0 5 82171885 1 3 1 0 0 3 82171885 1 3 1 1 1 2 88916809 1 6 1 0 0 4 88916809 1 6 1 1 1 4 89099729 1 3 1 0 0 4 89099729 1 3 1 1 1 3 89272445 1 2 1 0 0 4 89272445 1 2 1 1 1 2 95416925 1 3 0 0 0 1 95416925 1 3 0 1 0 4 95575369 0 3 0 0 0 4 95575369 0 3 0 1 0 3 96029609 1 1 0 0 0 4 96029609 1 1 0 1 0 3 96088769 1 3 1 0 0 2 96088769 1 3 1 1 1 1 105610882 0 1 0 0 0 5 105610882 0 1 0 1 0 5 136071407 1 3 1 0 0 4 136071407 1 3 1 1 1 4 136123767 1 5 0 0 0 3 136123767 1 5 0 1 0 4 136214215 0 5 1 0 0 5 136214215 0 5 1 1 1 5 136235967 1 4 1 0 0 5 136235967 1 4 1 1 1 5 136303285 0 6 0 0 0 5 136303285 0 6 0 1 0 5 end label values female female label def female 0 "male", modify label def female 1 "female", modify label values education education label def education 1 "No qualification", modify label def education 2 "Other qualification", modify label def education 3 "GCSE etc", modify label def education 4 "A-level etc", modify label def education 5 "Other higher degree", modify label def education 6 "Degree", modify label values treated2016_basecase treated2016_basecase label def treated2016_basecase 0 "Control", modify label def treated2016_basecase 1 "Treated", modify label values post2016 post2016 label def post2016 0 "Pre Intervention", modify label def post2016 1 "Post Intervention", modify label values atet atet label def atet 0 "Baseline", modify label def atet 1 "ATET", modify label values visit_gp visit_gp label def visit_gp 1 "V. Poor Health (>10 visits)", modify label def visit_gp 2 "Poor Health (6-10 visits)", modify label def visit_gp 3 "Average Health (3-5 visits)", modify label def visit_gp 4 "Good Health (1-2 visits)", modify label def visit_gp 5 "Perfect Health (0 visits)", modify
0 Response to Using -xtologit- postestimation tools (particularly margins) when independent variables include an interaction of two binary variables
Post a Comment