Help! should I use svy: logit or xtlogit random effect for stratified cluster RCT?!


I'm analysing some secondary outcome data from a cluster RCT and I don't know whether to do it using svyset and then svy: logistic or whether to do xtlogit , or i(cluster) re ...they give very different odds ratios and so i do need to know which is correct!

The trial design is as follows:
3 geographical districts (similar to UK counties)
Within each district 12 clusters (roughly, villages) were randomised to control or intervention arm.

So each geographical district has 6 control clusters and 6 intervention clusters. There is no further sampling within clusters (every eligible person is entered into the trial unless they refuse). The outcome variable is a yes/no binary variable.

In the examples below i've just used a single risk factor to make it easier to interpret (and am ignoring trial arm for now).

So... I thought I could do:
svyset trial_cluster, strata(district)

and then:
svy: logistic outcomevar i.riskfactor

This gives me an OR of about 8 and correctly says there are 3 strata and 36 clusters.

Then i compared this output to doing:

xi: xtlogit outcomevar i.riskfactor i.district , or i(trial_cluster) re

Note that I've included district as a factor in the regression since i don't know how else to account for the stratified design.

Doing this gives an OR of about 5.

So i don't know which one is right! Hayes (in his Cluster RCT book) only uses the xtlogit random effects or general estimating equations so i'm guessing that that's the correct approach? But svyset seems to me a more elegant approach?

Please help!!