are broadly used instruments to summarize a number of indicators in a single numerical worth.
They’re utilized in varied fields: from the analysis of company efficiency and the standard of life in cities, to the effectivity of well being techniques. The objective is to offer a easy, interpretable and comparable measure. Nevertheless, the obvious simplicity of those indices usually masks arbitrary selections, lack of info, and distortions within the ensuing hierarchies.
One of many primary issues is expounded to weight attribution: attributing a higher weight to at least one indicator than one other implies a subjective choice. Moreover, the synthesis in a single quantity forces a complete ordering, even amongst models that differ on a number of dimensions in a non-comparable manner, forcing a linear ordering by way of a single rating results in extreme simplifications and doubtlessly deceptive conclusions.
In gentle of those limitations, different approaches exist. Amongst these, POSETs (Partially Ordered Units) provide a extra trustworthy solution to symbolize the complexity of multidimensional information.
As a substitute of synthesizing all the knowledge in a quantity, POSETs are primarily based on a partial dominance relationship: a unit dominates one other whether it is higher on all the size thought of. When this doesn’t occur, the 2 models stay incomparable. The POSET strategy permits us to symbolize the hierarchical construction implicit within the information with out forcing comparisons the place they aren’t logically justifiable. This makes it significantly helpful in clear decision-making contexts, the place methodological coherence is preferable to pressured simplification.
Ranging from the theoretical foundations, we are going to construct a sensible instance with an actual dataset (Wine High quality dataset) and focus on consequence interpretation. We’ll see that, within the presence of conflicting dimensions, POSETs symbolize a sturdy and interpretable resolution, preserving the unique info with out imposing an arbitrary ordering.
Theoretical foundations
To know the POSET strategy, it’s crucial to begin from some basic ideas of set concept and ordering. Not like aggregative strategies, which produce a complete and compelled ordering between models, POSET is predicated on the partial dominance relation, which permits us to acknowledge the incomparability amongst components.
What’s {a partially} ordered set?
{A partially} ordered set (POSET) is a pair (P, ≤), the place
- P is a non-empty set (may very well be places, corporations, individuals, merchandise, and so forth)
- ≤ is a binary relationship on P that’s characterised by three properties
- Reflexivity, every aspect is in relationship with itself (expressed as ∀ x ∈ P, x ≤ x)
- Antisymmetry, if two components are associated to one another in each instructions, then they’re the identical (expressed as ∀ x, y ∈ P, ( x ≤ y ∧ y ≤ x) ⇒ x = y)
- Transitivity, if a component is expounded to a second, and the second with a 3rd, then the primary is in relation to the third (expressed as ∀ x, y, z ∈ P, (x ≤ y ∧ y ≤ z) ⇒ x ≤ z
In sensible phrases, a component x is alleged to dominate a component y (due to this fact x ≤ y) whether it is higher or equal throughout all related dimensions, and strictly higher in a minimum of considered one of them.
This construction is against a complete order, by which every pair of components is comparable (for every x, y then x ≤ y or y ≤ x). The partial order, alternatively, permits that some {couples} are incomparable, and that is considered one of its analytical forces.
Partial dominance relationship
In a multi-indicator context, the partial system is constructed by introducing a dominance relationship between vectors. Given two objects a = (a1, a2, …, an) and b = (b1, b2, …, bn) we are able to say that a ≤ b (a dominates b) if:
- for every i, ai ≤ bi (that means that a shouldn’t be the worst aspect amongst any dimensions)
- and that for a minimum of one j, aj ≤ bj (that means that a is strictly higher in a minimum of one dimension in comparison with b)
This relationship builds a dominance matrix that represents which aspect dominates which different aspect within the dataset. If two objects don’t fulfill the mutual standards of dominance, they’re incomparable.
For example,
- if A = (7,5,6) and B = (8,5,7) then A ≤ B (as a result of B is a minimum of equal in every dimension and strictly higher in two of them)
- if C = (7,6,8) and D = (6,7,7) then C and D are incomparable as a result of every one is bigger than the opposite in a minimum of one dimension however worse within the different.
This express incomparability is a key attribute of POSETs: they protect the unique info with out forcing a rating. In lots of actual purposes, equivalent to the standard analysis of wine, metropolis, or hospitals, incomparability shouldn’t be a mistake, however a trustworthy illustration of complexity.
Methods to construct a POSET index
In our instance we use the dataset winequality-red.csv, which accommodates 1599 purple wines, every described by 11 chemical-physical variables and a top quality rating.
You’ll be able to obtain the dataset right here:
Wine Quality Dataset
Wine Quality Prediction – Classification Prediction
www.kaggle.com
The dataset’s license is CC0 1.0 Universal, that means it may be downloaded and used with none particular permission.
Enter variables are:
- fastened acidity
- unstable acidity
- citric acid
- residual sugar
- chlorides
- free sulfur dioxide
- complete sulfur dioxide
- density
- pH
- sulphates
- alcohol
Output variable is high quality (rating between 0 and 10).
We are able to (and can) exclude variables on this evaluation: the objective is to construct a set of indicators in line with the notion of “high quality” and with shared directionality (larger values = higher, or vice versa). For instance, a excessive unstable acidity worth is damaging, whereas a excessive alcohol worth is usually related to superior high quality.
A rational alternative might embrace:
- Alcohol (constructive)
- Acidity unstable (damaging)
- Sulphates (constructive)
- Residual Sugar (constructive as much as a sure level, then impartial)
- Citric Acid (constructive)
For POSET, you will need to standardize the semantic route: if a variable has a damaging impact, it have to be reworked (e.g. -Volatile_acidity) earlier than evaluating the dominance.
Building of the dominance matrix
To construct the partial dominance relationship between the observations (the wines), proceed as follows:
- Pattern N observations from the dataset (for instance, 20 wines for legibility functions)
- Every wine is represented by a vector of m indicators
- The commentary A dominates B happens if A is bigger or equal than B and a minimum of one aspect is strictly higher.
Sensible instance in Python
The wine dataset can also be current in Sklearn. We use Pandas to handle the dataset, Numpy for numerical operations and Networkx to construct and consider Hasse diagram
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
from sklearn.datasets import load_wine
from sklearn.preprocessing import MinMaxScaler
# load within the dataset
information = load_wine()
df = pd.DataFrame(information.information, columns=information.feature_names)
df['target'] = information.goal
# let's choose an arbitrary variety of quantitative options
options = ['alcohol', 'malic_acid', 'color_intensity']
df_subset = df[features].copy()
# min max scaling for comparability functions
scaler = MinMaxScaler()
df_norm = pd.DataFrame(scaler.fit_transform(df_subset), columns=options)
df_norm['ID'] = df_norm.index
Every line of the dataset represents a wine, described by 3 numerical traits. Let’s say that:
- Wine A dominates wine B if it has higher or equal values in all sizes, and strictly higher in a minimum of one
That is only a partial system: you can not all the time say if one wine is “higher” than one other, as a result of possibly one has extra alcohol however much less shade depth.
We construct the dominance matrix D, the place d[i][j] = 1 if aspect i dominates j.
def is_dominant(a, b):
"""Returns True if a dominates b"""
return np.all(a >= b) and np.any(a > b)
# dominance matrix
n = len(df_norm)
D = np.zeros((n, n), dtype=int)
for i in vary(n):
for j in vary(n):
if i != j:
if is_dominant(df_norm.loc[i, features].values, df_norm.loc[j, features].values):
D[i, j] = 1
# let's create a pandas dataframe
dominance_df = pd.DataFrame(D, index=df_norm['ID'], columns=df_norm['ID'])
print(dominance_df.iloc[:10, :10])
>>>
ID 0 1 2 3 4 5 6 7 8 9
ID
0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0
3 1 1 0 0 0 1 0 0 0 1
4 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0
6 0 1 0 0 0 0 0 0 0 0
7 0 1 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0 0
for every couple i, j, the matrix returns
- 1 if i dominates j
- else 0
For instance, in line 3, you discover values 1 in columns 0, 1, 5, 9. This implies: aspect 3 dominates components 0, 1, 5, 9.
Constructing of Hasse diagram
We symbolize dominance relationships with an acliclic oriented graph. We scale back the relationships transitively to acquire the diagram of Hasse, which reveals solely direct dominances.
def transitive_reduction(D):
G = nx.DiGraph()
for i in vary(len(D)):
for j in vary(len(D)):
if D[i, j]:
G.add_edge(i, j)
G_reduced = nx.transitive_reduction(G)
return G_reduced
# construct the community with networkx
G = transitive_reduction(D)
# Visalization
plt.determine(figsize=(12, 10))
pos = nx.spring_layout(G, seed=42)
nx.draw(G, pos, with_labels=True, node_size=100, node_color='lightblue', arrowsize=15)
plt.title("Hasse Diagram")
plt.present()

Evaluation of Incomparability
Let’s now see what number of components are incomparable to one another. Two models i and j are incomparable if neither dominates the opposite.
incomparable_pairs = []
for i in vary(n):
for j in vary(i + 1, n):
if D[i, j] == 0 and D[j, i] == 0:
incomparable_pairs.append((i, j))
print(f"Variety of incomparable {couples}: {len(incomparable_pairs)}")
print("Examples:")
print(incomparable_pairs[:10])
>>>
Variety of incomparable {couples}: 8920
Examples:
[(0, 1), (0, 2), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9), (0, 10), (0, 12)]
Comparability with a standard artificial ordering
If we used an mixture index, we’d get a pressured complete ordering. Let’s use the normalized imply for every wine for example:
# Artificial index calculation (common of the three variables)
df_norm['aggregated_index'] = df_norm[features].imply(axis=1)
# Complete ordering
df_ordered = df_norm.sort_values(by='aggregated_index', ascending=False)
print("High 5 wines in keeping with mixture index:")
print(df_ordered[['aggregated_index'] + options].head(5))
>>>
High 5 wines in keeping with mixture index:
aggregated_index alcohol malic_acid color_intensity
173 0.741133 0.705263 0.970356 0.547782
177 0.718530 0.815789 0.664032 0.675768
156 0.689005 0.739474 0.667984 0.659556
158 0.685608 0.871053 0.185771 1.000000
175 0.683390 0.589474 0.699605 0.761092
This instance reveals the conceptual and sensible distinction between POSET and artificial rating. With the combination index, every unit is forcedly ordered; with POSET, logical dominance relations are maintained, with out introducing arbitrariness or info loss. The usage of directed graphs additionally permits a transparent visualization of partial hierarchy and incomparability between models.
Consequence interpretability
One of the vital fascinating facets of the POSET strategy is that not all models are comparable. Not like a complete ordering, the place every aspect has a novel place, the partial ordering preserves the structural info of the info: some components dominate, others are dominated, many are incomparable. This has essential implications by way of interpretability and choice making.
Within the context of the instance with the wines, the absence of an entire ordering implies that some wines are higher on some dimensions and worse on others. For instance, one wine might have a excessive alcohol content material however a low shade depth, whereas one other wine has the alternative. In these circumstances, there isn’t any clear dominance, and the 2 wines are incomparable.
From a decision-making standpoint, this info is effective: forcing a complete rating masks these trade-offs and might result in suboptimal selections.
Let’s test within the code what number of nodes are maximal, that’s, not dominated by some other, and what number of are minimal, that’s, don’t dominate some other:
# Extract maximal nodes (no successors within the graph)
maximal_nodes = [node for node in G.nodes if G.out_degree(node) == 0]
# Extract minimal nodes (no predecessors)
minimal_nodes = [node for node in G.nodes if G.in_degree(node) == 0]
print(f"Variety of maximal (non-dominated) wines: {len(maximal_nodes)}")
print(f"Variety of minimal (all-dominated or incomparable) wines: {len(minimal_nodes)}")
>>>
Variety of maximal (non-dominated) wines: 10
Variety of minimal (all-dominated or incomparable) wines: 22
The excessive variety of maximal nodes means that there are a lot of legitimate alternate options and not using a clear hierarchy. This displays the fact of multi-criteria techniques, the place there may be not all the time a universally legitimate “most suitable option”.
Clusters of non-comparable wines
We are able to determine clusters of wines that aren’t comparable to one another. These are subgraphs by which the nodes aren’t linked by any dominance relation. We use networkx to determine the linked parts within the related undirected graph:
We are able to determine clusters of wines that aren’t comparable to one another. These are subgraphs by which the nodes aren’t linked by any dominance relation. We use networkx to determine the linked parts within the related undirected graph:
# Let's convert the directed graph into an undirected one
G_undirected = G.to_undirected()
# Discover clusters of non-comparable nodes (linked parts)
parts = record(nx.connected_components(G_undirected))
# We filter solely clusters with a minimum of 3 components
clusters = [c for c in components if len(c) >= 3]
print(f"Variety of non-comparable wine clusters (≥3 models): {len(clusters)}")
print("Cluster instance (as much as 3)):")
for c in clusters[:3]:
print(sorted(c))
>>>
Variety of non-comparable wine clusters (≥3 models): 1
Cluster instance (as much as 3)):
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...]
These teams symbolize areas of multidimensional house by which models are equal by way of dominance: there isn’t any goal solution to say that one wine is “higher” than one other, until we introduce an exterior criterion.
Hasse diagram with give attention to maximals
To raised visualize the construction of the sorting, we are able to spotlight the maximal nodes (optimum selections) within the Hasse diagram:
node_colors = ['skyblue' if node in maximal_nodes else 'lightgrey' for node in G.nodes]
plt.determine(figsize=(12, 10))
pos = nx.spring_layout(G, seed=42)
nx.draw(G, pos, with_labels=True, node_size=600, node_color=node_colors, arrowsize=15)
plt.title("Maximal nodes highlighted (not dominated)")
plt.present()

