Grafik beschreiben

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
Vogo
Beiträge: 9
Registriert: Mi Feb 19, 2020 12:34 pm

Grafik beschreiben

Beitrag 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
Dateianhänge
Plot.PNG
str..PNG
str..PNG (10.34 KiB) 715 mal betrachtet
Vogo
Beiträge: 9
Registriert: Mi Feb 19, 2020 12:34 pm

Re: Grafik beschreiben

Beitrag 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
Vogo
Beiträge: 9
Registriert: Mi Feb 19, 2020 12:34 pm

Re: Grafik beschreiben

Beitrag von Vogo »

...hier ist noch der Befehl mit der die Grafik erzeugt wurde
Bild
Dateianhänge
Ergebnis Erglm.PNG
Ergebnis Erglm.PNG (5.78 KiB) 712 mal betrachtet
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Grafik beschreiben

Beitrag 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"))
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Grafik beschreiben

Beitrag 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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Grafik beschreiben

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Vogo
Beiträge: 9
Registriert: Mi Feb 19, 2020 12:34 pm

Re: Grafik beschreiben

Beitrag 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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Grafik beschreiben

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Vogo
Beiträge: 9
Registriert: Mi Feb 19, 2020 12:34 pm

Re: Grafik beschreiben

Beitrag 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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Grafik beschreiben

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten