Skip to content

constrained_lasso: second-round review fixes - #69

Merged
tschm merged 3 commits into
mainfrom
constrained-lasso-review-2
Oct 25, 2026
Merged

tschm merged 3 commits into
mainfrom
constrained-lasso-review-2

Conversation

@tschm

@tschm tschm commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

Fixes the eight points of the second-round editor's review of the constrained-LASSO note (after #68). These are text and layout only: no code or numbers change. It also adds a "When to use which encoding" box.

  1. Section 5, "Three independent path algorithms": all three trace the CLA's path once started at the exact first knot, up to the ridge two of them add. As shipped, Gaines et al.'s own start puts it off the path, as the next paragraph already says.
  2. Section 1: "There are two, and both are needed" contradicted Appendix B, where the relaxed penalty form reproduces every zero sum. It now reads: the penalty form is the general one, and the budget form the direct one for homogeneous constraints.
  3. Section 3, "The start": the starting linear program now includes the rows CSz ≤ h. With some h_r < 0 they move the start off z = 0 (the Floor case in Section 6).
  4. Section 2: "a standard extension" now has a source. An inequality row is an equality row with a nonnegative slack, so it fits Markowitz's (1956) form, and cvxcla handles it directly.
  5. Scale: the cost ratios are "the one set of results" the script does not write. Problem settings and constants quoted from other packages are typed by hand, and that's fine.
  6. Section 6: "only the largest zero sum needed a retry" now says where it comes from: cvxcla 2.6.0, which tried only the first relaxation.
  7. Section 1: "This note shows that it does" gains the qualifier the abstract and conclusion use: "or stops with an error where its arithmetic cannot be trusted".
  8. Layout: Tables 3–5 follow the Section 5 paragraphs that cite them (pages 10–11) instead of landing in Section 6.

"When to use which encoding" box

A boxed summary at the end of Section 6, styled like Algorithm 1 and modelled on the companion LASSO note's "When to use it". cvxcla.Lasso makes the choice itself; the box says what it picks for which constraints, and what each choice costs:

  • Budget form, one run: homogeneous equality rows, with signs at most.
  • Penalty form, one run: any nondegenerate start, i.e. signs alone, caps, slack rows, a pinned fit, sum to one, or a floor.
  • Penalty form, two or more relaxed runs plus a certificate: homogeneous rows together with caps or inequality rows.
  • Either form with p > n: exact on every such problem in the note.
  • Two nearly identical columns: the CLA stops with an error.

Builds to 18 pages with no LaTeX warnings.

🤖 Generated with Claude Code

tschm and others added 2 commits October 24, 2026 21:11
1. Section 5: the three path algorithms trace the CLA's path once
   started at the exact first knot (Gaines et al. as shipped do not).
2. Section 1: the two encodings are the general one and the direct one
   for homogeneous constraints, not both needed (Appendix B).
3. Section 3: the penalty form's start includes the rows C S z <= h, which
   move it off z = 0 when some h_r < 0.
4. Section 2: inequality rows fit Markowitz's form as equality rows with
   a nonnegative slack, cited, instead of 'a standard extension'.
5. Scale: the cost ratios are the one set of results, not numbers, the
   script does not write.
6. Section 6: only the largest zero sum needed a retry, as cvxcla 2.6.0,
   which tried only the first relaxation, shows.
7. Section 1: the CLA gives exact paths or stops with an error.
8. Tables 3-5 follow the paragraphs that cite them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
At the end of Section 6, in the style of Algorithm 1 and the companion
note's 'When to use it': which encoding cvxcla.Lasso picks for which
constraints, and what each costs - the budget form in one run for
homogeneous equality rows with signs, the penalty form in one run from a
nondegenerate start, two or more relaxed runs and a certificate for
homogeneous rows with caps or rows, either form with p > n, and an error
on two nearly identical columns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ctions in Section 5 (#70)

- Section 1 ends with a 'results at a glance' box: one row per kind of
  constraint tested, the encoding that takes it, the outcome, and the
  references that confirm it. Unnumbered, like Algorithm 1, so no table
  is renumbered.
- Table 2 gains a constraint column, written by make_figures.py
  (CONSTRAINTS), and the paragraph that defined each problem in prose
  keeps only data, design and behaviour.
- Section 5 has subsections: test problems and checks, accuracy, scale
  and cost, hostile problems, more predictors than observations, and
  three independent path algorithms.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@tschm
tschm merged commit 7628d50 into main Oct 25, 2026
6 checks passed
@tschm
tschm deleted the constrained-lasso-review-2 branch October 25, 2026 04:29
tschm added a commit that referenced this pull request Oct 25, 2026
main's tree equals 5ad2af3, already on this branch, so the branch's tree is kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant