Fehlender Werte für Dummykodierung benutzen

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
farngarten
Beiträge: 76
Registriert: Fr Dez 08, 2017 6:42 am

Fehlender Werte für Dummykodierung benutzen

Beitrag von farngarten » So Okt 27, 2019 3:04 pm

Hallo , wie kann ich denn fehlende Werte in der Dummykodierung als Refenzkategorie benutzen?
die Variable v_311 (Art der Religion) wurde nur bei Teilnehmer aufgerufen , die vorher v_304 mit (2) "religiös aber nicht praktizierend " oder (3) "religiös" beantwortet haben. Die 1er Kandidaten (nicht religiös) erscheinen bei v_311 als fehlender Wert.

Ich habe beim Faktorisieren versucht, die -77 einzubeziehen.

Code: Alles auswählen

k$v_311 <- factor(k$v_311, levels <- c(1,2,3,4,5,6,7,8,-77), labels <- c( "Christ", 
                                                                      "Jude", "Mos_sun", "Mos_schi", "Mos_ale", 
                                                                      "Budd", "Hindu", "sonst", "Atheist"))
aber wenn ich dann eine Tabelle anzeigen lassen

Code: Alles auswählen

table(k$v_304)
table(k$v_311)
dann zeigt er die Atheisten mit 0 an. siehe Bild. Ich würde gern die Variable v_311 für eine Dummykodierung nutzen. Verkürzter Datensatz anbei. Danke für eure Hilfe. Grüße Martin
Bild_2019_10_27_14_58_03_507.png
Bild_2019_10_27_14_58_03_507.png (5.58 KiB) 199 mal betrachtet
Dateianhänge
demo.csv
(260 Bytes) 8-mal heruntergeladen

Benutzeravatar
student
Beiträge: 346
Registriert: Fr Okt 07, 2016 9:52 am

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von student » Mo Okt 28, 2019 9:45 am

Hallo,

schau mal hier: https://www.r-statistik.de/R_erweitern/Tipps-Tricks/tipps-tricks.html#FehlendeWerteNA
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)

bigben
Beiträge: 1129
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von bigben » Mo Okt 28, 2019 10:12 am

Mach viele kleine Schritte, dann fallen Fehler leichter auf:

Code: Alles auswählen

k <- read.csv2("http://forum.r-statistik.de/download/file.php?id=738")
str(k)

# die Codierung schreibe ich gut lesbar in eine Funktion
religion = Vectorize(function(zahl){
  if(zahl == 1) return("Christ")
  if(zahl == 3) return("Sunnit")
  if(zahl == 8) return("Sonstige")
  if(zahl == -77) return("Atheist")
  warning("no such religion coded")
  return(NA_character_)
})

k$v_311u <- religion(k$v_311) # Codierungsfunktion anwenden
  
k$v_311f <- factor(k$v_311u) # in Faktor umwandeln
str(k$v_311f) 
table(k$v_311f)  # Jetzt haben die Level alle vernünftige Namen

k$v_311f <- relevel(k$v_311f, base="Atheist") #stellt sicher, dass Atheist der Baselevel ist.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

farngarten
Beiträge: 76
Registriert: Fr Dez 08, 2017 6:42 am

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von farngarten » Mo Okt 28, 2019 6:57 pm

danke , ich probier das gleich

farngarten
Beiträge: 76
Registriert: Fr Dez 08, 2017 6:42 am

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von farngarten » Do Okt 31, 2019 6:02 pm

Hallo ,
leider funktioniert es nicht bei mir.
Bild_2019_10_31_17_38_12_992.png
Bild_2019_10_31_17_38_12_992.png (11.65 KiB) 137 mal betrachtet
Den Hinweis von Student habe ich alternativ auch probiert. NAs in eine 9 zu codieren.

Code: Alles auswählen

k[is.na(k$v_311),"NA"] <- 9
Wenn ich k$v_311 anschaue, sind die NAs immer noch da. Was mache ich falsch?

Danke Gruß

