---
title: "Warwick and Oxford Researchers Fix a Silent Bug Crashing SciPy's Power Transforms"
subtitle: "A new paper diagnoses why Box-Cox and Yeo-Johnson transforms silently break on ordinary data, ships a fix already merged into SciPy, and extends it to federated learning."
url: "https://alphasignal.ai/news/warwick-and-oxford-researchers-fix-a-silent-bug-crashing-scipy-s-power"
author: "AlphaSignal Newsroom"
author_url: "https://alphasignal.ai/editorial-team"
company: "AlphaSignal"
company_url: "https://alphasignal.ai/company/alphasignal"
published: "2026-04-15T00:00:00.000Z"
updated: "2026-08-23T20:31:00.141Z"
type: "Paper"
topics:
  - "Data"
  - "Training Infra"
subtopics:
  - "Data Curation"
  - "Distributed Training"
upvotes: 970
source_url: "https://arxiv.org/abs/2510.04995"
comments: 0
truncated: true
---

# Warwick and Oxford Researchers Fix a Silent Bug Crashing SciPy's Power Transforms

> A new paper diagnoses why Box-Cox and Yeo-Johnson transforms silently break on ordinary data, ships a fix already merged into SciPy, and extends it to federated learning.

Power transforms like Box-Cox and Yeo-Johnson are one of those quiet workhorses of ML pipelines. You throw skewed features at them, they push the distribution closer to Gaussian, and downstream models like logistic regression or LDA get happier. A new paper from researchers at Warwick and Oxford, [Power Transform Revisited](https://arxiv.org/abs/2510.04995), shows that standard implementations of these transforms are quietly broken, and can crash or produce wildly wrong answers on datasets as trivial as `[10, 10, 10, 9.9]`.

The authors' fix has already been merged into SciPy, and they released a companion library, [powertf](https://github.com/xuefeng-xu/powertf), that also handles the federated learning case.

## The bug hiding in your preprocessing step

Box-Cox raises data to a power lambda and normalizes; Yeo-Johnson extends it to handle negative values. The parameter lambda is fit by minimizing a negative log-likelihood (NLL). Everything is convex and mathematically well-behaved, so what could go wrong?

Floating point, mostly. On simple inputs the true optimum can be very large in magnitude, causing numerical overflow when evaluating the power functions, for example 0.1 to the -361 or 10 to the 358\. The authors identify three conditions that reliably push lambda into overflow territory:

* **All values on one side of 1.** Box-Cox has psi(lambda, 1) = 0 for all lambda, so datasets with every x greater than 1, or every x less than 1, tend to trigger positive or negative overflow respectively.

_Preview only. Full text requires an AlphaSignal Pro account._

## Sources

- [Power Transform Revisited: Numerically Stable, and Federated](https://arxiv.org/abs/2510.04995)
- [powertf GitHub repository](https://github.com/xuefeng-xu/powertf)
- [Full HTML version of the paper](https://arxiv.org/html/2510.04995)
