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 |