Next Article in Journal
DNO-RL: A Reinforcement-Learning-Based Approach to Dynamic Noise Optimization for Differential Privacy
Previous Article in Journal
Towards a Trustworthy Rental Market: A Blockchain-Based Housing System Architecture
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A Clustering Method for Product Cannibalization Detection Using Price Effect

Indepedent Researcher, New York, NY 10016, USA
Electronics 2025, 14(15), 3120; https://doi.org/10.3390/electronics14153120
Submission received: 3 May 2025 / Revised: 27 June 2025 / Accepted: 28 June 2025 / Published: 5 August 2025

Abstract

In marketing science, product categorization using cannibalization relationship data is an emerging but still underdeveloped area, where clustering using price effect information is a novel direction that is worth further exploration. In this study, by assuming a realistic modeling of the cross-price effect, we developed and experimentally validated with simulations an agglomerative clustering algorithm that outputs clustering results closer to the ground truth compared with other agglomerative algorithms based on traditional cluster linkages.

1. Introduction

Product classification or categorization is the process of assigning a set of labels from a product hierarchy to a specific product [1]. It plays a fundamental role in retail and marketing decision making, underpinning a wide range of operational and strategic decisions such as inventory planning, pricing, shelf placement, and targeted advertising [2], and is thus a critical area of study in retail and marketing science. Accurate product categorization enables retailers to improve inventory management, optimize shelf placement, and develop effective pricing models. In marketing science, it plays a significant role in facilitating targeted advertising, personalizing customer recommendations, and enhancing the overall customer experience [2]. Furthermore, product categorization supports market segmentation, aids in understanding consumer preferences, and helps to identify opportunities for the introduction of new products by revealing market gaps [3]. With the increasing complexity of retail environments driven by the growth of e-commerce and omnichannel strategies, the need for precise and automated product categorization has become increasingly important.
Product categorization is often achieved by exploring similarities among products, i.e., products are categorized based on similarities in their purposes, properties, brand, and price level. In addition, retail chains have vast quantities of market basket data, containing sets of items that a buyer acquires in one purchase, which can be used efficiently in product categorization [4]. Another important yet not fully studied angle is the exploration of the interactions and connections among products, with product cannibalization or substitution being a typical example. Cannibalization is the phenomenon that occurs when several products of the same brand compete for customer demand, negatively impacting each other’s sales [5]; it can thus can erode the profit margins of existing products, leading to a net loss despite the success of a new product [6].
Considering cannibalization in production categorization is crucial to developing various market strategies. For example, studying product attributes in a group/category displaying the cannibalization effect can provide insights into the development of new products, as new products that have attributes which greatly overlap with those of the products in such a group are at risk of cannibalization. Another application of product categorization with cannibalization is that it provides a simple yet insightful way to examine the impact of changing the prices of one or several products on the demand for other products. For such an experiment, we only need to examine products in the same group or category to quickly assess potential impact on other products. Moreover, the above market strategy development process cannot be directly realized through production categorization based on similarities.
There are various ways to detect cannibalization. One method, which is conceptually close to product categorization using similarity, is the exploration of the attribute proximity of products. Naturally, products with similar functions, appearances, and characteristics may provide the same or similar utility, which leads to cannibalization. However, product cannibalization can be challenging to identify using these features in many situations. First, we may want to quantitatively understand the cannibalization, but the simple observation of product attributes, which are usually qualitative rather than quantitative, cannot reveal quantitative insights. Second, there are also some situations in which determining cannibalization is not straightforward. For example, let us consider clothes with different designs: a blue-striped shirt and a solid black shirt. Is the cannibalization interaction between them strong, weak, or non-existent? Such questions cannot be answered by simply inspecting the product characteristics; a data-driven approach is needed.
Another commonly used method for quantitatively defining cannibalization, which is also the main focus of this study, is cross-price effect analysis. The cross-price elasticity of demand measures how the quantity demanded of one product changes in response to a change in the price of another product. A positive price effect of product A on the demand for product B indicates cannibalization between A and B: the price increase in product A leads people to buy more B, indicating that B is a potential substitute for A. On the other hand, a zero or negative price effect of product A on the demand for product B implies that there exists little cannibalization between the two products.
In summary, products can be categorized by exploring their similarities or interactions, and the latter is of practical importance and the main focus of this study. In particular, we examine the relevance of the exploration of price effect information when categorizing products by using cannibalization.
With price effect information available, an effective clustering algorithm is necessary for product categorization. Developing such an algorithm is the main goal of this study. To narrow down the scope of this task and make it more specific, we introduce the following assumptions about the price effect.
Assumption 1.
There is a partition (clustering) of products so that for any product, the following hold:
  • Its price effect on the products that belong to the same cluster is generally stronger than the positive price effect from different clusters.
  • The price effect it receives from the products that belong to the same cluster is generally stronger than the effects it receives from the products of other clusters.
Based on the above assumptions, we use agglomerative clustering to recover the true cannibalization group by using price effect information. The challenge lies in the following: Under various uncertainties and disturbances, how can we recover the true group as much as possible? As described in detail in the following sections, we further narrow down our discussion to the case where the cross-price effect (i.e., the price effect of product A on the sales of product B) can be modeled as the sum of two random components: the ability of product A’s price to impact other products and the tendency of the sales of product B to be affected by price changes in other products.
In traditional agglomerative clustering algorithms, measures of dissimilarity between clusters of observations and of the similarity of observations within one cluster are often required to decide which clusters should be combined. In most methods of hierarchical clustering, this is achieved by using an appropriate distance, such as the Euclidean distance, between single observations of the dataset, and a linkage criterion, which specifies the dissimilarity of sets as a function of the pairwise distances of observations in the sets. In traditional agglomerative algorithms, pairwise measurements are summed up as overall metrics. As illustrated in the main text, a conventional approach that treats pairwise measurements equally is not effective, so better metrics need to be designed. Additionally, potential uncertainty needs to be considered to prevent algorithm performance from being compromised by such noise.
To address these issues, this study presents an agglomerative clustering algorithm with a ’clustering metric’ that captures the connections between each product and other products within a single cluster and treats positive and negative price effects separately. These features lead to better clustering performance than other candidate algorithms, which are studied in detail through numerical experiments in this study. To the best of our understanding, this is the first study to carefully and systematically address the challenges in using price information to achieve high-accuracy clustering.
The main contribution of this study is twofold. First, while prior research on product categorization has primarily relied on intrinsic product features (e.g., text, images, and taxonomy), we use price-based behavioral data—specifically, cross-price elasticity—to infer substitution and cannibalization among products. This allows us to establish a data-driven clustering framework grounded in consumer substitution behavior. Second, we propose a novel family of clustering metrics tailored for use with price effect matrices. These metrics are designed to be robust against estimation noise and allow for the more accurate recovery of latent product groups under realistic modeling assumptions. To the best of our knowledge, this is the first study to systematically integrate cross-price elasticity modeling with hierarchical clustering for product categorization and validate the proposed approach through controlled numerical simulations.
This paper is organized as follows: In Section 2, we present the relevant literature. In Section 3, we detail the modeling of the cross-price effect and the goal of clustering and, in Section 4, the proposed algorithms, as well as other algorithms for comparison. In Section 5, we present numerical experiment results, along with insights into the performance of the proposed algorithm, and in Section 6, robustness checks are reported. In Section 7, we present the conclusions and discuss potential future research directions.

