Gower's distance

In statistics, Gower's distance between two mixed-type objects is a similarity measure that can handle different types of data within the same dataset and is particularly useful in cluster analysis or other multivariate statistical techniques.

Data can be binary, ordinal, or continuous variables.

It works by normalizing the differences between each pair of variables and then computing a weighted average of these differences.

The distance was defined in 1971 by Gower[1] and it takes values between 0 and 1 with smaller values indicating higher similarity.

For two objects

descriptors, the similarity

is defined as:

{\displaystyle S_{ij}={\frac {\sum _{k=1}^{p}w_{ijk}s_{ijk}}{\sum _{k=1}^{p}w_{ijk}}},}

are non-negative weights usually set to

is the similarity between the two objects regarding their

If the variable is binary or ordinal, the values of

are 0 or 1, with 1 denoting equality.

If the variable is continuous,

being the range of

-th variable and thus ensuring

As a result, the overall similarity

{\displaystyle S_{ij}}

between two objects is the weighted average of the similarities calculated for all their descriptors.

[3] In its original exposition, the distance does not treat ordinal variables in a special manner.

In the 1990s, first Kaufman and Rousseeuw[4] and later Podani[5] suggested extensions where the ordering of an ordinal feature is used.

For example, Podani obtains relative rank differences as

being the ranks corresponding to the ordered categories of the

Many programming languages and statistical packages, such as R, Python, etc., include implementations of Gower's distance.

The implementations may follow Kaufmann and Rousseeuw's extensions, which change the similarity for continuous variables to