I have run an experiment with 5 categorical factors. The factors have anywhere between 2 and 8 levels each. I have one response variable, which is continuous in the range of 0 to 100. All-in-all, I have run a fully factorial experiment with 800-something combinations. Each combination has 10 samples. In total, in R-speak, I have a data frame with 6 columns and 8607 rows.
My goal: determine the level of each factor that results in the best performance. For example, I want to be able to say "Performance is generally the best when factor1 is level "A", factor2 is level"C", ..., and factor5 is level "E". Conclusions: always use level "A" for factor1 ....".
How do I achieve this?
I first thought of PCA, but this isn't quite correct because the components that PCA finds are combinations of factors, but I need to be able to say which factor level is best, for each and every factor. I want to keep the factors in tact.
I also thought of ANOVA, which may be what I want, but I'm not sure how to use its output. For example, in R, I get:
> summary(aov(...))
Df Sum Sq Mean Sq F value Pr(>F)
preprocess 7 21.430 3.061 180.771 < 2.2e-16 ***
bugData 2 5.276 2.638 155.782 < 2.2e-16 ***
fileData 5 6.462 1.292 76.315 < 2.2e-16 ***
param1 2 255.766 127.883 7551.306 < 2.2e-16 ***
param2 1 15.579 15.579 919.887 < 2.2e-16 ***
Residuals 8589 145.457 0.017
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
I don't know how to interpret these results. Is it that param1 has the largest effect, because it's "Sum Sq" is largest? How do I know what level of param1 is best?
So, this is my idea: For each factor, compare the "winning-percentage" of each level against every other level. That is, the number of times that level X "beats" level Y, given that all other factors are equal. I can compare level X and level Y a lot of times, because there are so many other factors and levels of those factors. So, I change the level of the other factors, compare level X and level Y in the current factor, and keep track of who won. Doing this, I should end up with something like "For factor1, levelX beats levelY 85% of the time, and therefore is the better choice."
Does this approach make sense? Is there a name for it? Or is there another approach altogether that achieves what I want?
Any help or pointers is greatly appreciated. I would prefer if my answer is implementable in R, but I can adapt. I have a very beefy machine to use (16 processors, 196G RAM), so I'm not too worried about the efficiency of the algorithm that solves my problem.