2015-03-20 5 views
7

In R gibt es eine gute Funktionalität zum Ausführen einer Regression mit Dummy-Variablen für jede Ebene einer kategorialen Variablen. z.B. Automatically expanding an R factor into a collection of 1/0 indicator variables for every factor levelDummy-Variablen in Julia

Gibt es eine gleichwertige Möglichkeit, dies in Julia zu tun.

x = randn(1000) 
group = repmat(1:25 , 40) 
groupMeans = randn(25) 
y = 3*x + groupMeans[group] 

data = DataFrame(x=x, y=y, g=group) 
for i in levels(group) 
    data[parse("I$i")] = data[:g] .== i 
end 
lm(y~x+I1+I2+I3+I4+I5+I6+I7+I8+I9+I10+ 
    I11+I12+I13+I14+I15+I16+I17+I18+I19+I20+ 
    I21+I22+I23+I24, data) 

Antwort

4

Wenn Sie die Datenrahmen-Paket verwenden, nachdem Sie pool die Daten, wird das Paket übernehmen den Rest:

Spalten Pooling ist wichtig für die mit dem GLM-Paket arbeiten Beim Einbau Regressionsmodelle Die Spalten "PooledDataArray" in der Eingabe werden in 0/1-Indikatorspalten in der ModelMatrix übersetzt - mit einer Spalte für jede der Ebenen von PooledDataArray.

Sie können den Rest der Dokumentation auf gepoolten Daten sehen here

+0

btw, was mit gepoolten Datenrahmen passieren muss: 'pool (Daten, [: g]!); lm (y ~ x + g, Daten) ' –