我多年来一直在 R 中使用 aov() 函数。我总是通过 .csv 文件输入数据,并且从不费心将任何变量转换为“因子”。
最近我就是这么做的,将变量转换为因子并重复 aov(),aov() 的结果现在不同了。
我的数据是有序类别,0,1,2。无序或有序级别没有区别,两者都与使用变量而不转换为因子不同。
因素总是适当的吗?为什么这种转换会产生如此大的差异?
如果需要更多信息以使我的问题更清楚,请告诉我。
这确实是一个统计问题,但是,是的,它可以产生影响。如果 R 将变量视为数字,则在模型中它将仅考虑单个自由度。如果数字的级别为 0、1、2,则作为因子,它将使用两个自由度。这将改变模型的统计输出。如果您对多个因子进行数字编码或变量具有多个级别,则数字表示和因子表示之间的模型复杂性差异会显着增加。包含变量导致的解释平方和的增加是否具有统计显着性取决于增加的幅度和模型复杂性的变化。使用类变量的数字表示会使模型复杂性增加一个自由度,但类变量将使用k -1 自由度。因此,对于模型拟合的相同改进,您可能会遇到这样的情况:将变量编码为数字还是因子会改变它是否对响应有显着影响。
从概念上讲,基于数字或因素的模型有所不同;对于因素,您有一小部分已抽样的组或类,目的是查看这些分组之间的响应是否不同。模型固定在样本组集合上;您只能预测观察到的那些组。对于数字,您是说响应随数字变量线性变化。从拟合模型中,您可以预测未观察到的数值变量的一些新值。
(请注意,固定因子的推论假设您正在拟合固定效应模型。将因子变量视为随机效应,将焦点从抽样组的确切集合转移到样本所在总体中的所有组的集合。采取。)