2017-12-14 4 views
0

Ich versuche, die Kategorievariablen in Dummy-Variablen zu ändern. "Jahreszeit", "Feiertag", "Arbeitstag", "Wetter", "Temp", "Atemp", "Feuchtigkeit", "Windgeschwindigkeit", "registriert", "Zählung", "Stunde", "dow" sind alle Variablen .Nach dem Erzeugen von Dummy-Variablen?

Hier ist mein Code:

#dummy 
library(dummies) 
#set up new dummy variables 
data.new = data.frame(data) 
data.new = cbind(data.new,dummy(data.new$season, sep = "_")) 
data.new = cbind(data.new,dummy(data.new$holiday, sep = "_")) 
data.new = cbind(data.new,dummy(data.new$weather, sep = "_")) 
data.new = cbind(data.new,dummy(data.new$dow, sep = "_")) 
data.new = cbind(data.new,dummy(data.new$hour, sep = "_")) 
data.new = cbind(data.new,dummy(data.new$workingday, sep = "_")) 
#delete the old variables 
data.new = data.new[,-1] 
data.new = data.new[,-1] 
data.new = data.new[,-2] 
data.new = data.new[,-8] 
data.new = data.new[,-8] 
data.new = data.new[,-1] 

Soll ich die alten Variablen nach Erzeugen der Dummy-Variablen löschen? Wenn ich PCR machen möchte, darf ich alle Variablen verwenden, z.

fit = pcr(count~.,data = data.new) 

um ein lineares Regressionsmodell zu generieren? Oder sollte ich nur die nicht Dummy-Variablen verwenden?

fit = pcr(count~temp+atemp+humidity+windspeed+registered,data = data.new) 

Entschuldigen Sie bitte Ihr Missverständnis. Ich habe die LM-Funktion als Beispiel verwendet. Jetzt habe ich es in pcr-Funktion geändert. Vielen Dank für das Lesen dieser Frage!

+0

Versuchen Sie 'dummy.data.frame' zu ​​verwenden, um Ihre Dummy-Variablen in Ihrem Dataset zu erstellen. Das Löschen oder Nicht-Löschen der ursprünglichen Variablen liegt bei Ihnen, und wie werden Sie die Formel angeben? – AntoniosK

+0

Sorry, aber meinst du, dass mein Code falsch ist, cbind Funktion und Dummy-Funktion zu verwenden? Ich bin wirklich neu in der Codierung. Kannst du etwas weiter erklären? – grace

+0

Es ist nur so, dass diese Funktion mehrere Dummy-Variablen für Sie erstellen wird, wenn Sie die Variablennamen angeben. Sehen Sie, wie die Funktion funktioniert, wenn Sie '? Dummy.data.frame' ausführen – AntoniosK

Antwort

0

Solange Ihre kategorialen Variablen Faktoren sind, übernimmt die Funktion lm die Erstellung von Dummy-Variablen für Sie.

Ich würde Ihnen empfehlen, zuerst zu überprüfen, dass Ihre Daten ein data.frame sind und die Prädiktoren, die kategorisch sind, sind in der Tat Faktoren.

class(data) 
sapply(data, class) 

Oder einfach mehr

str(data) 

Dann legen sie einfach in Ihrer Formel in Ihrem lm Anruf.

fit = lm(count ~ season + holiday + workingday + weather + temp + atemp + humidity + windspeed + registered + hour + dow, data=data) 

Oder wenn die Spalten in der Formel die einzigen, die in Ihrem sind data.frame dann können Sie die Kurz Hand verwenden.

fit = lm(count ~ ., data=data) 
+0

Verstanden. Aber wenn ich nicht lm-Funktion verwende, verwende ich PCR nach dem Erzeugen der Dummy-Variablen? Soll ich einen solchen Code schreiben? pcr.fit = pcr (count ~., data = Zug, scale = FALSE, validation = "CV") Oder sollte ich diesen Code verwenden? pcr.fit = pcr (count ~ temp + atemp + Feuchte + Windgeschwindigkeit + registriert, Daten = train, scale = FALSE, validation = "CV") – grace

+0

Im Allgemeinen sollten Sie kategorische Variablen von der Standard-PCA ausschließen. Es gibt mehrere Diskussionen, die dieses Thema betreffen, hier ist eine solche: https://stats.stackexchange.com/ Fragen/5774/Can-Principal-Component-Analyse-angewendet-auf-Datensätze-enthalten-eine-Mischung-von-cont – jmuhlenkamp

Verwandte Themen