generated from opensafely/research-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
302_cox_models.do
146 lines (108 loc) · 3.74 KB
/
302_cox_models.do
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
********************************************************************************
*
* Do-file: 202_cox_models.do
*
* Programmed by: John & Alex
*
* Data used: None
*
* Data created: None
*
* Other output: None
*
********************************************************************************
*
* Purpose:
*
* Note:
********************************************************************************
clear
do `c(pwd)'/analysis/global.do
cap log close
log using $outdir/cox_models.txt, replace t
tempname measures
postfile `measures' ///
str20(comparator) str20(outcome) str25(analysis) str10(adjustment) ptime_covid num_events_covid rate_covid ///
ptime_comparator num_events_comparator rate_comparator hr lc uc ///
using $tabfigdir/cox_model_summary, replace
foreach an in pneumonia gen_population {
use $outdir/combined_covid_`an'.dta, replace
drop patient_id
gen new_patient_id = _n
global crude i.case
global age_sex i.case i.male age1 age2 age3
global full i.case i.male age1 age2 age3 i.stp2 i.ethnicity i.imd i.obese4cat_withmiss ///
i.smoke htdiag chronic_respiratory_disease i.asthmacat chronic_cardiac_disease ///
i.diabcat i.cancer_exhaem_cat i.cancer_haem_cat i.reduced_kidney_function_cat2 ///
i.chronic_liver_disease i.stroke i.dementia i.other_neuro i.organ_transplant i.spleen ///
i.ra_sle_psoriasis i.other_immunosuppression i.hist_dvt i.hist_pe i.hist_stroke i.hist_mi i.hist_aki i.hist_heart_failure
foreach v in stroke dvt pe heart_failure mi aki t2dm {
noi di "Starting analysis for `v' Outcome ..."
forvalues i = 1/3 {
preserve
local skip_1 = 0
local skip_2 = 0
local skip_3 = 0
* Apply exclusion for AKI and diabetes outcomes
if "`v'" == "t1dm" | "`v'" == "t2dm" {
drop if previous_diabetes == 1
local skip_2 = 1
local skip_3 = 1
}
if "`v'" == "aki" {
drop if aki_exclusion_flag == 1
}
if `i' == 1 {
local out `v'
local end_date `v'_end_date
}
if `i' == 2 {
local out `v'_no_gp
local end_date `v'_no_gp_end_date
}
if `i' == 3 {
local out `v'_cens_gp
local end_date `v'_cens_gp_end_date
}
if `skip_`i'' == 0 {
noi di "$group: stset in `a'"
stset `end_date' , id(new_patient_id) failure(`out') enter(indexdate) origin(indexdate)
foreach adjust in crude age_sex full {
if "`adjust'" == "full" & "`v'" == "t2dm" {
* remove diabetes
global full i.case i.male age1 age2 age3 i.stp2 i.ethnicity i.imd i.obese4cat_withmiss ///
i.smoke htdiag chronic_respiratory_disease i.asthmacat chronic_cardiac_disease ///
i.cancer_exhaem_cat i.cancer_haem_cat i.reduced_kidney_function_cat2 ///
i.chronic_liver_disease i.stroke i.dementia i.other_neuro i.organ_transplant i.spleen ///
i.ra_sle_psoriasis i.other_immunosuppression i.hist_dvt i.hist_pe i.hist_stroke i.hist_mi i.hist_aki i.hist_heart_failure
}
stcox $`adjust', vce(robust)
matrix b = r(table)
local hr= b[1,2]
local lc = b[5,2]
local uc = b[6,2]
estat phtest, detail
stptime if case == 1
local rate_covid = `r(rate)'
local ptime_covid = `r(ptime)'
local events_covid .
if `r(failures)' == 0 | `r(failures)' > 5 local events_covid `r(failures)'
stptime if case == 0
local rate_comparator = `r(rate)'
local ptime_comparator = `r(ptime)'
local events_comparator .
if `r(failures)' == 0 | `r(failures)' > 5 local events_comparator `r(failures)'
post `measures' ("`an'") ("`v'") ("`out'") ("`adjust'") ///
(`ptime_covid') (`events_covid') (`rate_covid') (`ptime_comparator') (`events_comparator') (`rate_comparator') ///
(`hr') (`lc') (`uc')
}
}
restore
}
}
}
postclose `measures'
* Change postfiles to csv
use $tabfigdir/cox_model_summary, replace
export delimited using $tabfigdir/cox_model_summary.csv, replace
log close