2013-05-08 59 views
0

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

我需要使用R,因为我正在做一个多级分析,我想使用两个个人作为上下文变量。

在此先感谢您的帮助! 亲切的问候, 劳伦

+1

应该没有问题。你真的遇到了代码问题吗?如果是,请包含代码,以便我们看到您的担忧。 – Thomas 2013-05-08 10:20:00

+0

为了让R认识到你的变量是分类的并且在建立模型的时候让它创建了虚拟变量,变量应该是类因子。你可以通过类(对象)来检查类,或者通过str(df)来检查它的数据框。如果它不是一个因子,而是一个数字变量,则可以通过factor()命令将其转换。如果事情还没有解决,请显示你的代码。 – Edwin 2013-05-08 10:56:20

回答

1

你有几个选择在这里。首先,按照@Edwin的建议,您可以使用factor()函数将分类变量转换为因子类别。 R会自动在大多数线性模型中使用dummify因子(这可以通过检查模型对象来看出)。

当然,我认为任何东西都不能阻止你简单地在线性模型中包含1/0虚拟变量,因为它们是按照定义允许的。当然,那么你需要手动跟踪它们,涉及它们的含义和参考类别。

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

为了稍微扩展答案,在R中有几个哑元选项。缺省值是用contr.treatment()实现的虚拟编码。这将使用1/0虚拟变量,并且它是无序因素的默认选项。请参阅相应的options()输出部件进行验证。尽管如此,还有其他类型的对比可以使用。根据我的经验,偏差编码往往是一个很好的候选人。它与对比度设置的默认方式不同,因为不是单个参考类别,而是采用组平均值来进行成对比较。这在比较不同国家(或州)的情况下可能很有意思,因为没有内在的理由将一切事物与一个特定的国家进行比较,但与所有国家的均值比较是有意义的。这种类型的对比度由contr.sum()设置。或者,您可以手动构建自己的自定义矩阵,并通过contrasts(x) <- MyMatrix提供。

有关R中对照类型的更多信息,请参阅here