In actual eventualities, these maximal nodes would correspond to non-dominated options, i.e. one of the best choices from a Pareto-efficiency perspective. The choice maker might select considered one of these primarily based on private preferences, exterior constraints or different qualitative standards.
Unremovable trade-offs
Let’s take a concrete instance to point out what occurs when two wines are incomparable:
id1, id2 = incomparable_pairs[0]
print(f"Comparability between wine {id1} and {id2}:")
v1 = df_norm.loc[id1, features]
v2 = df_norm.loc[id2, features]
comparison_df = pd.DataFrame({'Wine A': v1, 'Wine B': v2})
comparison_df['Dominance'] = ['A > B' if a > b else ('A < B' if a < b else '=') for a, b in zip(v1, v2)]
print(comparison_df)
>>>
Comparability between wine 0 and 1:
Wine A Wine B Dominance
alcohol 0.842105 0.571053 A > B
malic_acid 0.191700 0.205534 A < B
color_intensity 0.372014 0.264505 A > B
This output clearly reveals that neither wine is superior on all dimensions. If we used an mixture index (equivalent to a median), one of many two could be artificially declared “higher”, erasing the details about the battle between dimensions.
Chart interpretation
It is very important know {that a} POSET is a descriptive, not a prescriptive, device. It doesn’t counsel an computerized choice, however fairly makes express the construction of the relationships between alternate options. Instances of incomparability aren’t a restrict, however a characteristic of the system: they symbolize reliable uncertainty, plurality of standards and number of options.
In decision-making areas (coverage, multi-objective choice, comparative analysis), this interpretation promotes transparency and accountability of selections, avoiding simplified and arbitrary rankings.
Professionals and Cons of POSETs
The POSET strategy has numerous essential benefits over conventional artificial indices, however it isn’t with out limitations. Understanding these is crucial to deciding when to undertake a partial ordering in multidimensional evaluation initiatives.
Professionals
- Transparency: POSET doesn’t require subjective weights or arbitrary aggregations. Dominance relationships are decided solely by the info.
- Logical coherence: A dominance relationship is outlined solely when there may be superiority on all dimensions. This avoids pressured comparisons between components that excel in numerous facets.
- Robustness: Conclusions are much less delicate to information scale or transformation, supplied that the relative ordering of variables is maintained.
- Figuring out non-dominated options: Maximal nodes within the graph symbolize Pareto-optimal selections, helpful in multi-objective decision-making contexts.
- Making incomparability express: Partial sorting makes trade-offs seen and promotes a extra sensible analysis of alternate options.
Cons
- No single rating: In some contexts (e.g., competitions, rankings), a complete ordering is required. POSET doesn’t robotically present a winner.
- Computational complexity: For very massive datasets, dominance matrix development and transitive discount can change into costly.
- Communication challenges: for non-expert customers, decoding a Hasse graph could also be much less speedy than a numerical rating.
- Dependence on preliminary selections: The collection of variables influences the construction of the type. An unbalanced alternative can masks or exaggerate the incomparability.
Conclusions
The POSET strategy gives a robust different perspective for the evaluation of multidimensional information, avoiding the simplifications imposed by mixture indices. As a substitute of forcing a complete ordering, POSETs protect info complexity, exhibiting clear circumstances of dominance and incomparability.
This system is especially helpful when:
- indicators describe totally different and doubtlessly conflicting facets (e.g. effectivity vs. fairness);
- you need to discover non-dominated options, in a Pareto perspective;
- you could guarantee transparency within the decision-making course of.
Nevertheless, it isn’t all the time your best option. In contexts the place a novel rating or automated selections are required, it might be much less sensible.
The usage of POSETs needs to be thought of as an exploratory section or complementary device to aggregative strategies, to determine ambiguities, non-comparable clusters, and equal alternate options.