2. Literature Review

This study contributes to the intersection of three key research areas: (1) machine learning techniques for product categorization, (2) empirical and theoretical studies on product cannibalization and substitution, and (3) clustering algorithms—particularly hierarchical agglomerative clustering. Below, we outline relevant works in each area and explain their connections to the present research study.

2.1. Machine Learning for Product Categorization

The use of machine learning to enhance product categorization has gained momentum with the expansion of e-commerce and the growth of large-scale retail datasets. Existing studies primarily focus on utilizing product attributes, including textual descriptions, images, and metadata, to enhance the shopping experience. For example, Ref. [7] presents a machine learning framework for product matching and categorization, addressing challenges in organizing products according to a taxonomy. Ref. [8] proposed a multi-level deep learning approach to categorizing e-commerce products, combining machine learning, deep learning, and natural language processing techniques. Ref. [1] explored the automation of product categorization using machine learning algorithms, focusing on data from e-commerce sites. Ref. [9] compared the performance of different machine learning techniques on product categorization in the proposed framework by using AUROC. Ref. [10] presents new knowledge, research framework, machine learning classifier selection, and result analysis on product categorization, with implications for academia and some suggestions for business practitioners. In the context of the Economic Census, ref. [11] devised a strategy to automatically classify goods and services based on product information provided by the business. Ref. [12] used the widely utilized convolutional processing technique to extract the attribute information of products and proposed a method for classifying products based on the extracted feature vector.
However, these studies typically overlook dynamic demand-side interactions such as price competition or substitution. Our research study complements this line of work by proposing a method that clusters products based not on static product features but on observed cannibalization behavior inferred from price effects, which is a novel perspective in the product categorization literature.

2.2. Product Cannibalization and Substitution

Cannibalization has also been widely studied in marketing and retail analytics. There is extensive research on the detection of product cannibalization. For example, ref. [13] proposed to use causal inference to measure the impact of cannibalization due to promotions. Ref. [14] used multivariate Hawkes processes with inhibition to model and estimate cannibalization effects in wholesale data, offering a novel approach to understanding product interactions. Ref. [15] introduced a three-stage XGBoost algorithm designed to forecast sales while accounting for product cannibalization, providing both empirical evidence and theoretical analysis of its effectiveness. Ref. [16] investigated the demand response of a firm’s existing customers to retail store entry, as well as which aspects of the response are demand-expanding and which cannibalize online sales.
One way of identifying cannibalization is through cross-price sensitivity analysis. For example, ref. [17] proposed a method to estimate cross-price elasticity (which is crucial to understanding cannibalization effects among products) consisting of a zero-sum game framework, which aids in demand forecasting and price optimization. Ref. [18] examined the impact of price promotions on sales and cannibalization, using cross-price elasticity to understand how the promotional pricing of one product influences the demand for others within the same category. Ref. [19] introduced a framework that accommodates specific cross-category effects, in contrast to previous research on the decomposition of unit sales bumps due to price promotions that has considered these effects only within a single product category. Ref. [20] provides empirical generalizations regarding how the relative prices of competing brands affect the cross-price impact among them.
Compared with the previous literature, our work extends research in the field by focusing on how cross-price effects can be used not only to model demand but also to recover latent grouping structures among products—particularly clusters within which cannibalization is strong.

2.3. Clustering Algorithms

Our method builds on hierarchical agglomerative clustering, a family of algorithms widely used for unsupervised grouping tasks. For example, ref. [21] presents efficient algorithms for hierarchical agglomerative clustering, with a focus on practical implementations and performance improvements, and provides a comprehensive overview of modern approaches to agglomerative clustering, addressing computational challenges and proposing solutions. Ref. [22] introduced Ward’s method, an agglomerative clustering approach that minimizes the total within-cluster variance at each step. Ward’s method has become a cornerstone in hierarchical clustering due to its effectiveness in producing clusters with minimal variance. Ref. [23] developed a general theory for hierarchical clustering methods, introducing the Lance–Williams dissimilarity update formula, which provides a unified framework for various agglomerative clustering algorithms, including single-linkage, complete-linkage, and average-linkage clustering Ref. [24] offers an in-depth analysis of Ward’s method, discussing its clustering criterion and providing insights into its agglomerative algorithm; the authors also explore the method’s applicability and interpretability in various contexts.
Unlike conventional clustering linkage methods, our method introduces a new family of clustering metrics tailored for cross-price elasticity matrices which explicitly account for the asymmetric and directional nature of price effects and are robust to estimation noise. By customizing the linkage strategy to economic interaction data, our approach bridges clustering methodology with marketing theory.

3. Modeling the Cross-Price Effect

