我在SPSS中制作了几个虚拟变量,并想知道我是否可以在R中使用相同的变量?是否需要在变量之前放置任何特殊代码(如分类的因子(...)),或者只是将它们添加到模型中而不进行修改?
我需要使用R,因为我正在进行多级分析,我想将这两个个体用作上下文变量。
提前感谢您的帮助! 亲切的问候, 劳伦
答案 0 :(得分:1)
这里有几个选项。首先,正如@Edwin所建议的那样,您可以使用factor()
函数将分类变量转换为因子类。 R将自动对大多数线性模型中的因子进行虚拟化(这可以通过检查模型对象来看出)。
当然,我认为没有什么可以阻止你在线性模型中简单地包含1/0假人,因为它们是按照定义允许的。当然,您需要根据其含义和参考类别手动跟踪它们。
因此,第一种策略可能是最方便的。
为了稍微扩展答案,R中有几个dummification选项。默认是使用contr.treatment()
实现的虚拟编码。这将使用1/0虚拟对象,它是无序因子的默认选项。请参阅相应的options()
输出部分进行验证。尽管如此,仍然可以使用其他类型的对比。根据我的经验,偏差编码通常是一个很好的选择。它与对比度设置的默认方式的不同之处在于,不是单个参考类别,而是采用成对比较的组均值。在比较国家(或国家)之间的情况下,如果没有内在的理由将所有国家与一个特定国家进行比较,这可能会很有趣,但与所有国家的平均值进行比较是有道理的。此类对比度由contr.sum()
设置。或者,您可以手动构建自己的自定义矩阵,并通过contrasts(x) <- MyMatrix
提供。
可以找到有关R中对比类型的更多信息here。