Hilfe bei Grafikerstellung

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

an-da
Beiträge: 8
Registriert: So Jun 06, 2021 5:18 pm

Hilfe bei Grafikerstellung

Beitrag von an-da »

Liebe Mitglieder des Forums,

ich suche dringend jemanden, der mir bei der Erstellung einer Grafik (probability curve) helfen kann...aktuell scheitere ich an einer anschaulichen Darstellung meiner Daten.

Ich freue mich auf Rückmeldung!

LG Amelie
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Hilfe bei Grafikerstellung

Beitrag von Athomas »

ich suche dringend jemanden, der mir bei der Erstellung einer Grafik (probability curve) helfen kann...
Hmmm - hier wollen eigentlich alle helfen!
Also weniger anderer Leute Hausaufgaben lösen, mehr Hilfe zur Selbsthilfe leisten...

Was ist denn eine "probability curve"?
an-da
Beiträge: 8
Registriert: So Jun 06, 2021 5:18 pm

Re: Hilfe bei Grafikerstellung

Beitrag von an-da »

Sehr gut :-) Ich freue mich. Und aus dem Hausaufgaben-Alter bin ich auch heraus ;)
ALso: Ich habe eine Häufigkeitstabelle: Eine stetige Variable (Units) mit x Werten. Von Individuen (ca. 40.000) habe ich die Angabe Ereignis ja/nein für die x Units. Ich habe die Daten passend transfomiert und eine log. Regression gerechnet. Jetzt möchte ich das irgendwie anschaulich darstellen..Was für eine Möglichkeit gibt es? Ich möchte, dass sichtbar wird: Mehr Units, höhere Wahrscheinlichkeit Ereignis=Nein. Ich habe ein paar Dinge versucht, allerdings werde ich einfach nicht erfolgreich

Vielen Dank schon einmal.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hilfe bei Grafikerstellung

Beitrag von bigben »

Hallo an-da,

also die ersten fünf Google-Treffer bei mir sehen so aus:

https://sites.google.com/site/daishizuk ... ssion-in-r
https://blogs.uoregon.edu/rclub/2016/04 ... on-models/
https://www.statology.org/plot-logistic ... sion-in-r/
http://www.cookbook-r.com/Statistical_a ... egression/
https://www.theanalysisfactor.com/r-glm-plotting/

Alle haben auch mindestens einen Plot mit Daten und Regressionsergebnis. Das muss man ja nicht alles hier wiederholen. Bestimmt hast Du auch gegooglet. Wenn Du ein wenig genauer eingrenzen könntest, was Dir an den verschiedenen Treffern bei Google nicht gefällt bzw. was Du konkret haben willst ließe sich konkreter beraten als mit dem Setzen von Links und dem Verweis auf Google.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
an-da
Beiträge: 8
Registriert: So Jun 06, 2021 5:18 pm

Re: Hilfe bei Grafikerstellung

Beitrag von an-da »

Ich hatte das schon ernst gemeint - ich habe gegoogelt und ich habe auch gerechnet (Kurve im Anhang). EIn Verweis auf Google Links hilft mir daher wenig weiter...auch wenn das vermutlich sehr lieb gemeint war.
Es geht um Daten, die ich hier nicht einfach öffentlich posten kann. Ich wäre daher dankbar, falls jemand Input hat, der mich weiterbringt...

Vielen Dank im Voraus!

Amelie
an-da
Beiträge: 8
Registriert: So Jun 06, 2021 5:18 pm

Re: Hilfe bei Grafikerstellung

Beitrag von an-da »

Hm..jetzt bekomme ich nichtmal den Anhang hierher... :|. Kann ich hier eine Kopie meiner Kurve einstellen?
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Hilfe bei Grafikerstellung

Beitrag von Athomas »

Es geht um Daten, die ich hier nicht einfach öffentlich posten kann.
So, wie sich das anhört, sollte es doch leicht möglich sein, die Daten so zu maskieren, dass sie zwar die ursprüngliche Struktur behalten, der Informationsgehalt aber völlig verändert ist:
  • Variablen umbenennen
  • Ausprägungen umbenennen
  • Häufigkeiten von Ausprägungen verändern (z.B. jedes dritte "hoch" zu "tief" machen, jedes siebte "tief" zu "hoch")
Damit könnten wir arbeiten und unsere Überlegungen praktisch demonstrieren! Wenn Du das nicht kannst/möchtest, können wir auch ganz abstrakt diskutieren - ich bin mir aber ziemlich sicher, dass Dir das nicht viel bringen würde!
an-da
Beiträge: 8
Registriert: So Jun 06, 2021 5:18 pm

Re: Hilfe bei Grafikerstellung

Beitrag von an-da »

Also hier:
Das sind die Daten