In this section, we outline the modeling setting for the cross-price effect and explain the theoretical justification behind it.
We use price elasticity to depict the price effect, which is a common practice in price effect modeling; see [25,26]. We denote the expected change in ln D i when ln P j changes by one unit by β i , j , where D i is the sales demand for product i and P j is the price of product j.
We assume the following data-generating process for β :
β i , j = r i , j + l j , i + ϵ i , j , G i = G j ϵ i , j , G i G j ,
r i H r ( θ G ) , θ G P r ,
l j H l ( α G ) , α G P l ,
ϵ i , j P ϵ
where P r , H r , P l , H l , and P ϵ are all distributions.
The data-generating process is described as follows: First, for each group G, parameters θ G and α G are drawn from P r and P l , respectively. Then, for each product i in group G, l i is drawn from H l ( α G ) , i.e., a distribution parameterized by α G , and indicates the ’overall’ degree to which the price of product i affects the demand for other products in the same group as i. Meanwhile, r i is drawn from H r ( θ G ) , i.e., a distribution parameterized by θ G , and indicates the ’overall’ degree to which the price of other products that are in the same group as i impacts the demand for product i. The price effect of product j on product i is assumed to be the sum of r i and l j , plus the error term ϵ i j , which comes from distribution P ϵ . The decomposition of β i , j into r i (price sensitivity of product i) and l j (influence of product j’s price) mirrors the logic of dyadic interaction models, which are common in social network analysis and trade flow modeling (e.g., gravity models). Similar decompositions are also found in collaborative filtering and recommendation systems, where a rating or interaction is expressed as a function of the sender’s and receiver’s latent traits. For example, in [27], the authors model ratings as a sum of user and item biases, which is conceptually identical to the procedure in this study. Similarly, in [28], when modeling users’ ratings of movies on a streaming website, the authors employ a modeling setting where ratings are the sum of user and movie traits, which is also conceptually close to the procedure in this study.
The hierarchical prior structure (drawing r i and l j from group-specific distributions H r ( θ G ) and H l ( α G ) , with hyperpriors on θ G and α G , respectively) allows statistical strength to be borrowed across products within a group, which improves estimation in sparse settings and is a standard technique in Bayesian hierarchical models [29]. This formulation captures realistic within-group heterogeneity while promoting coherence among related products. Such settings are used to capture the heterogeneity of price effects among the products within the same group.
For products i and j that are not in the same group, the price effect of j on i is only ϵ i , j . We assume that distribution P ϵ is symmetric, with the center (and mean) being zero. This is a reasonable and important assumption: for products outside the group, there can be positive and negative effects, but the expectation should be zero. This setting is conceptually close to the nested logit model [30], which is broadly used for modeling consumers’ demand. Nested logit models group alternatives into nests based on their perceived similarity or substitutability.
Given the generation process of the price effects (coefficient), the task is to cluster products based on these data. We aim to find an algorithm that produces clustering results as close as possible to the ground truth, i.e., where the clustering of products is as accurate as possible in reflecting the actual grouping of products.
Under fairly general and realistic settings, the cross-price effect can be estimated straightforwardly from data. Although this is not the focus of this study, one possible estimation strategy is outlined in Appendix A for readers’ reference.

4. Algorithms

In this section, we present the algorithms for our numerical study, which rely on agglomerative clustering, and explain the underlying justification. In agglomerative clustering, initially, each product forms its cluster and, at each step, we evaluate all possible cluster pairs for merging, identify the pair that yields the most significant improvement in the clustering metric, and merge it; after each merge, we reassess all potential merges to find the optimal one and proceed accordingly, and this process continues until no further improvement in the clustering metric can be achieved.
In traditional agglomerative clustering, the algorithm merges the two most similar clusters at each step based on a chosen distance metric and linkage criterion, and this process continues until all data points are combined into a single cluster or a stopping criterion is met.
We first present the algorithms used for comparison with the proposed algorithm in the pseudo-code in Block 1.
Block 1: Algorithm q, q = 1 , 2 , 3 , 4
Require: Price effect matrix
Ensure: C
  Initialization: Each C i P i , for  i = 1 , , N
  while true do
     b e s t _ m e r g e ( )
     b e s t _ i m p r o v e m e n t 0
     i s _ i m p r o v e d 0
    for all  k k in c l u s t e r s _ i n d e x  do
         t e m p ω q ( ( C k , k , C k C k ) ) ω q ( ( C k , k , C k , C k ) )
        if  t e m p > b e s t _ i m p r o v e m e n t  then
            b e s t _ m e r g e ( C k , C k )
            b e s t _ i m p r o v e m e n t t e m p
            i s _ i m p r o v e d 1
        end if
    end for
    if  i s _ i m p r o v e d = 1  then
         C merge ( C , b e s t _ m e r g e )
        update c l u s t e r _ i n d e x
        continue
    else
        break
    end if
