分类变量的数值化一直挺让人头大的,尤其是变量一多、每类又多的时候。用虚拟变量真的是又长又臃肿。而这个基于 Fisher 方法的小工具,在MATLAB
里就能跑,专门帮你把分类变量转成数量型的权重值,做回归或者 GLM 时用着还挺顺手。
Fisher 判别的权重提取方式比较聪明,它不是简单地给每个类编号,而是根据组间差异性算出来的数值,换句话说,更能反映每个类别在模型中的“贡献”。嗯,这个方式最早是在 1986 年的一篇论文里提的,用在判别里头,后来被不少人拿来用在别的统计模型里。
你要是正好在搞多组回归、ANOCOVA 或者广义线性模型(GLM),又苦于一堆多类变量,这段MATLAB
代码就还挺适合的。结构不复杂,响应也快,只是文档不算详细,动手前建议先看看那个参考文献里是咋讲的。
相关的参考资料也给你备好了,比如基于 Fisher 线性判别(LDA)的分类案例,还有Logistic 回归与分类变量这些文章,读一读思路会更清楚些。
如果你经常被分类变量折腾,可以把这段代码加入你的工具箱里,跑起来也快,调试也不复杂。