Seite 1 von 1

Grafik beschreiben

Verfasst: Sa Feb 22, 2020 7:22 pm
von Vogo
Hallo zusammen,

ich habe eine ähnliche Situation. Bei mir ist es eine lineare Regression von einer unabhängigen numerischen auf eine kategorial binäre abhängige Variable.
Übersicht des Datensatzes:
Bild
ist dies möglich?

Bild

Gruß
Andreas

Re: Grafik beschreiben

Verfasst: Sa Feb 22, 2020 7:29 pm
von Vogo
es fehlt noch folgende Information. Die wurde beim Hochladen wohl "abgeschnitten.

Ich habe die Regression durchgeführt und mit erglm geplottet. Die y Achse wurde mit 1 und 2 beschrieben, obwohl diese Werte für Ja bzw. Nein stehen. Der Datensatz war ursprünglich kategorial binär und und wurde eigentlich mit 1 und 2 ausgewiesen.

Ich habe diesen in numerische Variablen mit .asfactor umgewandelt, damit die lineare Regression funktioniert.

Nun würde ich gerne die 2 Werte nachträglich (also nach dem Plotten) an der y Achse mit Ja / Nein ausweisen. Kann mir jemand einen Tipp geben?

Viele Grüße
Andreas

Re: Grafik beschreiben

Verfasst: Sa Feb 22, 2020 9:05 pm
von Vogo
...hier ist noch der Befehl mit der die Grafik erzeugt wurde
Bild

Re: Grafik beschreiben

Verfasst: So Feb 23, 2020 10:46 am
von EDi
Aufrgrund eines fehlenden reproduzierbaren Beispiel, kann ich dir nur diese Codezeilen geben, welche aber vieles klarer machen sollten:

Code: Alles auswählen

factor(c(1,2,1,1,1,2))
factor(c(1,2,1,1,1,2), levels = c(2, 1))
factor(c(1,2,1,1,1,2), levels = c(1, 2), labels = c("Ja", "Nein"))
factor(c(1,2,1,1,1,2), levels = c(2, 1), labels = c("Nein", "Ja"))
factor(c(1,2,1,1,1,2), levels = c(2, 1), labels = c("Ja", "Nein"))

Re: Grafik beschreiben

Verfasst: So Feb 23, 2020 2:37 pm
von Athomas
Vielleicht stellen Sie sich an diesem Punkt die Frage, warum eine lineare Regression für die Modellierung von binären abhängigen Variablen nicht die optimale Methode ist.
sagt: https://www.inwt-statistics.de/blog-art ... ssion.html

Re: Grafik beschreiben

Verfasst: So Feb 23, 2020 9:30 pm
von bigben
Hallo Vogo,

warum postest Du kleine Ausschnitte von Code als Bild, statt alle relevanten Ausschnitte in Code-Tags zu posten?
Vogo hat geschrieben: Sa Feb 22, 2020 7:29 pmIch habe diesen in numerische Variablen mit .asfactor umgewandelt, damit die lineare Regression funktioniert.
.asfactor kenne ich nicht und as.factor wandelt nichts ins numerische um. Aber auch wenn Du keinen Code zeigst, kann man ahnen, was Du meinst.
Nun würde ich gerne die 2 Werte nachträglich (also nach dem Plotten) an der y Achse mit Ja / Nein ausweisen. Kann mir jemand einen Tipp geben?

Der Tipp lautet scale_y_continuous und wird ungefähr so angewendet, wie in diesem Beispiel:

Code: Alles auswählen

library(ggplot2)
mdf <- data.frame(x = round(c(rnorm(30,5,5), rnorm(30,10,5)),0),
                  y = c(rep(1,30), rep(2,30)))

vorher <- ggplot(mdf) + geom_point(aes(x=x, y=jitter(y, factor = .2))) 
print(vorher)

nachher <- vorher + scale_y_continuous(breaks=1:2, labels = c("Nöö", "Yeah"))
print(nachher)
Neben der jetzt besseren y-Achsenbeschriftung beachte bitte, wie ich durch einfaches Verwackeln der y-Werte mit "jitter" verhindert habe, dass die Punkte alle übereinander geplottet werden, wie das wahrscheinlich bei Deiner Grafik der Fall ist (Du hast über 1000 Beobachtungen aber keine tausend Punkte auf dem Plot. Eine andere sehr elegante Antwort darauf bietet das package ggbeeswarmplot, auf das Du Dir hier Appetit holen kannst: https://cran.r-project.org/web/packages ... amples.pdf )

Ich kenne zwar die Funktion plotModel nicht, aber die Idee, dem Plot einfach "scale_y_continuous" hinzuzuaddieren sollte funktionieren.

LG,
Bernhard

Re: Grafik beschreiben

Verfasst: Mo Feb 24, 2020 11:31 pm
von Vogo
Hallo Bernhard,

danke für Deine Beschreibung. Für mich ist das R Thema noch recht neu. Ich muss das in Ruhe ausprobieren. Möchte mich aber erstmal bedanken, dass Du versucht hast, Dich in meine Problematik reinzudenken.

Ich muss eine Hausarbeit schreiben und stosse von einem Problem auf das nächste. Weil mir vermutlich auch die mathematischen Grundkenntnisse und Grundverständlichkeiten fehlen.

Gruß
Andreas

Re: Grafik beschreiben

Verfasst: Di Feb 25, 2020 7:28 am
von bigben
Hallo Andreas,

wenn das so ist, darf ich vielleicht sagen, dass die y-Achsenbeschriftung wahrscheinlich nicht Dein führendes Problem ist. Auf das führende Problem hat Athomas hingewiesen: um aus einem metrischen Alter auf das binäre Verstehen zu schließen dürfte aller Wahrscheinlichkeit nach eine logistische Regression angemessen sein.

Du musst erst die Mathe klar kriegen, dann die Achsenbeschriftungen.

LG,
Bernhard

Re: Grafik beschreiben

Verfasst: Di Feb 25, 2020 12:26 pm
von Vogo
Hallo Bernhard,

vielen Dank.

Die Umwandlung war als eine Notlösung angedacht. Die Vorgabe war, dass mind. 1 lineare Regression durchzuführen ist. Nach Auswahl des Datensatzes, der vermutlich von mir sehr ungünstig gewählt worden ist, wollte ich mir mit dieser Umwandlung "as.numeric" (nicht as.factor, wie von mir fälschlicherweise beschrieben) behelfen.

Werde das nächste mal besser aufpassen und die y-Achsen Beschriftung jetzt so belassen.

Gruß
Andreas

Re: Grafik beschreiben

Verfasst: Di Feb 25, 2020 2:39 pm
von bigben
Hallo Andreas,

nur Du kannst entscheiden, was Deine Ausgangssituation ist, welche Mittel (Zeit und Mühe) Du einsetzen willst und damit letztlich, was Du abliefern willst. Die logistische Regression ist eine generalisierte lineare Regression bzw sie beinhaltet eine lineare Regression und wäre damit eine Erfüllung des Auftrags, eine lineare Regression zu rechnen. Außerdem wären die Daten dann nicht mehr ungünstig gewählt und so einfach kann es sein: http://www.cookbook-r.com/Statistical_a ... egression/
Werde (...) die y-Achsen Beschriftung jetzt so belassen.
Wie denn jetzt? Mit Zahlen? Oder hat

Code: Alles auswählen

plotModel(erglm1) + scale_y_continuous(breaks=1:2, labels = c("Nein", Ja"))
funktioniert?

LG,
Bernhard