are broadly used instruments to summarize a number of indicators in a single numerical worth.
They’re utilized in numerous fields: from the analysis of company efficiency and the standard of life in cities, to the effectivity of well being methods. The purpose is to supply a easy, interpretable and comparable measure. Nonetheless, the obvious simplicity of those indices usually masks arbitrary selections, lack of data, and distortions within the ensuing hierarchies.
One of many primary issues is expounded to weight attribution: attributing a larger weight to at least one indicator than one other implies a subjective desire. Moreover, the synthesis in a single quantity forces a complete ordering, even amongst items that differ on a number of dimensions in a non-comparable approach, forcing a linear ordering by a single rating results in extreme simplifications and doubtlessly deceptive conclusions.
In mild of those limitations, various approaches exist. Amongst these, POSETs (Partially Ordered Units) provide a extra trustworthy approach to characterize the complexity of multidimensional knowledge.
As a substitute of synthesizing all the knowledge in a quantity, POSETs are based mostly on a partial dominance relationship: a unit dominates one other whether it is larger on all the scale thought of. When this doesn’t occur, the 2 items stay incomparable. The POSET strategy permits us to characterize the hierarchical construction implicit within the knowledge with out forcing comparisons the place they don’t seem to be logically justifiable. This makes it notably 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 talk about end result interpretation. We are going to see that, within the presence of conflicting dimensions, POSETs characterize a sturdy and interpretable answer, preserving the unique data with out imposing an arbitrary ordering.
Theoretical foundations
To know the POSET strategy, it’s mandatory to start out from some elementary ideas of set principle and ordering. Not like aggregative strategies, which produce a complete and compelled ordering between items, POSET relies on the partial dominance relation, which permits us to acknowledge the incomparability amongst parts.
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 areas, corporations, individuals, merchandise, and so forth)
- ≤ is a binary relationship on P that’s characterised by three properties
- Reflexivity, every component is in relationship with itself (expressed as ∀ x ∈ P, x ≤ x)
- Antisymmetry, if two parts 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 (subsequently x ≤ y) whether it is larger or equal throughout all related dimensions, and strictly larger in a minimum of certainly one of them.
This construction is against a complete order, wherein every pair of parts is comparable (for every x, y then x ≤ y or y ≤ x). The partial order, then again, permits that some {couples} are incomparable, and that is certainly 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 just isn’t the worst component amongst any dimensions)
- and that for a minimum of one j, aj ≤ bj (that means that a is strictly larger in a minimum of one dimension in comparison with b)
This relationship builds a dominance matrix that represents which component dominates which different component within the dataset. If two objects don’t fulfill the mutual standards of dominance, they’re incomparable.
As an illustration,
- 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 larger in two of them)
- if C = (7,6,8) and D = (6,7,7) then C and D are incomparable as a result of each 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 data with out forcing a rating. In lots of actual functions, corresponding to the standard analysis of wine, metropolis, or hospitals, incomparability just isn’t a mistake, however a trustworthy illustration of complexity.
How one can construct a POSET index
In our instance we use the dataset winequality-red.csv, which comprises 1599 purple wines, every described by 11 chemical-physical variables and a top quality rating.
You possibly can 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:
- mounted 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 will (and can) exclude variables on this evaluation: the purpose is to construct a set of indicators according to the notion of “high quality” and with shared directionality (increased values = higher, or vice versa). For instance, a excessive unstable acidity worth is unfavorable, whereas a excessive alcohol worth is commonly related to superior high quality.
A rational selection could embody:
- Alcohol (constructive)
- Acidity unstable (unfavorable)
- Sulphates (constructive)
- Residual Sugar (constructive as much as a sure level, then impartial)
- Citric Acid (constructive)
For POSET, it is very important standardize the semantic path: if a variable has a unfavorable impact, it should be reworked (e.g. -Volatile_acidity) earlier than evaluating the dominance.
Development 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 remark A dominates B happens if A is bigger or equal than B and a minimum of one component is strictly larger.
Sensible instance in Python
The wine dataset can be current in Sklearn. We use Pandas to handle the dataset, Numpy for numerical operations and Networkx to construct and look at 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
knowledge = load_wine()
df = pd.DataFrame(knowledge.knowledge, columns=knowledge.feature_names)
df['target'] = knowledge.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 larger or equal values in all sizes, and strictly larger in a minimum of one
That is only a partial system: you can’t all the time say if one wine is “higher” than one other, as a result of possibly one has extra alcohol however much less colour depth.
We construct the dominance matrix D, the place d[i][j] = 1 if component 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: component 3 dominates parts 0, 1, 5, 9.
Constructing of Hasse diagram
We characterize dominance relationships with an acliclic oriented graph. We scale back the relationships transitively to acquire the diagram of Hasse, which exhibits 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 parts are incomparable to one another. Two items 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 conventional artificial ordering
If we used an combination 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)
# Whole ordering
df_ordered = df_norm.sort_values(by='aggregated_index', ascending=False)
print("Prime 5 wines in keeping with combination index:")
print(df_ordered[['aggregated_index'] + options].head(5))
>>>
Prime 5 wines in keeping with combination 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 exhibits the conceptual and sensible distinction between POSET and artificial rating. With the mixture index, every unit is forcedly ordered; with POSET, logical dominance relations are maintained, with out introducing arbitrariness or data loss. The usage of directed graphs additionally permits a transparent visualization of partial hierarchy and incomparability between items.
End result interpretability
One of the crucial fascinating points of the POSET strategy is that not all items are comparable. Not like a complete ordering, the place every component has a novel place, the partial ordering preserves the structural data of the info: some parts dominate, others are dominated, many are incomparable. This has necessary implications when it comes to interpretability and resolution 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 may have a excessive alcohol content material however a low colour depth, whereas one other wine has the alternative. In these instances, there is no such thing as a clear dominance, and the 2 wines are incomparable.
From a decision-making perspective, this data is efficacious: forcing a complete rating masks these trade-offs and may result in suboptimal selections.
Let’s verify 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 various legitimate alternate options and not using a clear hierarchy. This displays the truth of multi-criteria methods, the place there’s not all the time a universally legitimate “most suitable option”.
Clusters of non-comparable wines
We will establish clusters of wines that aren’t comparable to one another. These are subgraphs wherein the nodes will not be related by any dominance relation. We use networkx to establish the related elements within the related undirected graph:
We will establish clusters of wines that aren’t comparable to one another. These are subgraphs wherein the nodes will not be related by any dominance relation. We use networkx to establish the related elements 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 (related elements)
elements = listing(nx.connected_components(G_undirected))
# We filter solely clusters with a minimum of 3 parts
clusters = [c for c in components if len(c) >= 3]
print(f"Variety of non-comparable wine clusters (≥3 items): {len(clusters)}")
print("Cluster instance (as much as 3)):")
for c in clusters[:3]:
print(sorted(c))
>>>
Variety of non-comparable wine clusters (≥3 items): 1
Cluster instance (as much as 3)):
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...]
These teams characterize areas of multidimensional house wherein items are equal when it comes to dominance: there is no such thing as a goal approach to say that one wine is “higher” than one other, except we introduce an exterior criterion.
Hasse diagram with deal with 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 may select certainly one of these based mostly 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 exhibits that neither wine is superior on all dimensions. If we used an combination index (corresponding to a median), one of many two can be artificially declared “higher”, erasing the details about the battle between dimensions.
Chart interpretation
You will need to know {that a} POSET is a descriptive, not a prescriptive, device. It doesn’t counsel an computerized resolution, however somewhat makes express the construction of the relationships between alternate options. Instances of incomparability will not be a restrict, however a function of the system: they characterize reputable uncertainty, plurality of standards and number of options.
In decision-making areas (coverage, multi-objective choice, comparative analysis), this interpretation promotes transparency and duty of selections, avoiding simplified and arbitrary rankings.
Execs and Cons of POSETs
The POSET strategy has numerous necessary benefits over conventional artificial indices, however it’s not with out limitations. Understanding these is crucial to deciding when to undertake a partial ordering in multidimensional evaluation initiatives.
Execs
- 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’s superiority on all dimensions. This avoids pressured comparisons between parts that excel in several points.
- Robustness: Conclusions are much less delicate to knowledge scale or transformation, supplied that the relative ordering of variables is maintained.
- Figuring out non-dominated options: Maximal nodes within the graph characterize Pareto-optimal selections, helpful in multi-objective decision-making contexts.
- Making incomparability express: Partial sorting makes trade-offs seen and promotes a extra real looking analysis of alternate options.
Cons
- No single rating: In some contexts (e.g., competitions, rankings), a complete ordering is required. POSET doesn’t mechanically present a winner.
- Computational complexity: For very massive datasets, dominance matrix development and transitive discount can develop into costly.
- Communication challenges: for non-expert customers, decoding a Hasse graph could also be much less instant than a numerical rating.
- Dependence on preliminary selections: The collection of variables influences the construction of the type. An unbalanced selection can masks or exaggerate the incomparability.
Conclusions
The POSET strategy affords a robust various perspective for the evaluation of multidimensional knowledge, avoiding the simplifications imposed by combination indices. As a substitute of forcing a complete ordering, POSETs protect data complexity, displaying clear instances of dominance and incomparability.
This technique is especially helpful when:
- indicators describe completely different and doubtlessly conflicting points (e.g. effectivity vs. fairness);
- you need to discover non-dominated options, in a Pareto perspective;
- it’s essential guarantee transparency within the decision-making course of.
Nonetheless, it’s not all the time the only option. In contexts the place a novel rating or automated selections are required, it could be much less sensible.
The usage of POSETs needs to be thought of as an exploratory part or complementary device to aggregative strategies, to establish ambiguities, non-comparable clusters, and equal alternate options.