The computational engine of Mogstad, Santos and Torgovitsky
(2018): when the object of interest is a linear functional c'x
and everything the data and assumptions say about x is linear,
the identified set for the target is
[min c'x, max c'x] over the feasible polytope – and both ends
are linear programmes. SHARPNESS is the point: the feasible set is
convex, so every value between the optima is attained, and the
interval IS the identified set for the target.
Value
list: lower, upper, width, argmin, argmax, feasible, bounded, sharp, k, n_inequalities, n_equalities, method.
Details
Infeasibility is informative rather than an error: an empty feasible set means the maintained assumptions contradict the data moments – a specification REJECTION.
Solved by a self-contained two-phase simplex with Bland's rule (base R has no linear programming); at identification-bound problem sizes the anti-cycling guarantee is worth more than speed.
