Есть ли способ явно указать, какую группу взять в качестве эталонной группы для фиктивного кодирования при моделировании с помощью функции lm в R с использованием категориальных переменных??
Справочная группа для фиктивного кодирования
comment
А, судя по всему, функция, которую я предоставил, уже существует. Это также, вероятно, будет реализовано с большей производительностью, но я оставлю свой ниже, чтобы лучше понять, что происходит. Спасибо @Glen_b.
- person Nick Sabbe   schedule 08.05.2013
Ответы (2)
Самый простой известный мне способ — перекодировать коэффициент заранее, чтобы уровень, который вы хотите использовать в качестве эталона, был первым.
Вы можете сделать это с помощью такой функции:
recodeFactor<-function(f, ref=levels(f)[1])
{
lvls<-levels(f)
if(ref== lvls[1]) return(f)
lvls<-c(ref, setdiff(lvls, ref))
f<-factor(as.character(f), levels=lvls)
return(f)
}
person
Nick Sabbe
schedule
08.05.2013
Brilliant Stuff .. большое спасибо, Ник Саббе
- person Prasun Velayudhan; 08.05.2013
Вы можете просто сделать это в вызове lm
:
y <- rnorm(100, 0, 1)
x <- c(rbinom(50,1,.5),(2*rbinom(50,1,.5)))
lm(y ~ factor(x,c(1,0,2))) # one way
lm(y ~ factor(x,c(0,1,2))) # another way, etc.
person
Thomas
schedule
08.05.2013