bigben
Beiträge: 1129
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von bigben » Do Okt 31, 2019 9:11 pm

Wenn es mit demo.csv läuft, mit Deinen Daten aber nicht, dann taugt demo.csv halt nicht als Beispiel für Deine Daten. Deinem Post ist aber nicht einmal zu entnehmen, ob der Fehler mit demo,csv auch auftritt oder nicht.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

farngarten
Beiträge: 76
Registriert: Fr Dez 08, 2017 6:42 am

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von farngarten » Fr Nov 01, 2019 11:57 am

hallo Ben , es tut mir leid, aber es geht nicht. auch beim Demo Datensatz. er wird korrekt eingelesen. Bild
Dateianhänge
Bild_2019_11_01_11_48_41_590.png
Zuletzt geändert von farngarten am Fr Nov 01, 2019 3:29 pm, insgesamt 1-mal geändert.

bigben
Beiträge: 1129
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von bigben » Fr Nov 01, 2019 12:49 pm

Hallo farngarten,

ich habe jetzt eine ganz frische R Session aufgemacht und meinen Code von oben da rein kopiert. In der letzten Zeile erhalte ich da eine Fehlermeldung, weil ich in relevel ein Argument base= genannt habe, das ref= heißen muss. Bis zu dieser Zeile läuft mein Code bei mir problemlos durch. Ich bin ziemlich sicher, dass er soweit auch bei Dir problemlos durchlaufen würde, wenn Du ihn durchlaufen lassen würdest.

Dass bei Dir dieser Fehler auftritt liegt am Einlesen. Ich hatte geschrieben

Code: Alles auswählen

k <- read.csv2("http://forum.r-statistik.de/download/file.php?id=738")
str(k)
Was Du geschrieben hast kannst Du Dir aus Deinem Bildschirmfoto selbst raussuchen. Jedenfalls erzeugst Du da völlig unnötige NA und ja, diese NA lassen meinen Code von oben abstürzen. Kann man reparieren, war hier aber nützlich, weil es gezeigt har, dass Du beim Einlesen die Atheisten schon alle zu NA gemacht hast..

Was die Bildschirmfotos zum Vermeiden von code-Tags angeht, so halte ich es mit dem Autor dieses Blogeintrags: https://yihui.name/en/2017/08/source-code-as-screenshots/ (We cannot be friends if you share code as screenshots)


Ganz oben hast Du diesen Thread eröffnet mit
Ich habe beim Faktorisieren versucht, die -77 einzubeziehen.
Wenn Du da auch schon beim Einlesen die -77 alle gegen NA ersetzt hattest, dann brauchst Du Dich nicht zu wundern, wenn nachher keine -77 Werte mehr auftauchen. Über die Art des Einlesens hattest Du aber kein Wort verloren. Verstehst Du jetzt vielleicht, warum wir soviel Wert auf ausführbaren Beispielcode legen?
Ich werde jedenfalls von jetzt an keine Frage mehr von Dir beantworten, in der zwar eine Datei angehängt ist aber nicht in code-Tags dabei steht, wie Du das einliest und weiter verarbeitest.

Gruß,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

Hufeisen
Beiträge: 131
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von Hufeisen » Fr Nov 01, 2019 1:10 pm

farngarten,

Dein Bildschirmfoto ist nicht ausreichend anonymisiert (das wolltest Du ja wohl). Die Zeile workspace loaded from... fehlt noch.

farngarten
Beiträge: 76
Registriert: Fr Dez 08, 2017 6:42 am

Re: Fehlender Werte für Dummykodierung benutzen

Beitrag von farngarten » Fr Nov 01, 2019 3:37 pm

@hufeisen, danke für die Info. habs geändert. @Ben, danke für die Mühe. Für Nicht-Informatiker ist es nicht einfach, sich einzufühlen , wieviel Code sein muss und wieviel nicht. Kurz: es geschieht nicht, um jemanden zu ärgern , sondern schlicht, weil ich nicht durchblicke, und froh bin wenn ich den Tag ohne Fehlermeldung überstehe.

Antworten