end while
In the above, C = ( C 1 , . . . , C K ) represents the clustering results, i.e., the assignment of each product to a cluster. The metrics are defined as ( q = 1 , 2 , 3 , 4 ).
ω 1 ( C ) = N k i j , i , j C k β ( i , j ) N k ( N k 1 ) k N k
ω 2 ( C ) = N k i j , i , j C k β ( i , j ) N k k N k
ω 3 ( C ) = N k i j , i , j C k β ( i , j ) 1 ( β ( i , j ) > 0 ) m a x η , i j , i , j C k | β ( i , j ) | 1 ( β ( i , j ) 0 ) k N k
ω 4 ( C ) = k N k 1 2 N k i j i , i , j C k β ( i , j ) 1 ( β ( i , j ) > 0 ) max ( η , j i , i , j C k | β ( i , j ) | 1 ( β ( i , j ) 0 ) ) k N k + k N k 1 2 N k j i i , i , j C k β ( j , i ) 1 ( β ( j , i ) > 0 ) max ( η , i j , i , j C k | β ( j , i ) | 1 ( β ( j , i ) 0 ) ) k N k
where N k is the group size, i.e., the number of products in cluster k.
It can be inferred from the expression that ω 1 computes the per-element average value of the coefficients of each group, and a weighted average of such average values is calculated, with the weight being the group size. This idea is similar to the concept of unweighted average-linkage clustering in the traditional hierarchical clustering approach, where the simple average of the elementwise distances between two groups is computed.
ω 2 computes the per-product average value of the coefficients. It is similar to ω 1 , except that ω 1 considers the overall simple average of the price effect based on clustering. As will be explained in detail in the following sections, the theoretical purpose of constructing this clustering metric is to promote clustering.
The reason for studying ω 1 and ω 2 is that they serve as benchmark methods. They apply straightforward average- and sum-based clustering metrics, respectively, using the positive coefficients of the price effect matrix. These represent natural extensions of conventional linkage criteria (e.g., average linkage) for the price effect setting and help isolate the performance gains attributable to more advanced metrics.
ω 3 for the entire coefficient matrix of a cluster computes the sum of the positive coefficients, divided by the larger value of a constant, and the sum of the absolute value of the negative coefficients. The theoretical purpose of this metric is to penalize the behavior of putting the wrong product into the group. When a product has zero or negative coefficients, its impact will be effectively reflected in the denominator, thereby reducing the metric. The reason for studying this metric is that it reflects an intermediate step toward the final proposed algorithm (Algorithm 4) and highlights the limitations of Algorithms 1 and 2. The advantage of Algorithm 3 over Algorithms 1 and 2 is further illustrated in Section 5.2.1.
There is a constant, η , in the expression of ω 3 , which has a twofold purpose: On one hand, setting this constant allows the expression to be still well defined when i j , i , j C k | β ( i , j ) | 1 ( β ( i , j ) 0 ) is zero. On the other hand, η controls the tolerance of the algorithm for negative coefficients, where a large η enhances tolerance, which promotes merging even when the merge may bring many negative coefficients, while a small η decreases tolerance but also makes the algorithm more unstable; when the sum of the absolute value of negative coefficients, i.e., the denominator, is small, a small increase in this denominator due to a merge can induce large changes in the value of the metric. In Section 6, part of the analysis is dedicated to the study of the implications of using this parameter.
As will be explained in detail, one potential problem with ω 3 is that its value is easily affected by some small negative coefficients, making it less robust and stable. To overcome this problem, we propose ω 4 , which is defined as follows: In each cluster, for each column and row of the price coefficient matrix, ω 4 computes the sum of the positive coefficients divided by the sum of the absolute values of the negative coefficients; it then takes the average over these values. In other words, instead of summarizing all the positive and negative coefficients in price information matrix β , we individually consider each product’s positive and negative comparisons. The primary purpose of this is stabilization: a single negative coefficient does not affect the entire metric; instead, it only impacts the value of a certain row/column. The advantage of Algorithm 4 over Algorithm 3 is verified in Section 5.2.2 with a numerical experiment.
Therefore, we study four algorithms, Algorithms 1–4, as illustrated in Block 1, which differ in the clustering metrics used. Algorithm 4 is the algorithm proposed in this study, and all these algorithms have a computational complexity of O ( N 3 ) . The comparison of these four algorithms provides insights for understanding the trade-offs among simplicity, robustness, and clustering accuracy under varying data quality. This step-by-step design also supports transparency and interpretability of our methodological progression.
In summary, the methodological contribution of this study lies in the design of a new family of clustering metrics that adapt agglomerative hierarchical clustering for use with asymmetric, directional economic data such as cross-price elasticity. Unlike traditional linkage criteria (e.g., average and complete linkage, and Ward’s method), our metrics are specifically tailored to handle the positive and negative components of price effects in a structured way, allowing the algorithm to distinguish between substitutable and non-substitutable product pairs. These metrics incorporate both the strength and directionality of cross-price effects and include mechanisms to penalize merging when negative spillover effects dominate. The metrics are formulated in a way that enhances robustness to estimation errors—a critical consideration when inferring price effects from noisy real-world data. Therefore, this constitutes a methodological contribution in the domain of customized clustering for economic interaction data.

5. Simulation Study

5.1. Parameter Setting

In this section, we present a numerical experiment to compare the algorithms presented in the previous sections. In this numerical study, we parameterize the model of cross-price effect as
r i N ( θ G i , τ r ) , θ G i N ( μ r , σ r 2 ) ,
l i N ( α G i , τ l ) , α G i N ( μ l , σ l 2 ) ,
ϵ i , j N ( μ ϵ , σ ϵ 2 ) ,
where the parameter values are set as follows:
μ r = 1 , σ r 2 = 0.2 , τ r 2 = 0.2 , μ l = 1 , σ l 2 = 0.2 , τ l 2 = 0.2
In our numerical experiments, we consider eight groups, with each containing 10 products. (In Section 6, an experiment where we assume that the number of products in each group in the ground truth is different is also presented.)
We run each algorithm multiple times and calculate the average of the results, as we will discuss in detail in the next section. To evaluate the clustering results, we use the ARI and NMA indices. We denote the partition of products in the ground truth by G and that output by the clustering algorithm by C. ARI is defined as
ARI = i j n i j 2 i g i 2 j c j 2 / n 2 1 2 i g i 2 + j c j 2 i g i 2 j g j 2 / n 2 ,
where n i j is the number of elements common to cluster i in partition G and cluster j in partition C, g i is the number of elements in cluster i in partition G, and c j is the number of elements in cluster j in partition C.
The ARI index takes values in the range [ 1 , 1 ] , with 1 indicating perfect agreement between the two clusterings and 0 indicating that agreement is no better than random chance. ARI can also take negative values, indicating disagreement between the clusterings, i.e., the overlap is less than that expected by random chance.
The definition of Normalized Mutual Information (NMI) is as follows:
NMI = 2 · I ( G , C ) H ( G ) + H ( C ) ,
where I ( G , C ) is the mutual information between partitions A and B, defined as
I ( G , C ) = i j P ( i , j ) log P ( i , j ) P ( i ) P ( j ) .
H ( G ) is the entropy of partition G, defined as
H ( G ) = i P ( i ) log P ( i ) .
P ( i , j ) is the joint probability of an element being in cluster i in G and cluster j in C, P ( i ) is the marginal probability of an element being in cluster i in G, and P ( j ) is the marginal probability of an element being in cluster j in C.
NMI takes values in the range [ 0 , 1 ] , with 1 being perfect agreement (the clusterings are identical) and 0 indicating that there is no mutual information between the clusterings (completely independent clusterings).

5.2. Numerical Results

In this section, we present numerical studies to examine the results of Algorithms 1–4 and highlight the primary advantages of Algorithm 4.

5.2.1. Algorithm 1 and 2 vs. Algorithm 3: Effective Summary of Positive and Negative Coefficients

In this section, we compare the results of Algorithm 1, 2, and 3, to highlight the advantage of Algorithm 3, and explain the underlying intuition.
As shown in Table 1, Algorithms 1 and 2 achieved very low scores. A closer examination of the results is shown in Figure 1a, where each color represents a group in the ground truth, the left axis represents the clustering results, and the bars with stacked colors indicate that the clustering algorithm put products from different groups into the same cluster. It can be seen that, under Algorithm 1, the final number of clusters is half the number of products, with each cluster containing only two products; this indicates that Algorithm 1 stopped merging after the first round of the merging process. This is intuitive: In the first round, the algorithm attempts to merge the parts of the products that can increase overall performance to the greatest extent. This means that in the later stage of merging, the possible merging options are, at most, second-best—they cannot achieve a higher average coefficient than that of the merges of the first round. As a result, Algorithm 1 stops merging after the first round.
To illustrate this, we consider two hypothetical clusters, ( X , Y ) and ( Z , U ) . Merging these two clusters generates new coefficients: β X Z , β Z X , β X U , β U X , β Y Z , β Z Y , β Y U , and β U Y . However, according to the algorithm, we have the following relationships:
ω 1 ( C 1 ) β X Y + β Y X 2 > β X Z , β Z X 2 ,
ω 1 ( C 1 ) > β Y Z + β Z Y 2 ,
ω 1 ( C 1 ) > β X U + β U X 2 ,
ω 1 ( C 1 ) > β Y U + β U Y 2 .
Hence,
ω 1 ( C 1 C 2 ) β X Z + β Z X + β X U + β U X + β Y Z + β Z Y + β Y U + β U Y 8
< = max β X Z + β Z X 2 , β Y Z + β Z Y 2 , β X U + β U X 2 , β Y U + β Z U ) 2
< ω 1 ( C 1 ) .
Similarly, we have
ω 1 ( C 1 C 2 ) < ω 1 ( C 2 ) , Q . E . D .
A close examination of the results (Figure 1b) shows that Algorithm 2, on the other hand, tends to merge all products without any discrimination, because it aims to maximize the sum of the price coefficients. Due to our model setting, the price effect for products from different groups follows a distribution with a mean of 0. Let us suppose that we have a cluster containing products that come from the same group; we then merge this cluster with a single product. We aim to identify a product that, when combined with the cluster, can maximize the clustering metric. Merging generates new price effect coefficients, and according to our setting, if this single product comes from a different group in the ground truth, such new coefficients have a mean of zero, so their sum should be close to zero; however, due to uncertainty, we may find a single product for which the sum of the new coefficients is larger than zero. According to the algorithm, we select the product with the most significant sum of new coefficients and merge it with the cluster, denoting this product by X. After this merge, the cluster now includes X, which promotes further merging between this cluster and any single product that belongs to the same group as X. This is because if we merge this cluster with a product Y that belongs to the same group as X in the ground truth, we will probably introduce positive coefficients β X , Y and β Y , X (since X and Y are in the same group). Since the coefficient between Y and other products in the cluster other than X has an expected value of 0, it will generally increase the clustering metrics by emerging this cluster and Y. Such a procedure is repeated until we eventually obtain one large cluster that includes products from different groups in the ground truth.
On the other hand, Algorithm 3, whose results are illustrated in Figure 2a, balances these two simple algorithms: it promotes merging while also trying to prevent unnecessary merging. Specifically, it enables consistent merging because the nominator computes the sum of the positive coefficients, not the average, which leads the nominator to increase if the merge generates new positive coefficients. The algorithm simultaneously prevents unnecessary merging by putting the negative coefficient in the denominator, which is a more efficient penalty than the simple average or sum, making the algorithm sensitive to the inclusion of too many negative coefficients.

5.2.2. Algorithm 3 vs. 4: Summary over the Entire Coefficient Matrix vs. Summary by Column/Row

The performance of Algorithm 3 can be unsatisfactory under high variance of the error terms, as indicated by the results in Table 1. To achieve better performance, we consider Algorithm 4, which utilizes clustering based on the metric ω 4 . The difference between ω 3 and ω 4 is that in the former metric, for each cluster, we compute the sum of the transformed positive coefficients divided by the sum of the transformed absolute negative coefficients for the entire price coefficient matrix of the products in the cluster, while in the latter, we independently compute the sum for each row and column of the price effect matrix and then calculate the simple average over these values.
Table 1 shows that the performance of Algorithm 4 is significantly higher than that of Algorithm 3. A closer inspection of the clustering results, as shown in Figure 2a, reveals that Algorithm 3 tends to place products that belong to the same group into different clusters, while some clusters contain products from different groups. In contrast, such misclassification occurs much less frequently in Algorithm 4, as shown in Figure 2b.
This is because Algorithm 3 is highly sensitive to negative values: it computes the total sum of the positive coefficients and divides it by the total sum of the absolute values of the negative coefficients. Consider a situation where cluster A has few negative values in the price coefficient matrix, and so does cluster B; in other words, the denominators are very small when computing the metric for clusters A and B. We then merge A and B, which introduces several more negative coefficients. This means that the metrics of the merged cluster can be significantly lower than those of A and B due to an increase in the denominator, despite a possible increase in the numerator. Therefore, Algorithm 3 will avoid merging clusters in such cases, especially when each cluster already has a high ratio of positive values in its coefficient matrix.
Table 2 provides an example for illustration. Clusters A and B have few negative price effects in the price matrix, and when they are combined into one cluster, new coefficients are introduced into the price coefficient matrix, as highlighted in green; most of them are positive, with a few being negative. The new negative coefficients significantly increase the denominator, resulting in a smaller metric in the combined cluster than in A and B, and as a result, no further merges will be performed.
How is this related to the final clustering results of Algorithm 3? During the later stage of clustering, this tendency of rejecting merges intensifies, i.e., it will become increasingly difficult for an existing large cluster to incorporate additional products. As a result, those single products or small clusters (with only a few products) that have not yet been merged have a higher probability of being merged. In this case, the algorithm will instead find it relatively easier to merge some single products or some clusters with a small number of products, even if they come from different groups in the ground truth. This results in some clusters containing products from different groups, as illustrated in Figure 2a.
Clustering Algorithm 4, conversely, can be more robust against the impact of such occasionally negative price coefficients, because it calculates the metrics for each row and column of the price effect matrix and then takes the average. Even if there are more negative price coefficients, they will impact only certain rows/columns but will not exert a global effect. Therefore, the merge process will continue, even if it introduces a few negative price coefficients.

6. Robustness Check

To ensure the reliability and generalizability of the proposed clustering algorithm, in this section, we present robustness checks under varying model assumptions and data conditions. Specifically, we examine the sensitivity of clustering performance to changes in the noise level of the price effect, specific algorithm parameters, and alternative configurations of product group structures.

