Imagine if products are classified as "Hot" and "Normal" based on their total annual sales.

I want to detect what are the possible variables / attributes that make a product "hot", based on this knowledge we can "config" a new product (or even an old one) so that it becomes "hot".

Another use case: if we know products with attribute A will be "hot" only when condition C is present (A and C are included in the data ofc) then we will not roll out such products until condition C is present (like certain season, certain holidays).

What methods do you suggest for this problem?

My current thought: This is a classification problem. Make a decision tree, and then check what are the decision points / rules and pick those as the "cause" (of course only if those coincide with the domain knowledge).

Another idea: go with neural nets -- (can I find the contributing attributes using this?)

I appreciate if you give me some advice and some tips for approaching this problem.

Important: The goal is not to classify the new products (although that will be a side effect) the main goal is to detect the "causes" of being "hot".

  • $\begingroup$ There are two ways you could go about this: (1) Train a predictive model to make the decision for you. (2) Use some form of post-hoc analysis of the model to estimate the variable importance of the input. In other words, do you want to understand how the model comes to its decision, or merely have the model make the decision for you? I'm reading elements of both in your question. $\endgroup$ – Frans Rodenburg May 8 at 4:43
  • $\begingroup$ (cont.) The reason I'm making the distinction: If you have a new product with the same set of features, you don't have to make a guess of whether it will be "hot", when you already have trained a model to do that for you. $\endgroup$ – Frans Rodenburg May 8 at 4:45
  • $\begingroup$ @FransRodenburg thank you for your answer. Indeed I am after (2)"analysis of the model to estimate the variable importance of the input" -- If we know which factors /variables cause a product to be "hot" then we can "config" a new product (or even an old one) to turn them into "hot" (think of very customizable products that we can make changes to based on the knowledge of these cause factors) $\endgroup$ – mike May 9 at 19:24
  • $\begingroup$ (cont) So given that we want "post-hoc analysis of the model to estimate the variable importance of the input"; I am thinking about decision trees at the moment. What are your thoughts on this? And do you know a better approach? I appreciate any guidance :) $\endgroup$ – mike May 9 at 19:24
  • $\begingroup$ You are asking for "causes" in the sense of causal analysis, right? Strictly speaking you can only find attributes (combinations of attributes) that correlate with the hotness, and not causes, on this data. My suggestion will be to try something very simple, i.e. logistic regression, or maybe trees, depends on your data and process structure, and try to understand what you get. In order to interpret the results in a causal sense you have to know something about the product, marketing, sales, etc. $\endgroup$ – Ott Toomet May 9 at 19:25

Causation is a murky subject and probably the easiest area in all of statistics to arrive at wrong answers. To go to your example, say we find in the data that $A$ products only succeed when they are released during period $C$ as well. But to causally interpret that to mean $A$ products need $C$ to succeed, we at least need to know that whether or not an $A$ product is released during $C$ is effectively random with regards to "hotness". But you could very well be saving your best $A$ products for $C$ (say, a holiday period) and you're simply picking up on that and not the genuine effect of $C$, so that's a tough condition to swallow.

I'd follow Ott Toomet's advice and start with a logistic regression (depending on your data, I think you could definitely overfit with a decision tree) and see what you can tease out. But ultimately, you need a heavy amount of domain knowledge of the area to carefully understand the results and even then, you're getting suggestive evidence, not conclusive. If you want to more solidly understand causality, you'd need to do something like a randomized experiment (i.e. randomly pick half your $A$ products to be in $C$ and half not in $C$ and then compare).

Wish I had better answer, but causality is extraordinarily hard absent experimental data.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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