前段时间要做一个模型,初始的解释变量有90个(不含因变量),需要给客户讲解我们的模型思路。
在谈到这个模型的缺点时,我说我们做了一个计算上的妥协,并没有计算所有解释变量的组合所构成的模型(Greedy research 如果没记错的话,这是机器学习里的一个说法)。
客户问,为什么不尝试计算所有可能性呢,那样不是可以更直接的得出一个结果吗?
于是我写了一个小function,用于计算所有可能性的计算量。
理论基础是排列组合。不排序的情况下,从m个元素里抽取其中n个的组合量是m!/[(m-n)!*n!]
那么90个自变量可能构成的模型组合数量有个。
依据这个,以R自带的阶乘函数factorial()为基础来写自定义函数: