← Latest papers
📊 statistics

A Jensen-Shannon divergence based kk--NNNN algorithm for missing value imputation in compositional data

This paper proposes a novel nonparametric kk-NN algorithm for imputing missing values in compositional data that leverages Jensen-Shannon divergence and the Fréchet mean to handle zero values and self-adapt hyper-parameters, demonstrating superior accuracy and computational efficiency compared to existing methods.

Original authors: Michail Tsagris, Connie Stewart, Abdulaziz Alenazi

Published 2026-05-29
📖 5 min read🧠 Deep dive

Original authors: Michail Tsagris, Connie Stewart, Abdulaziz Alenazi

Original paper dedicated to the public domain under CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are a chef trying to recreate a secret family recipe. You have a stack of recipe cards, but some of them are torn or have missing ingredients listed. Your goal is to guess what those missing ingredients are so you can finish the dishes.

In the world of data science, this is called imputation (filling in the blanks). But this paper deals with a very specific, tricky type of recipe: Compositional Data.

What is "Compositional Data"?

Think of a pie chart. The whole pie always equals 100%. If you have a slice of "Apples" and a slice of "Oranges," and you add more Apples, the Orange slice must get smaller to keep the total at 100%.

This is different from a normal grocery list where you can have 5 apples and 10 oranges without one affecting the other. In compositional data, the parts are locked in a dance; if one moves, the others must adjust. This makes filling in missing numbers very hard because you can't just guess a number; you have to guess a number that fits the whole pie perfectly.

The Problem with Old Methods

For years, scientists tried to fix missing pieces in these "pie charts" using a method called k-NN (k-Nearest Neighbors).

  • How it works: If you have a recipe missing "Salt," the computer looks at other recipes that are very similar to yours. It sees what those similar recipes used for salt and guesses that you probably used something similar.
  • The Flaw: The old way of measuring "similarity" (called Aitchison's distance) is like trying to measure the distance between two cities using a ruler on a flat map, even though the Earth is round. It works okay sometimes, but it breaks down if your recipe has zero ingredients (e.g., "No Olives"). In the old math, you can't calculate the distance if a number is zero, so the whole system crashes.

The New Solution: The "Jensen-Shannon" Compass

The authors of this paper built a new, smarter compass to measure similarity. They call it the Jensen-Shannon Divergence (JSD).

  • The Analogy: Imagine you are comparing two smoothies. The old method might get confused if one smoothie has zero strawberries. The new JSD method is like a smart blender that says, "Okay, you have zero strawberries, but you have lots of bananas. Let's compare the flavor profile of the whole mix, ignoring the fact that one ingredient is missing."
  • The Benefit: This new method works perfectly even when the data contains zeros. It doesn't break; it just adapts.

The "Magic Dial" (The Fréchet Mean)

The authors didn't stop there. They added a "Magic Dial" (a parameter called α\alpha) to their algorithm.

  • The Analogy: Imagine you are averaging the opinions of your neighbors to guess the missing ingredient.
    • If you just take the Arithmetic Mean (the standard average), you are like a strict teacher: "Everyone gets equal weight."
    • If you use the Geometric Mean, you are like a cautious editor: "We'll ignore the extreme outliers."
    • The Fréchet Mean is like a flexible mediator. The "Magic Dial" (α\alpha) lets you slide between being strict, being cautious, or being somewhere in between. The computer can automatically tune this dial to find the perfect balance for your specific data.

The "Self-Adapting" Feature

Sometimes, missing data isn't random. Maybe the "Salt" is missing only in spicy recipes, while "Sugar" is missing only in sweet ones.

  • The authors created an Adaptive version of their tool. Instead of using one rule for the whole cookbook, this version looks at how the data is missing and changes its strategy for each specific pattern. It's like having a different chef for every type of dish.

What Did They Find?

The team tested their new tool against the old methods using real-world data, such as:

  1. Wine chemistry: Analyzing acids in Czech wines.
  2. River water: Checking chemical levels in Spanish rivers.
  3. Fish diets: Looking at fatty acids in fish (where some fish simply don't eat certain things, creating "zero" values).
  4. Farm crops: Figuring out how much of specific crops were grown in Greek regions.

The Results:

  • Accuracy: Their new method was consistently more accurate than the old ones. It guessed the missing numbers closer to the truth.
  • Speed: It was much faster. In some tests, the old method took 12 to 25 times longer to do the same job.
  • Zeros: It handled "zero" values without any trouble, whereas the old methods struggled or failed.

The Bottom Line

The authors built a new, faster, and more flexible way to fill in the missing pieces of "pie chart" data. It works even when some slices are completely empty (zeros), and it uses a smart "Magic Dial" to adjust its own settings for the best results. While the "self-adapting" feature is cool, they found that sometimes the simpler version is just as good and less complicated.

Note: The paper focuses strictly on the math and the simulation results. It does not claim this is a medical cure or a specific tool for future clinical use, but rather a statistical improvement for handling data in fields like economics, ecology, and chemistry.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →