I have a bunch of stores data and I want to find similar stores (Time period 1 year, monthly data) based on combination of two steps:

1) Month on month sales value of store A should be similar to month on month sales of store B.

I intend to use clustering techniques like k means, hierarchical etc for this.

Once we have potential stores similar to a particular store based on sales value the next requirement is:

2) The sales pattern/trend every month should be similar to other store i.e. if the sales for store A increases for first 3 months and then decreases for the next 2 months , then the other similar store should also have the same pattern.

I am not sure how to handle this 2nd part. Should I scrap step 1 and treat this problem as a time series clustering problem and use algorithms such as DTW or is my initial approach correct and there exists some technique which could specifically help in solving (something like correlation) step 2 i.e. sales trend problem


1 Answer 1


To me it sounds like a combination of pairwise distance and pairwise correlation calculations.

I believe you should treat each store like a 12 element vector. first calculate the distances between each store and every other store using probably either the Manhattan or Euclidean distance (if you want the penalise the too far away stores sales use the latter, otherwise the Manhattan one would do). Afterwards you can calculate the correlations between the two (I would suggest spearman’s correlation as it’s non-parametric).

Finally you can combine the two metrics any way you want. For instance you can first find stores that are “close enough” for your standards and then the one that correlates the most. Alternatively, you can standardise so that they are on the same scale and then take the opposite of one of the two (as you want one to be small and the other one large) and take the average of the two new metrics to calculate your final metric. Finally, you can use any custom metrics to combine both based on the project needs.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.