2016-06-10 18 views
-1

Angenommen, meine Kategorie ist Farbe und meine kategorischen Variablen sind "rot", "orange" und "blau".Zwei Dummy-Variablen für zwei separate Variablen in R deklarieren?

Und ich möchte mein Modell auf die beiden Variablen is_blue und is_red zurückgehen, wobei is_blue 1 ist, wenn es blau ist (0 sonst) und is_red ist 1, wenn es rot ist (0 sonst).

Wie könnte ich meine kategorialen Variablen zweimal verwenden?

+1

Was meinen Sie mit "meine kategorischen Variablen zweimal verwenden"? – Tor

+1

Bitte ein kleines reproduzierbares Beispiel zeigen – akrun

Antwort

0

Schwierig zu sagen ohne klare Daten Details, aber ist das, was Sie wollen?

set.seed(100) 
dat<- data.frame(
color=rep(c("red", "orange", "blue"),each=10) 
, 
var=rnorm(3*10,20,1) 
) 
levels(dat$color) 
dat$is_red=ifelse(dat$color=="red",1,0) 
dat$is_blue=ifelse(dat$color=="blue",1,0) 
lm(var~is_blue+is_red,dat) 
lm(var~factor(color),dat) #base blue 
lm(var ~ C(color,contr.treatment(3, base=2)), data=dat) 

> lm(var~is_blue+is_red,dat) 

Call: 
lm(formula = var ~ is_blue + is_red, data = dat) 

Coefficients: 
(Intercept)  is_blue  is_red 
    20.2337  -0.3628  -0.2516 

> lm(var~factor(color),dat) #base blue 

Call: 
lm(formula = var ~ factor(color), data = dat) 

Coefficients: 
     (Intercept) factor(color)orange  factor(color)red 
      19.8709    0.3628    0.1112 

> lm(var ~ C(color,contr.treatment(3, base=2)), data=dat) 

Call: 
lm(formula = var ~ C(color, contr.treatment(3, base = 2)), data = dat) 

Coefficients: 
          (Intercept) C(color, contr.treatment(3, base = 2))1 
           20.2337         -0.3628 
C(color, contr.treatment(3, base = 2))3 
           -0.2516