5.2 Confounding by SES
Lower respiratory tract infection is strongly related to socioeconomic status (SES). If creche attendance is also related to SES we might expect confounding from SES to impact the association between lower respiratory tract infection and socioeconomic status.
To handle this confounding, we can analyse the association separately within strata defined by the confounder (stratification).
Exercise 13.2: Use the cc() command to determine if:
- creche attendance is associated with SES and
- lower respiratory tract infection is associated with SES. What do you conclude about confounding?
We can examine the 2x2 tables by group by filtering the dataset to the stratum we wish to investigate and then using the tabpct command. The filter() command comes from dplyr (in the tidyverse) and is used to select rows in the dataset meeting a certain condition. Note the chaining of two types of pipes here. We restrict the dataset first, then put it into the function we want to use second.
#--- Look at association between LRTI and Creche by strata of SES
creche %>% filter(socio == "Average SES") %$% tabpct(lrti, creche, graph = F)
## Warning: package 'bindrcpp' was built under R version 3.5.3
##
## Original table
## creche
## lrti No Yes Total
## No 468 57 525
## Yes 19 8 27
## Total 487 65 552
##
## Row percent
## creche
## lrti No Yes Total
## No 468 57 525
## (89.1) (10.9) (100)
## Yes 19 8 27
## (70.4) (29.6) (100)
##
## Column percent
## creche
## lrti No % Yes %
## No 468 (96.1) 57 (87.7)
## Yes 19 (3.9) 8 (12.3)
## Total 487 (100) 65 (100)
creche %>% filter(socio == "Very low SES") %$% tabpct(lrti, creche, graph = F)
##
## Original table
## creche
## lrti No Yes Total
## No 31 5 36
## Yes 34 19 53
## Total 65 24 89
##
## Row percent
## creche
## lrti No Yes Total
## No 31 5 36
## (86.1) (13.9) (100)
## Yes 34 19 53
## (64.2) (35.8) (100)
##
## Column percent
## creche
## lrti No % Yes %
## No 31 (47.7) 5 (20.8)
## Yes 34 (52.3) 19 (79.2)
## Total 65 (100) 24 (100)
Exercise 13.3: What percentage of children attending a creche had lower respiratory tract infection if they were from a higher SES? A lower SES?
While the cc() command calculates the odds ratio for you, it is useful to note that in R you can simply do this ‘by hand’. There is no need to use the display command like in Stata.
#--- Get the 2x2 table
creche %$% cc(lrti, creche, graph = F)
##
## creche
## lrti No Yes Total
## No 499 62 561
## Yes 53 27 80
## Total 552 89 641
##
## OR = 4.1
## 95% CI = 2.41, 6.99
## Chi-squared = 30.17, 1 d.f., P value = 0
## Fisher's exact test (2-sided) P value = 0
#--- Calculate the odds and odds ratio 'by hand'
27/62 # odds of LRTI in creche goers
## [1] 0.435
53/499 # odds of LRTI in creche goers
## [1] 0.106
(27/62)/(53/499) # OR
## [1] 4.1
(499*27)/(62*53) # Alternate calculation of OR
## [1] 4.1