Bug 2024208: Add a column to denote a magnitude of change based on the modality analysis#1059
Bug 2024208: Add a column to denote a magnitude of change based on the modality analysis#1059kala-moz wants to merge 9 commits into
Conversation
✅ Deploy Preview for mozilla-perfcompare ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
d4e94a7 to
717ce36
Compare
|
Similarly to #1056 (comment) I only see |
I've decided to also remove the dash since it doesn't give enough information. I've switched to Ahhh, I didn't use replicates. That's were the bug was. Updated subtests preview |
|
There's quite a lot of room in that column, looking at your screenshot, we can say the words in full? Similarly for NM |
1.) Say what words in full? |
Mode change: dash to NM instead - No modes
1d5a25c to
6354698
Compare
@padenot Hmm. I see what you mean. I can switch it to select by peak magnitude. The current selection by shift size was a suggestion from sparky in Bug 2024208 so not set in stone. We wanted to have a magnitude of change that didn't rely on mean / median alone but took advantage of the modality work. But using peak magnitude makes much more sense.
|



The Median Diff (%) column has been replaced with a Mode Δ (%) column that reports the largest matched-pair peak shift between the Base and New distributions, derived from the same KDE + mode-detection + modality-matching pipeline that powers the chart and the expanded-row blurb.
LikebootstrapCi, the value is precomputed once in the four data loaders (loader.ts,overTimeLoader.ts,subtestsLoader.ts,subtestsOverTimeLoader.tsx) viaprecomputeLargestPeakShiftand attached toresult.modeDeltaPct. KDE + mode matching is expensive enough that running it on every sort comparison or render would tank interactions.Speedometer 3 preview link
I had some trouble with netlify thus all the open / reopen commands. :/
Update: The Mode Δ (%) column and the Distribution Interpretation row in
MannWhitneyCompareMetricswere reading mode counts from two independent sources: the client-side ISJ/SJ KDE pipeline vs. the backend's wider Silverman KDE. Therefore, could could disagree in jarring ways (e.g. "Mode Δ = 4.16%" sitting directly above "No modes or data, possible oversmoothing"). Now, both views are piped through a single precomputed analysis so they can't drift.Update 2: I precompute modality on replicates when available
Update 3: Flip the sortFunction to ASC semantics so the framework's swap produces the intuitive direction: DESC → biggest improvements first, ASC → biggest regressions first. Comment updated to spell this out (same convention the Sig column already uses).
Update 4: Lazy-precompute Mode Δ analysis to restore load speed. All four loaders no longer call
precomputeModalityAnalysisUpdate 5: Select by peak magnitude vs largest shift. Also, simplified the language of the tooltip for the column.