我被告知最好在适当的地方对分类变量进行排序(例如短小于中小于长)。我想知道,在将分类变量建模为解释变量的情况下,将分类变量视为有序变量而不是简单分类变量的具体优势是什么?它在数学上是什么意思(最好用通俗的话来说!)?
非常感谢!
我被告知最好在适当的地方对分类变量进行排序(例如短小于中小于长)。我想知道,在将分类变量建模为解释变量的情况下,将分类变量视为有序变量而不是简单分类变量的具体优势是什么?它在数学上是什么意思(最好用通俗的话来说!)?
非常感谢!
除其他外,它还允许您比较来自这些因素的值:
> ord.fac <- ordered(c("small", "medium", "large"), levels=c("small", "medium", "large"))
> fac <- factor(c("small", "medium", "large"), levels=c("small", "medium", "large"))
> ord.fac[[1]] < ord.fac[[2]]
[1] TRUE
> fac[[1]] < fac[[2]]
[1] NA
Warning message:
In Ops.factor(fac[[1]], fac[[2]]) : < not meaningful for factors
文档表明从建模的角度来看有相当大的影响:
有序因子与其类的因子不同,但方法和模型拟合函数对这两个类的处理完全不同
但我必须让熟悉这些用例的人提供详细信息。
仅当从数据的角度来看有意义时,才应使用序数数据(即数据自然排序,如小型、中型和大型的情况)。
在建模术语中,分类变量具有为每个级别创建的虚拟变量,购买它可以采用的可能值之一。虚拟变量的影响本质上为您提供了该水平与参考水平(没有虚拟变量的水平)相比的影响。一般来说,处理分类变量比处理有序数据更容易。
序数数据的建模方式与连续数据和分类数据的建模方式不同(除非您将值视为连续数据,这通常是这样做的)。在 R 中,ordinal包有几个函数来执行基于累积链接函数的建模(链接函数将数据转换为更接近线性回归的东西)。
将分类数据重新编码为序数的优点是,从数据中做出的推论可以更好地代表数据并具有更直观的解释。
最有用的区别在于显示结果。如果我们有低、中、高级别并创建适当的有序因子,那么箱线图、条形图、表格等将按低、中、高的顺序显示结果。但是,如果我们创建一个无序因子并使用默认排序,那么绘图/表格将按照高、低、中的顺序排列;这没有多大意义。
默认的对比/虚拟变量编码对于有序和无序因子是不同的(但您可以更改编码,因此这只会影响您使用默认值的情况),这可以更改单个片段的解释,但不会影响整体拟合一般来说(对于线性模型和扩展,树等其他工具可能会有所不同)。