Unit Ereignis_ja Ereignis_nein
22.37 32 4111
22.18 89 4254
25.43 73 4270
28.14 61 4282
33.13 4 4139
38.39 94 4249
42.17 9 4334
50.78 32 4311
51.52 39 4304

Und das meine Syntax:

library(tidyr)
data_longnew <- gather(data, condition, frequency, Ereignis_ja, Ereignis_nein, factor_key=TRUE)
data_longnew

library(dplyr)

# Base R
data_disagg = data_longnew[rep(1:nrow(data_longnew), data_longnew$frequency),
-grep("frequency", names(data_longnew))]

# dplyr
data_disagg = data_longnew %>%
slice(rep(1:n(), frequency)) %>%
select(-frequency)

data_disagg[c(1:6, 510:514, 4523:4526), ]

#******Logistic regression******#

logr_vm <- glm(condition ~ Unit, data=data_disagg, family=binomial)
logr_vm
summary(logr_vm)

exp(coefficients(logr_vm)[2])
confint.default(logr_vm)[2,]
exp(confint.default(logr_vm)[2,])

##From cookbook##
library(ggplot2)
ggplot(data_disagg, aes(x=Unit, y=condition)) + geom_point() +
stat_smooth(method="glm", method.args=list(family="binomial"), se=FALSE)

par(mar = c(4, 4, 1, 1)) # Reduce some of the margins so that the plot fits better
plot(data_disagg$Unit, data_disagg$condition)
curve(predict(logr_vm, data.frame(HU=x), type="response"), add=TRUE)
an-da
Beiträge: 8
Registriert: So Jun 06, 2021 5:18 pm

Re: Hilfe bei Grafikerstellung

Beitrag von an-da »

Das war auch schön, aber ergibt dann grafisch auch keinen Sinn:
Predicted.data <-data.frame(probability.of.Ereignis_nein=logr_vm$fitted.values, condition=data_disagg$condition)
predicted.data <-predicted.data[order(predicted.data$probability.of.Ereignis_nein, decreasing=FALSE),]
predicted.data$rank <-1:nrow(predicted.data)
library(cowplot)
ggplot(data=predicted.data, aes(x=rank, y=probability.of.Ereignis_nein))+geom_point(aes(color=condition),alpha=1, shape=4)+xlab("Units")+ylab("Predicted probability of no ACS")
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hilfe bei Grafikerstellung

Beitrag von bigben »

Hallo an_da,
an-da hat geschrieben: So Jun 06, 2021 8:18 pmEIn Verweis auf Google Links hilft mir daher wenig weiter...auch wenn das vermutlich sehr lieb gemeint war.
Klar war das lieb gemeint, aber solange die Fragestellung nicht spezifischer ist als die für die Google-Links gilt: Wenn die sechs anderen Erkläreungen Dir nicht geholfen haben, warum sollten eine weitere hier dann helfen? Mir ist immer noch nicht klar, was bei Dir vermeintlich schief gegangen ist.
Und das meine Syntax:
Das hab ich jetzt nicht alles gelesen und es läuft bei mir auch nicht fehlerfrei durch. Also habe ich mal Deine Beispieldaten eingelesen und die Wahrscheinlichkeit gegen die Units geplottet:

Code: Alles auswählen

data <- read.table(header = TRUE, text ="Unit Ereignis_ja Ereignis_nein
22.37 32 4111
22.18 89 4254
25.43 73 4270
28.14 61 4282
33.13 4 4139
38.39 94 4249
42.17 9 4334
50.78 32 4311
51.52 39 4304")

library(ggplot2)
ggplot(data) +
  geom_point(aes(x = Unit, y=Ereignis_ja/(Ereignis_ja+Ereignis_nein))) +
  ylab("Anteil Ja")
Das sieht dann so aus:
Rplot.png
Rplot.png (3.32 KiB) 1365 mal betrachtet
Ehrlich gesagt kann man da natürlich eine logistische Regression durchlegen, aber so richtig überzeugend ist das nicht. Also bitte: Eine logistische Regression und die zeichnen wir in die Daten ein:

Code: Alles auswählen

log_mod <- glm(cbind(Ereignis_ja, Ereignis_nein) ~ Unit, data = data, 
               family = binomial)

pred <- predict(log_mod, newdata = data.frame(Unit = 20:60), type = "response")

ggplot(data) +
  geom_point(aes(x = Unit, y=Ereignis_ja/(Ereignis_ja+Ereignis_nein))) +
  geom_line(data = data.frame(Unit = 20:60, pred = pred),
            mapping = aes(x= Unit, y = pred))
Das sieht dann so aus:
Rplot01.png
Rplot01.png (5.19 KiB) 1365 mal betrachtet
Es war nicht zu erwarten, dass das jetzt wunderbar passt, aber ich finde das erstmal nicht unplausibel, dass das die bestpassende S-Kurve durch diese Daten sein soll.

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