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