欢迎光临散文网 会员登陆 & 注册

R语言 如何手动指定哑变量(虚拟变量)的参照水平

2022-08-01 08:38 作者:Hona_Cao  | 我要投稿

这个问题操作起来很简单,但对于很多新手来说并不友好。国内关于R语言中如何设置哑变量的教程太多,但就我所知,没有相关介绍的这个小问题的。

假设有formula:lm(y ~ x + b)

首先,个人觉得设置哑变量最简单的就是直接在formula中给变量面前加个factor()或as.factor()函数就行。例如变量b由=有1,2,3,4个值。若将b指定为因子变量(分类变量),则可以在不改变原数据的情况下加入:

lm(y ~ x + as.factor(b))

需要注意的是,R语言中绝大多数程序包会默认把整数分类变量看作为因子变量,即不需要加factor()来指定。如果需要在回归中做p for trend这种线性趋势,则可以用numeric()或as.numeric()函数来强制指定b为连续资料。

lm(y ~ x + as.numeric(b))

不过R语言默认的参照水均为最低值,例如变量b有1,2,3,4四个水平,则默认参照水平为1。这时候如果需要指定参照水平为3时,则可以在formula中为该变量调用relevel()函数。

lm(y ~ x + relevel(b, ref = "3"))

最后如果国内搜不到R语言相关教学,可以去stack overflow去看看。一般搜索引擎改为bing或google,问题翻译为英语,基本上第一条都会是stack上的教学(可能需要科学上网)。


R语言 如何手动指定哑变量(虚拟变量)的参照水平的评论 (共 条)

分享到微博请遵守国家法律