6.1. Alternative Error Distribution

In this section, we present the results of clustering when the data are generated from t-distributions, instead of normal distributions. The purpose of this exercise is to test the conclusion of the previous section under the condition that the error distribution is non-Gaussian. To be specific, we consider the following model of price effects:
r i μ G i ( r ) + σ r · t ν , μ G i ( r ) 1 + σ μ r · t ν
l i α G i ( l ) + σ l · t ν , α G i ( l ) 1 + σ μ l · t ν
ϵ i , j σ ϵ · t ν
γ i , j = r i + l j + ϵ i , j
where ν = 5 , σ r = 0.2 , σ l = 0.2 , σ μ r = 0.2 , σ μ l = 0.2 , and σ ϵ = 0.5 .
Table 3 summarizes the main results, which show that the conclusion still holds under the t-distribution: Algorithm 4 still reaches the highest performance among the four algorithms.

6.2. Alternative η

In Algorithms 3 and 4, there is a parameter η . In this section, we investigate the implications of using this parameter.
Table 4 indicates that as η increases, for both Algorithms 3 and 4, the performance first improves and then deteriorates. More interestingly, as η increases, the performance of Algorithm 4 deteriorates faster than that of Algorithm 3. The reason is intuitive: the larger η is, the less likely the algorithm is to penalize the merge that introduces negative price effect values. Let us recall that, compared with Algorithm 3, where the sum of the positive coefficients divided by the sum of the absolute values of the negative coefficients is relative to the whole price coefficient matrix, in Algorithm 4, this is calculated for each column and row. As a result, compared with Algorithm 3, Algorithm 4 is more likely to have η as the denominator, meaning that the penalty for the negative price effect vanishes faster than in Algorithm 3.
This suggests that the choice of η is a non-trivial task in this clustering procedure. Although this study does not explore the optimal setting of η , in real applications, it is recommended to test various values of this parameter, observe the clustering results, and ask experts for their opinion to determine the best η .

6.3. Alternative Data-Generating Process

In this section, we also consider the case where the ground truth indicates that the number of products in each group differs. We assume that for each group, the number of products is randomly chosen from 5 to 16. Table 5 indicates that the conclusion does not change—Algorithm 4 still outperforms the other algorithms.

7. Discussions and Future Research Directions

This study introduces a new agglomerative algorithm that effectively utilizes price effect data to cluster products into distinct groups, where products within each group can be subject to cannibalization. Through a numerical experiment using simulated data, we compared the clustering performance of the proposed algorithm with that of other algorithms, highlighting the effectiveness of the former in capturing the underlying product cannibalization structure.
For the proper application of the proposed method, first, the number of products should not be too large, as agglomerative methods are more commonly used due to their simplicity and computational efficiency for small- to medium-sized datasets. Second, the cross-price effect should be estimated from the data. Appendix A provides a possible estimating strategy and the conditions needed for obtaining a valid estimate.
Several limitations of this study should be acknowledged. First, the analysis is based entirely on simulated data under idealized assumptions. While the simulation is designed to mimic realistic market behavior, it may not capture all the complexities of real-world demand systems, such as dynamic pricing, unobserved heterogeneity, or promotional influences. Moreover, the proposed algorithm assumes that cross-price elasticity is either known or can be estimated with sufficient accuracy, but in practice, estimating cross-price elasticity can be challenging due to data limitations and issues with model specification. Future studies could thus explore the integration of the clustering algorithm with the model estimation process itself; rather than assuming cross-price elasticity to be known, one could investigate how different estimation techniques affect clustering performance and how the algorithm can adaptively respond to estimation uncertainty. On the other hand, applying the method to real-world retail data and comparing results with expert-defined categories or purchase behavior would help validate the algorithm’s practical utility. Such empirical validation would also verify whether the assumptions made in the simulation setting hold in practice.
Second, the computational complexity of the proposed agglomerative approach increases cubically with the number of products, which may limit its scalability to very large product catalogs. Table 6 shows that when the number of products is large, the implementation of this algorithm is time-consuming. Future work could explore approximations or parallelization techniques to reduce the computational burden and enhance the algorithm’s applicability to large-scale retail datasets.
Third, the algorithm proposed in this study does not provide quantification for uncertainty. Thus, a promising direction is to develop a probabilistic version of the proposed algorithm. For instance, instead of deterministically merging clusters based on a hard metric, one could assign merging probabilities and generate a distribution over possible clusterings; this would enable the quantification of uncertainty and facilitate a robustness analysis of the clustering results.
Finally, another interesting future direction is to consider product clustering using not a single price effect but a vector of price effects; for example, the price effect of product i on product j may vary by season/period/region, so it would be better to use a vector of price effects where each represents the price effect for a certain season/period/region. In this case, the features used for clustering may be of high dimension, and deep clustering techniques [31,32] could be utilized to learn the representation of features during the hierarchical clustering process.

Funding

This research study received no external funding.

Data Availability Statement

Data were generated using code, which can be made available upon request.

Conflicts of Interest

The author declares no conflicts of interest.

Appendix A

In this section, we provide a brief explanation of one possible setting for estimating the cross-price effect. The demand for product i can be depicted as the following simple linear model:
ln D i , t = γ i + j β i , j ln P j , t + e i , t
where e i , t is a random error term and γ i is a product-specific constant term. This equation describes the logarithm of demand as a linear combination of the logarithm of the price of all products. We impose the following assumptions:
  • ln P i , t and ln P j , t are independent, t .
  • e i , t is independent of ln P i , t , t , i .
The first assumption is that the prices of different products are independent of each other, while the second one is that given the product-specific constant term, the error terms are independent of the prices.
Under these assumptions, we immediately have
β i , j = C o v ( ln D i , t , ln P j , t ) V a r ( ln P j , t ) ,
which can be easily estimated from the data. The expression also implicitly requires that for each product, there must be some changes in each price in the time-series data.

