Re: Branch Ratios & other Indexes for Trees/Dendrograms

Leo Mada via R-help <[email protected]>
Newsgroups gmane.comp.lang.r.general
Message-ID <DBAP192MB09568F87A1B1B47F4B15758B840BA@DBAP192MB0956.EURP192.PROD.OUTLOOK.COM>
Dear R Users,

This is a follow-up to one of my older messages. Although I did not receive useful suggestions back then, I did some research on my own and found an R package and some references in the literature. I hope that this information is useful to others as well.

### Tree Balance

The problem can be solved using indexes that measure the tree balance. Package mdendro implements 2 such indexes (chaining coefficient and a tree balance coefficient, which is actually the entropy of the tree structure).
https://cran.r-project.org/web/packages/mdendro/index.html

The paper referenced by mdendro is in the meantime published as well (it was not accessible a few days ago):
Fernández, A., & Gómez, S. (2025). mdendro: An R Package for Extended Agglomerative Hierarchical Clustering. Journal of Statistical Software, 114(2), 1–26. https://doi.org/10.18637/jss.v114.i02


The other reference is much older (and I do not have access to it):
Williams W, Lambert J, Lance G (1966). “Multivariate Methods in Plant Ecology: V.
Similarity Analyses and Information-Analysis.” Journal of Ecology, 54(2), 427–445. doi:
10.2307/2257960.
[it may be possible to read online, but not download the article; I have not fully checked]

I have included some functions in my own R code on GitHub, like index.chaining and index.entropy:
https://github.com/discoleo/PeptideClassifier/blob/main/R/Helper.Tree.Analysis.R

I hope this info is useful to others as well.

Sincerely,

Leonard

Initial Message:
https://stat.ethz.ch/pipermail/r-help/2025-August/481164.html

________________________________
From: Leo Mada <[email protected]>
Sent: Monday, August 25, 2025 12:28 AM
To: Leo Mada via R-help <[email protected]>
Subject: Branch Ratios & other Indexes for Trees/Dendrograms

Dear R-Users,

I have another question regarding trees (dendrograms).

After exploring the various hierarchical clustering methods, it seems that some of the methods (average, single, median) add sequentially very small clusters (even 1 leaf) to an increasingly larger branch.

I would like to quantify this more rigorously. I do not think that banner plots fully capture this fact, as they are limited to height of the node where a leaf binds.

I came up with 2 alternative measures:
- Ratio of leaves on 1 branch (larger branch) vs the other branch (see function branch.ratios);
- Size of other branch of the node where 1 leaf binds;

The latter resembles the bannerplot; and is also limited only to nodes with leaves.

Can anyone point me to such indexes in the literature and/or in other R packages?

I am not an expert in the field. Searching for cluster indexes will likely generate a huge number of false positive results (i.e. indexes for number of clusters).

An example of this functionality is given below:

# Pre-computed Trees:
x1 = readRDS("Tree.Full.M_ward.D.rds")
x2 = readRDS("Tree.Full.M_average.rds")

br1 = branch.ratios(x1)
br2 = branch.ratios(x2)
# Alternative: size.leafBranch(x1);

par.old = par(mfrow = c(1,2))
hist(br1);
# Branch Ratio goes up to 1300!
hist(br2);
par(par.old)

# Note: Median & centroid are even more extreme!

The data sets and functions are on GitHub:
https://github.com/discoleo/PeptideClassifier/tree/main/inst/examples

Functions: branch.ratios, size.leafBranch, count.nodes;
https://github.com/discoleo/PeptideClassifier/blob/main/R/Helper.Tree.R

I have attached an image to this mail with all 8 histograms. The image is also available on GitHub:
https://github.com/discoleo/PeptideClassifier/blob/main/Trees.BranchRatios.png
Many thanks in advance,

Leonard


	[[alternative HTML version deleted]]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.