@@ -25,169 +25,107 @@ switches to treatment.
2525
2626### 1 DID methods
2727
28- #### 1.1 IPW
28+ #### 1.1 DID-EC- IPW
2929``` {r message=FALSE, warning=FALSE}
30- bootstrap_obj <- setup_bootstrap(
31- replicates = 50,
32- bootstrap_CI_type = "perc"
30+ method <- did_ec_ipw(
31+ ps_formula = "S ~ x1 + x2 + x3 + x4 + x5",
32+ trt_formula = "A ~ x1 + x2 + x3 + x4 + x5",
33+ bootstrap = 50
3334)
3435
35- method_DID_obj <- setup_method_DID(
36- method_name = "IPW",
37- bootstrap_flag = TRUE,
38- bootstrap_obj = bootstrap_obj,
39- model_form_piS = "S ~ x1 + x2 + x3 + x4 + x5",
40- model_form_piA = "A ~ x1 + x2 + x3 + x4 + x5"
41- )
42-
43- analysis_OLE_obj <- setup_analysis_OLE(
36+ analysis <- setup_analysis_OLE(
4437 data = SyntheticData,
4538 trial_status_col_name = "S",
4639 treatment_col_name = "A",
4740 outcome_col_name = c("y1", "y2", "y3", "y4"),
4841 covariates_col_name = c("x1", "x2", "x3", "x4", "x5"),
4942 T_cross = 2,
50- method_OLE_obj = method_DID_obj
43+ method_OLE_obj = method
5144)
5245
53- res <- run_analysis(analysis_OLE_obj )
46+ run_analysis(analysis )
5447```
5548
56- #### 1.2 AIPW
49+ #### 1.2 DID-EC- AIPW
5750``` {r message=FALSE, warning=FALSE}
58- bootstrap_obj <- setup_bootstrap(
59- replicates = 50,
60- bootstrap_CI_type = "perc"
61- )
62-
63- model_form_mu <- c(
51+ model_forms <- c(
6452 "y1 ~ x1 + x2 + x3 + x4 + x5",
6553 "y2 ~ x1 + x2 + x3 + x4 + x5",
6654 "y3 ~ x1 + x2 + x3 + x4 + x5",
6755 "y4 ~ x1 + x2 + x3 + x4 + x5"
6856)
6957
70- method_DID_obj <- setup_method_DID(
71- method_name = "AIPW",
72- bootstrap_flag = TRUE,
73- bootstrap_obj = bootstrap_obj,
74- model_form_piS = "S ~ x1 + x2 + x3 + x4 + x5",
75- model_form_piA = "A ~ x1 + x2 + x3 + x4 + x5",
76- model_form_mu0_ext = model_form_mu
58+ method <- did_ec_aipw(
59+ ps_formula = "S ~ x1 + x2 + x3 + x4 + x5",
60+ trt_formula = "A ~ x1 + x2 + x3 + x4 + x5",
61+ outcome_formula = model_forms,
62+ bootstrap = 50
7763)
7864
79- analysis_OLE_obj <- setup_analysis_OLE(
65+ analysis <- setup_analysis_OLE(
8066 data = SyntheticData,
8167 trial_status_col_name = "S",
8268 treatment_col_name = "A",
8369 outcome_col_name = c("y1", "y2", "y3", "y4"),
8470 covariates_col_name = c("x1", "x2", "x3", "x4", "x5"),
8571 T_cross = 2,
86- method_OLE_obj = method_DID_obj
72+ method_OLE_obj = method
8773)
8874
89- res <- run_analysis(analysis_OLE_obj )
75+ run_analysis(analysis )
9076```
9177
92-
93- #### 1.3 OR
78+ #### 1.3 DID-EC-OR
9479``` {r message=FALSE, warning=FALSE}
95- bootstrap_obj <- setup_bootstrap(
96- replicates = 50,
97- bootstrap_CI_type = "perc"
98- )
99-
100- model_form_mu <- c(
80+ model_forms <- c(
10181 "y1 ~ x1 + x2 + x3 + x4 + x5",
10282 "y2 ~ x1 + x2 + x3 + x4 + x5",
10383 "y3 ~ x1 + x2 + x3 + x4 + x5",
10484 "y4 ~ x1 + x2 + x3 + x4 + x5"
10585)
10686
107- method_DID_obj <- setup_method_DID(
108- method_name = "OR",
109- bootstrap_flag = TRUE,
110- bootstrap_obj = bootstrap_obj,
111- model_form_mu0_ext = model_form_mu,
112- model_form_mu0_rct = model_form_mu,
113- model_form_mu1_rct = model_form_mu
114- )
115-
116- analysis_OLE_obj <- setup_analysis_OLE(
117- data = SyntheticData,
118- trial_status_col_name = "S",
119- treatment_col_name = "A",
120- outcome_col_name = c("y1", "y2", "y3", "y4"),
121- covariates_col_name = c("x1", "x2", "x3", "x4", "x5"),
122- T_cross = 2,
123- method_OLE_obj = method_DID_obj
124- )
125-
126- res <- run_analysis(analysis_OLE_obj)
127- res
128- ```
129-
130-
131- ### 2 SCM method: with parallel computing
132- ``` {r}
133- bootstrap_obj <- setup_bootstrap(
134- replicates = 50,
135- bootstrap_CI_type = "perc"
136- )
137-
138- method_SCM_obj <- setup_method_SCM(
139- method_name = "SCM",
140- bootstrap_flag = TRUE,
141- bootstrap_obj = bootstrap_obj,
142- lambda.min = 0,
143- lambda.max = 1e-3,
144- nlambda = 10,
145- parallel = "no",
146- ncpus = 1
87+ method <- did_ec_or(
88+ outcome_formula_ext = model_forms,
89+ outcome_formula_rct_ctrl = model_forms,
90+ outcome_formula_rct_trt = model_forms,
91+ bootstrap = 50
14792)
14893
149- analysis_OLE_obj <- setup_analysis_OLE(
94+ analysis <- setup_analysis_OLE(
15095 data = SyntheticData,
15196 trial_status_col_name = "S",
15297 treatment_col_name = "A",
15398 outcome_col_name = c("y1", "y2", "y3", "y4"),
15499 covariates_col_name = c("x1", "x2", "x3", "x4", "x5"),
155100 T_cross = 2,
156- method_OLE_obj = method_SCM_obj
101+ method_OLE_obj = method
157102)
158103
159- run_analysis(analysis_OLE_obj )
104+ run_analysis(analysis )
160105```
161106
162107
163- ### 3 SCM method: without parallel computing
108+ ### 2 Synthetic control method
164109``` {r}
165- bootstrap_obj <- setup_bootstrap(
166- replicates = 50,
167- bootstrap_CI_type = "perc"
168- )
169-
170- method_SCM_obj <- setup_method_SCM(
171- method_name = "SCM",
172- bootstrap_flag = TRUE,
173- bootstrap_obj = bootstrap_obj,
174- lambda.min = 0,
175- lambda.max = 1e-3,
110+ method <- scm(
111+ lambda_min = 0,
112+ lambda_max = 1e-3,
176113 nlambda = 10,
177- parallel = "no"
114+ bootstrap = 50,
115+ bootstrap_ci_type = "perc"
178116)
179117
180- analysis_OLE_obj <- setup_analysis_OLE(
118+ analysis <- setup_analysis_OLE(
181119 data = SyntheticData,
182120 trial_status_col_name = "S",
183121 treatment_col_name = "A",
184122 outcome_col_name = c("y1", "y2", "y3", "y4"),
185123 covariates_col_name = c("x1", "x2", "x3", "x4", "x5"),
186124 T_cross = 2,
187- method_OLE_obj = method_SCM_obj
125+ method_OLE_obj = method
188126)
189127
190- run_analysis(analysis_OLE_obj )
128+ run_analysis(analysis )
191129```
192130
193131## References
0 commit comments