7.7 Adjusted odds ratio, relative risks and risk ratios in domain analysis
Suppose we want to study the relationship of experiencing dry mouth in the past 12 months (\(\texttt{ORH_EXP_DRM_MCQ}\)) with sex (\(\texttt{SEX_ASK_TRM}\)) adjusted by the province (\(\texttt{WGHTS_PROV_TRM}\)), age groups and the individual education for the people who complete the questionnaire in English, we can obtain the odds ratio, relative risk and risk ratio by the following codes:
R
As the number of independent variables is large, we may need to specify the initial values in the “\(\texttt{start}\)” option.
## Adjusted odds ratio
Domain.Adj.OR<-svyglm(ORH_EXP_DRM_MCQ~SEX_ASK_TRM+Age_group_5+
Education+WGHTS_PROV_TRM, family = quasibinomial(link = "logit"),
design = subset(CLSA.design.anly, startlanguage == "en"))
exp(coef(Domain.Adj.OR)["SEX_ASK_TRMM"])
exp(confint(Domain.Adj.OR)["SEX_ASK_TRMM",])
## Adjusted risk ratio
Domain.Adj.RR<-svyglm(ORH_EXP_DRM_MCQ ~ SEX_ASK_TRM+Age_group_5+
Education+WGHTS_PROV_TRM, family = quasibinomial(link = "log"),
design = subset(CLSA.design.anly, startlanguage == "en"),
start = c(-1.02, 0.03, -0.25, -0.25, -0.51, -0.31, -0.39, -0.33, -0.36,
-0.19, 0.46, -0.62, -1.43, 0.85, -0.26, 0.16, -0.02, 0.24))
exp(coef(Domain.Adj.RR)["SEX_ASK_TRMM"])
exp(confint(Domain.Adj.RR)["SEX_ASK_TRMM",])
## Adjusted risk difference
Domain.Adj.RD<-svyglm( ORH_EXP_DRM_MCQ ~ SEX_ASK_TRM+Age_group_5+
Education+ WGHTS_PROV_TRM, family = quasibinomial(link = "identity"),
design = subset(CLSA.design.anly, startlanguage == "en"), start =
c(0.1562, -.0008, 0.0049, 0.0627, 0.0242, 0.027, -.0275, -.0305, -.0018,
-.0082, 0.2129, -.0261, -.1108, 0.315, 0.0068, 0.0753, 0.0498, 0.1219))
coef(Domain.Adj.RD)["SEX_ASK_TRMM"]
confint(Domain.Adj.RD)["SEX_ASK_TRMM", ]
SAS
There is no formal procedure for the adjusted relative risk and risk ratios directly. We would compare the results from \(\texttt{PROC GENMOD}\) and the appropriate procedures from other statistic packages. The correct approach can be achieved with the SUDAAN package which we would not discuss here. Interested readers may refer to (Bieler et al. 2010).
/*Adjusted odds ratio*/
PROC SURVEYLOGISTIC data = CLSAData ;
CLASS ORH_EXP_DRM_MCQ SEX_ASK_TRM(ref = 'F') Age_group_5(ref = '45-48')
Education(ref = 'Low Education') WGHTS_PROV_TRM(ref = 'AB') /param = ref ;
MODEL ORH_EXP_DRM_MCQ(event = 'Yes') = SEX_ASK_TRM Age_group_5 Education
WGHTS_PROV_TRM /clodds ;
DOMAIN startlanguage;
STRATA GEOSTRAT_TRM;
WEIGHT WGHTS_ANALYTIC_TRM;
ODS output CLOdds = CLOddsWald_EN ;
RUN;
PROC PRINT data = CLOddsWald_EN;
FORMAT _numeric_ 10.8;
WHERE startlanguage eq 'en';
TITLE "Odds Ratio Estimates";
RUN;
/*Adjusted risk ratio without considering the survey design*/
PROC GENMOD data = CLSAData DESCENDING ;
CLASS ORH_EXP_DRM_MCQ SEX_ASK_TRM(ref = 'F') Age_group_5(ref = '45-48')
Education(ref = 'Low Education') WGHTS_PROV_TRM(ref ='AB') /param = ref ;
MODEL ORH_EXP_DRM_MCQ (event = 'Yes')= SEX_ASK_TRM Age_group_5 Education
WGHTS_PROV_TRM /dist = bin link = log;
WEIGHT WGHTS_ANALYTIC_TRM;
WHERE startlanguage eq 'en';
ODS output ParameterEstimates = Est ;
RUN;
Data AdjRR;
SET Est(where = (Parameter = 'SEX_ASK_TRM'));
AdjRR = exp(Estimate);
AdjRRLL = exp( LowerWALDCL) ;
AdjRRUL = exp( UpperWALDCL) ;
RUN;
PROC PRINT data = AdjRR;format _numeric_ 10.8; RUN;
/*Adjusted risk difference without considering the survey design*/
PROC GENMOD data = CLSAData DESCENDING ;
CLASS ORH_EXP_DRM_MCQ SEX_ASK_TRM(ref = 'F') Age_group_5(ref = '45-48')
Education(ref = 'Low Education') WGHTS_PROV_TRM(ref ='AB') /param = ref ;
MODEL ORH_EXP_DRM_MCQ (event = 'Yes') = SEX_ASK_TRM Age_group_5 Education
WGHTS_PROV_TRM /dist =bin link = identity;
WEIGHT WGHTS_ANALYTIC_TRM;
WHERE startlanguage eq 'en';
ODS output ParameterEstimates = AdjRD ;
RUN;
PROC PRINT data = AdjRD(where = (Parameter = 'SEX_ASK_TRM'));
FORMAT _numeric_ 10.8; RUN;
SPSS
There is no formal procedure for obtaining adjusted odds ratios, relative risks and risk differences in \(\texttt{SPSS}\).
Stata
svyset entity_id, strata(StraVar) weight(WGHTS_ANALYTIC_TRM) vce(linearized)
singleunit(certainty)
*adjusted odds ratio
svy linearized, subpop(if startlanguage == "en"): glm ORH_EXP_DRM_MCQ
SEX_ASK_TRM i.Age_group_5 ib3.Education i.WGHTS_PROV_TRM ,
fam(binomial) link(logit) eform
*adjusted relative risk
svy linearized, subpop(if startlanguage == "en"): glm ORH_EXP_DRM_MCQ
SEX_ASK_TRM i.Age_group_5 ib3.Education i.WGHTS_PROV_TRM ,
fam(binomial) link(log) difficult iterate(30000) eform
*adjusted risk difference
svy linearized, subpop(if startlanguage == "en"): glm ORH_EXP_DRM_MCQ
SEX_ASK_TRM i.Age_group_5 ib3.Education i.WGHTS_PROV_TRM ,
fam(binomial) link(identity) difficult iterate(30000)
Result comparison
R | SAS | Stata | |
---|---|---|---|
Adjusted Odds ratio (M vs F) | |||
Estimate | 1.0226 | 1.0226 | 1.0226 |
95% lower confidence limit | 0.5449 | 0.5407 | 0.5449 |
95% upper confidence limit | 1.9191 | 1.9341 | 1.9191 |
Adjusted Relative risk (M vs F) | |||
Estimate | 1.0313 | 1.0314 | 1.0314 |
95% lower confidence limit | 0.6472 | 0.7322 | 0.5742 |
95% upper confidence limit | 1.6431 | 1.4529 | 1.8525 |
Adjusted Risk difference (M vs F) | |||
Estimate | -0.0008 | -0.0008 | -0.0008 |
95% lower confidence limit | -0.0867 | -0.0707 | -0.0860 |
95% upper confidence limit | 0.0852 | 0.0692 | 0.0845 |
Again, we can see that all the packages give the same adjusted odds ratio, relative risk and risk difference. For the latter two cases, the $ program and \(\texttt{Stata}\) give similar confidence limits as they consider the survey designs in the variance estimation. In contrast, \(\texttt{SAS}\)gives noticeably narrower limits as it ignores the survey design without the SUDAAN package.
This domain analysis is for the researchers who are just interested in the adjusted odds ratios, relative risks and risk differences of the sub population. If the comparison of the odds ratio between different sub populations is preferred, then we suggest adding the sub-population indicators as part of the covariates in the regression equations to obtain the adjusted odds ratios.