Algorithm 1 Estimating and Evaluating an Individualized Treatment Rule (ITR) using the Same Experimental Data via Cross-Validation
| Steps in Algorithm 1 | Function/object | Output |
|---|---|---|
| 1. Split data into \(K\) random subsets of equal size \(\left(\mathbf{Z}_1, \cdots, \mathbf{Z}_k\right)\) | caret::createFolds() within
estimate_itr() |
dataframe |
| 2. k \(\leftarrow\) 1 | ||
| 3. while \(k \leq K\) do | for loop in fit_itr() within
estimate_itr() |
|
| 4. \(\quad \mathbf{Z}_{-k}=\left[\mathbf{Z}_1, \cdots, \mathbf{Z}_{k-1}, \mathbf{Z}_{k+1}, \cdots, \mathbf{Z}_K\right]\) | trainset object |
training data |
| 5. \(\hat{f}_{-k}=F\left(\mathbf{Z}_{-k}\right)\) | modulized functions for each ML algoritms (e.g.,
run_causal_forest()) within
estimate_itr() |
ITR (binary vector) |
| 6. \(\hat{\tau}_k=\hat{\tau}_{\hat{f}_{-k}}\left(\mathbf{Z}_k\right)\) | compute_qoi() function within
evaluate_itr() |
metrics for fold \(k\) |
| 7. \(k \leftarrow k+1\) | ||
| 8. end while | ||
| 9.return \(\hat{\tau}_F=\frac{1}{K} \sum_{k=1}^K \hat{\tau}_k\), \(\widehat{\mathbb{V}\left(\hat{\tau}_F\right)}=v\left(\hat{f}_{-1}, \cdots, \hat{f}_{-k}, \mathbf{Z}_1, \cdots, \mathbf{Z}_K\right)\) | PAPEcv() PAPDcv() and
getAupecOutput() functions inside
compute_qoi() function within
evaluate_itr() |
averaging the results across folds |