我进行了一个包含 5 个分类因素的实验。每个因子有 2 到 8 个级别。我有一个响应变量,它在 0 到 100 的范围内是连续的。总而言之,我已经用 800 种组合进行了全因子实验。每个组合有 10 个样本。总的来说,在 R-speak 中,我有一个 6 列和 8607 行的数据框。
我的目标:确定导致最佳性能的每个因素的水平。例如,我想说“当factor1是“A”级,factor2是“C”级,...,并且factor5是“E”级时,性能通常是最好的。结论:总是使用“A”级“对于因子 1 ....”。
我如何实现这一目标?
我首先想到了 PCA,但这并不完全正确,因为 PCA 找到的组件是因素的组合,但我需要能够说出每个因素的最佳因素水平。我想保持因素不变。
我还想到了方差分析,这可能是我想要的,但我不确定如何使用它的输出。例如,在 R 中,我得到:
> 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
我不知道如何解释这些结果。是否 param1 的影响最大,因为它的“Sum Sq”最大?我怎么知道什么级别的 param1 最好?
所以,这就是我的想法:对于每个因素,将每个级别的“获胜百分比”与其他级别进行比较。也就是说,在所有其他因素相同的情况下,X 级别“击败”Y 级别的次数。我可以多次比较 X 级和 Y 级,因为还有很多其他因素和这些因素的水平。所以,我改变了其他因素的水平,比较当前因素中的 X 水平和 Y 水平,并跟踪谁赢了。这样做,我最终应该得到类似“对于 factor1,levelX 在 85% 的情况下击败 levelY,因此是更好的选择”。
这种方法有意义吗?它有名字吗?还是有另一种完全可以实现我想要的方法?
非常感谢任何帮助或指示。如果我的答案可以在 R 中实现,我会更喜欢,但我可以适应。我有一台非常强大的机器可以使用(16 个处理器,196G RAM),所以我不太担心解决我的问题的算法的效率。