References

  1. Sushant, S.; Lin, I. Applying Machine Learning to Product Categorization; Department of Computer Science, Stanford University: Stanford, CA, USA, 2011. [Google Scholar]
  2. Barbara, L.; Barsalou, L.W.; Joiner, C. Categorization theory and research in consumer psychology. In Handbook of Consumer Psychology; Taylor & Francis: Abingdon, UK, 2008; pp. 133–165. [Google Scholar]
  3. Srinivasan, R.; Shocker, A.D. Substitution in use and the role of usage context in product category structures. J. Mark. Res. 1991, 28, 281–295. [Google Scholar]
  4. Holý, V.; Sokol, O.; Černý, M. Clustering retail products based on customer behaviour. Appl. Soft Comput. 2017, 60, 752–762. [Google Scholar] [CrossRef]
  5. Mason, C.H.; Milne, G.R. An Approach for Identifying Cannibalization within Product Line Extensions and Multibrand Strategi. J. Bus. Res. 2013, 31, 163–170. [Google Scholar] [CrossRef]
  6. Sridhar, M.K.; Png, I.P.L. Market segmentation, cannibalization, and the timing of product introductions. Manag. Sci. 1992, 38, 345–359. [Google Scholar] [CrossRef]
  7. Ristoski, P.; Petrovski, P.; Mika, P.; Paulheim, H.; D’aMato, C. A machine learning approach for product matching and categorization. Semantic Web 2018, 9, 707–728. [Google Scholar] [CrossRef]
  8. Yu, W.; Sun, Z.; Liu, H.; Li, Z.; Zheng, Z. Multi-level Deep Learning based e-Commerce Product Categorization. In Proceedings of the SIGIR 2018 Workshop on eCommerce Co-Located with the 41st International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR 2018), eCOM@ SIGIR, Ann Arbor, MI, USA, 12 July 2018. [Google Scholar]
  9. Chanawee, C.; Pasupa, K.; Hardoon, D.R. A comparative study of machine learning techniques for automatic product categorisation. In Proceedings of the Advances in Neural Networks-ISNN 2017: 14th International Symposium, ISNN 2017, Sapporo, Hakodate, Muroran, Hokkaido, Japan, 21–26 June 2017; Part I. Springer International Publishing: Cham, Switzerland, 2017. [Google Scholar]
  10. Pawłowski, M. Machine learning based product classification for ecommerce. J. Comput. Inf. Syst. 2022, 62, 730–739. [Google Scholar] [CrossRef]
  11. Roberson, A. Applying machine learning for automatic product categorization. J. Off. Stat. 2021, 37, 395–410. [Google Scholar] [CrossRef]
  12. Sakamaki, Y. A Study on Product Categorization Using Machine Learning Clustering of Image Data Using Convolutional Processing. J. Data Sci. Mod. Tech. 2022, 1, 1–18. [Google Scholar] [CrossRef]
  13. Aguilar-Palacios, C.; Munoz-Romero, S.; Rojo-Alvarez, J.L. Causal quantification of cannibalization during promotional sales in grocery retail. IEEE Access 2021, 9, 34078–34089. [Google Scholar] [CrossRef]
  14. Isabella, D.; Ross, G.J. Estimating Product Cannibalisation in Wholesale using Multivariate Hawkes Processes with Inhibition. arXiv 2022, arXiv:2201.05009. [Google Scholar]
  15. Gautham, B.; Bari, M. An XGBoost-Based Forecasting Framework for Product Cannibalization. arXiv 2021, arXiv:2111.12680. [Google Scholar]
  16. Shriver, S.K.; Bollinger, B. Demand expansion and cannibalization effects from retail store entry: A structural analysis of multichannel demand. Manag. Sci. 2022, 68, 8829–8856. [Google Scholar] [CrossRef]
  17. DalleMule, L.; Greene, M.; Berman, S. A zero-sum game approach for estimating cross-elasticity price effects. J. Revenue Pricing Manag. 2012, 11, 355–363. [Google Scholar] [CrossRef]
  18. Phumchusri, N.; Chewcharat, T.; Kanokpongsakorn, S. Price promotion optimization model for multiperiod planning: A case study of beauty category products sold in a convenience store chain. J. Revenue Pricing Manag. 2024, 23, 164–178. [Google Scholar] [CrossRef]
  19. Leeflang, P.S.; Selva, J.P.; Van Dijk, A.; Wittink, D.R. Decomposing the sales promotion bump accounting for cross-category effects. Int. J. Res. Mark. 2008, 25, 201–214. [Google Scholar] [CrossRef]
  20. Sethuraman, R.; Srinivasan, V.; Kim, D. Asymmetric and neighborhood cross-price effects: Some empirical generalizations. Mark. Sci. 1999, 18, 23–41. [Google Scholar] [CrossRef]
  21. Daniel, M. Modern hierarchical, agglomerative clustering algorithms. arXiv 2011, arXiv:1109.2378. [Google Scholar]
  22. Ward, J.H., Jr. Hierarchical grouping to optimize an objective function. J. Am. Stat. Assoc. 1963, 58, 236–244. [Google Scholar] [CrossRef]
  23. Lance, G.N.; Williams, W.T. A general theory of classificatory sorting strategies: 1. Hierarchical systems. Comput. J. 1967, 9, 373–380. [Google Scholar] [CrossRef]
  24. Murtagh, F. Ward’s Hierarchical Clustering Method: Clustering Criterion and Agglomerative Algorithm. arXiv 2011, arXiv:1111.6285. [Google Scholar]
  25. Bajari, P.; Nekipelov, D.; Ryan, S.P.; Yang, M. Machine learning methods for demand estimation. Am. Econ. Rev. 2015, 105, 481–485. [Google Scholar] [CrossRef]
  26. Allenby, G.M.; Rossi, P.E. Marketing models of consumer heterogeneity. J. Econ. 1998, 89, 57–78. [Google Scholar] [CrossRef]
  27. Koren, Y.; Bell, R.; Volinsky, C. Matrix factorization techniques for recommender systems. Computer 2009, 42, 30–37. [Google Scholar] [CrossRef]
  28. Andriy, M.; Salakhutdinov, R.R. Probabilistic matrix factorization. In Proceedings of the Advances in Neural Information Processing Systems 20, Vancouver, BC, Canada, 3–6 December 2007. [Google Scholar]
  29. Gelman, A.; Carlin, J.B.; Dunson, D.B.; Vehtari, A.; Rubin, D.B. Bayesian Data Analysis; Chapman and Hall/CRC: Boca Raton, FL, USA, 1995. [Google Scholar]
  30. Daniel, M. Modelling the Choice of Residential Location. In Spatial Interaction Theory and Planning Models; The Economics Housing: Amsterdam, The Netherlands, 1977. [Google Scholar]
  31. Prachi, S.; Ganapathy, S. Deep self-supervised hierarchical clustering for speaker diarization. arXiv 2020, arXiv:2008.03960. [Google Scholar]
  32. Zhao, J.; Yi, H.; Rashtchian, C. Unsupervised embedding of hierarchical structure in euclidean space. arXiv 2020, arXiv:2010.16055. [Google Scholar]
