如何在R中加入虚拟?

时间:2013-05-08 09:59:12

标签: r statistics spss

我在SPSS中制作了几个虚拟变量,并想知道我是否可以在R中使用相同的变量?是否需要在变量之前放置任何特殊代码(如分类的因子(...)),或者只是将它们添加到模型中而不进行修改?

我需要使用R,因为我正在进行多级分析,我想将这两个个体用作上下文变量。

提前感谢您的帮助! 亲切的问候, 劳伦

1 个答案:

答案 0 :(得分:1)

这里有几个选项。首先,正如@Edwin所建议的那样,您可以使用factor()函数将分类变量转换为因子类。 R将自动对大多数线性模型中的因子进行虚拟化(这可以通过检查模型对象来看出)。

当然,我认为没有什么可以阻止你在线性模型中简单地包含1/0假人,因为它们是按照定义允许的。当然,您需要根据其含义和参考类别手动跟踪它们。

因此,第一种策略可能是最方便的。

为了稍微扩展答案,R中有几个dummification选项。默认是使用contr.treatment()实现的虚拟编码。这将使用1/0虚拟对象,它是无序因子的默认选项。请参阅相应的options()输出部分进行验证。尽管如此,仍然可以使用其他类型的对比。根据我的经验,偏差编码通常是一个很好的选择。它与对比度设置的默认方式的不同之处在于,不是单个参考类别,而是采用成对比较的组均值。在比较国家(或国家)之间的情况下,如果没有内在的理由将所有国家与一个特定国家进行比较,这可能会很有趣,但与所有国家的平均值进行比较是有道理的。此类对比度由contr.sum()设置。或者,您可以手动构建自己的自定义矩阵,并通过contrasts(x) <- MyMatrix提供。

可以找到有关R中对比类型的更多信息here