Laber & Zhao's argument is that a regime is only useful if a clinician can read it, and that the usual two-step approach – regress the outcome, then take the argmax – optimizes the wrong thing: a small error in the outcome model where the two arms are close flips the recommendation. Their tree instead maximizes the ESTIMATED VALUE directly, \(V(d) = sum Y_i 1{A_i = d(W_i)} / pi_i / sum 1{A_i = d(W_i)} / pi_i\), over axis-aligned splits. This implementation enumerates every split of every covariate at every observed value and recurses.
Value
List with estimate, value,
value_all_treated, value_all_control, rule,
split_var, split_point, n_leaves,
depth, n.
Details
The candidate scan runs COVARIATE-MAJOR then observation, and an improvement must be STRICT, so ties keep the first candidate in that fixed order – R scans a matrix column-major and Python row-major, and an unpinned scan would return a different-but-equally-optimal split per language.