Figure 1. Visualization of examples of clustering results: Algorithms 1 and 2.
Figure 1. Visualization of examples of clustering results: Algorithms 1 and 2.
Electronics 14 03120 g001
Figure 2. Visualization of examples of clustering results: Algorithms 3 and 4.
Figure 2. Visualization of examples of clustering results: Algorithms 3 and 4.
Electronics 14 03120 g002
Table 1. Comparison of algorithms. The numbers before the brackets are the means, and those in brackets are the standard deviations.
Table 1. Comparison of algorithms. The numbers before the brackets are the means, and those in brackets are the standard deviations.
ARINMI
σ e 2 Algo 1Algo 2Algo 3Algo 4Algo 1Algo 2Algo 3Algo 4
10.20 (0.01)0.02 (0.03)0.82 (0.03)0.99 (0.01)0.72 (0.01)0.11 (0.14)0.89 (0.02)0.99 (0.005)
1.50.16 (0.01)0.02 (0.03)0.53 (0.04)0.77 (0.06)0.68 (0.01)0.13 (0.09)0.78 (0.02)0.87 (0.03)
20.13 (0.02)0.03 (0.03)0.31 (0.05)0.62 (0.07)0.65 (0.02)0.17 (0.09)0.66 (0.03)0.67 (0.02)
Table 2. An example where Algorithm 3 would not proceed with a merge. (a) Cluster A; (b) cluster B; (c) combined matrix.
Table 2. An example where Algorithm 3 would not proceed with a merge. (a) Cluster A; (b) cluster B; (c) combined matrix.
(a) Cluster A(b) Cluster B
G6_P1G6_P3G6_P5G6_P7G6_P8 G6_P10G6_P2G6_P4
G6_P1/6.582.752.771.69 G6_P10/−0.55 3.88
G6_P34.54/8.658.413.43 G6_P26.07/2.59
G6_P55.661.33/4.511.11 G6_P43.012.33/
G6_P77.292.881.51/3.07
G6_P81.327.72.14.75/
(c) Combined Matrix for All Clusters
G6_P1G6_P3G6_P5G6_P7G6_P8G6_P10G6_P2G6_P4
G6_P1/6.582.752.771.690.35−0.864.36
G6_P34.54/8.658.413.43−1.063.032.39
G6_P55.661.33/4.511.116.854.752.77
G6_P77.292.881.51/3.074.958.192.81
G6_P81.327.72.14.75/2.33−0.281.77
G6_P102.323.222.322.961.79/−0.553.88
G6_P20.782.812.41−0.3836.07/2.59
G6_P41.451.676.54−1.63−0.153.012.33/
Table 3. Comparison of results. r , l , and ϵ are sampled from t-distributions. The numbers before the brackets are the means, and those in brackets are the standard deviations.
Table 3. Comparison of results. r , l , and ϵ are sampled from t-distributions. The numbers before the brackets are the means, and those in brackets are the standard deviations.
ARINMI
Algo 1Algo 2Algo 3Algo 4Algo 1Algo 2Algo 3Algo 4
0.221 (0.015)0.133 (0.097)0.888 (0.070)0.944 (0.036)0.728 (0.006)0.365 (0.22)0.930 (0.040)0.963 (0.021)
Table 4. Performance of Algorithms 3 and 4 for various η . The numbers before the brackets are the means, and those in brackets are the standard deviations.
Table 4. Performance of Algorithms 3 and 4 for various η . The numbers before the brackets are the means, and those in brackets are the standard deviations.
ARINMI
η Algo 3Algo 4Algo 3Algo 4
10.563 (0.037)0.812 (0.075)0.784 (0.021)0.893 (0.037)
50.664 (0.088)0.914 (0.048)0.809 (0.041)0.943 (0.032)
90.738 (0.100)0.9840 (0.080)0.840 (0.056)0.897 (0.052)
130.764 (0.117)0.747 (0.117)0.852 (0.071)0.842 (0.078)
170.774 (0.129)0.640 (0.115)0.858 (0.078)0.777 (0.085)
210.765 (0.118)0.571 (0.120)0.849 (0.072)0.742 (0.095)
250.724 (0.109)0.502 (0.077)0.818 (0.068)0.698 (0.072)
Table 5. Comparison of results. Group sizes vary in the ground truth. The numbers before the brackets are the means, while those in brackets are the standard deviations.
Table 5. Comparison of results. Group sizes vary in the ground truth. The numbers before the brackets are the means, while those in brackets are the standard deviations.
ARINMI
Algo 1Algo 2Algo 3Algo 4Algo 1Algo 2Algo 3Algo 4
0.146 (0.019)0.063 (0.041)0.481 (0.051)0.706 (0.050)0.672 (0.015)0.232 (0.103)0.756 (0.028)0.843 (0.021)
Table 6. Execution time (in seconds) of the clustering algorithm under different configurations of number of groups and group size.
Table 6. Execution time (in seconds) of the clustering algorithm under different configurations of number of groups and group size.
Num_GroupsGroup_SizeTotal_ProductsTime_Seconds
45202.50
4104017.49
42080164.67
854011.98
81080160.21
8201602395.55
16580169.62
16101602481.23
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Xu, L. A Clustering Method for Product Cannibalization Detection Using Price Effect. Electronics 2025, 14, 3120. https://doi.org/10.3390/electronics14153120

AMA Style

Xu L. A Clustering Method for Product Cannibalization Detection Using Price Effect. Electronics. 2025; 14(15):3120. https://doi.org/10.3390/electronics14153120

Chicago/Turabian Style

Xu, Lu. 2025. "A Clustering Method for Product Cannibalization Detection Using Price Effect" Electronics 14, no. 15: 3120. https://doi.org/10.3390/electronics14153120

APA Style

Xu, L. (2025). A Clustering Method for Product Cannibalization Detection Using Price Effect. Electronics, 14(15), 3120. https://doi.org/10.3390/electronics14153120

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop