p-Wert in Boxplot einblenden

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: p-Wert in Boxplot einblenden

Beitrag von jogo »

Hallo mokka,
mokka hat geschrieben: Di Okt 23, 2018 9:23 am Ich lese Daten in Matlab ein, berechne dort diverses Zeug und speichere meine berechneten Werte dann in eine Excel Tabelle. Man kann sich das so vorstellen dass jede Variable (z.b. SD, HF, LF) unter 2 verschiedenen ‚laborbedingungen‘ gemessen wir (Zustand 1 ist k, Zustand 2 ist n).

Ich möchte jetzt im Endeffekt (glaube ich ^^) das Excel file einlesen (danke für den Tipp für das einlesen vom CSV file) und anschließend die Variablen in Boxplots gegenüberstellen.
vielleicht ist für Dich dieses Paket interessant:
https://cran.r-project.org/web/packages ... index.html
Es gibt auch noch einige andere R-Pakete im Zusammenhang mit Matlab.

Machst Du in Matlab ganz spezielle Sachen oder könnte alternativ auch octave eingesetzt werden?

Gruß, Jörg
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: p-Wert in Boxplot einblenden

Beitrag von Athomas »

Aha - also ein fliegender Wechsel von Matlab über Excel nach R - der erhofft schöneren Plots wegen :cry: !
mokka
Beiträge: 29
Registriert: Fr Okt 19, 2018 2:46 pm

Re: p-Wert in Boxplot einblenden

Beitrag von mokka »

jogo hat geschrieben: Di Okt 23, 2018 9:39 am Hallo mokka,
mokka hat geschrieben: Di Okt 23, 2018 9:23 am Ich lese Daten in Matlab ein, berechne dort diverses Zeug und speichere meine berechneten Werte dann in eine Excel Tabelle. Man kann sich das so vorstellen dass jede Variable (z.b. SD, HF, LF) unter 2 verschiedenen ‚laborbedingungen‘ gemessen wir (Zustand 1 ist k, Zustand 2 ist n).

Ich möchte jetzt im Endeffekt (glaube ich ^^) das Excel file einlesen (danke für den Tipp für das einlesen vom CSV file) und anschließend die Variablen in Boxplots gegenüberstellen.
vielleicht ist für Dich dieses Paket interessant:
https://cran.r-project.org/web/packages ... index.html
Es gibt auch noch einige andere R-Pakete im Zusammenhang mit Matlab.

Machst Du in Matlab ganz spezielle Sachen oder könnte alternativ auch octave eingesetzt werden?

Gruß, Jörg
Wir haben schon ziemlich große Codes in Matlab Grundierung Auswertung von gewissen Sachen. Die statistische Auswertung möchte ich allerdings mit R machen, weil das einfach dem Standard der goldenen Liga entspricht quasi :)
mokka
Beiträge: 29
Registriert: Fr Okt 19, 2018 2:46 pm

Re: p-Wert in Boxplot einblenden

Beitrag von mokka »

Athomas hat geschrieben: Di Okt 23, 2018 9:39 am Aha - also ein fliegender Wechsel von Matlab über Excel nach R - der erhofft schöneren Plots wegen :cry: !
Nein nicht nur der Plots halber, aber ja um die Sachen statistisch auszuwerten. Ist eine interdisziplinäres Projekt: die eine Fraktion ist was die Signalverarbeitung angeht hardline pro-matlab, die Statistik sollte aber mit R gemacht werden.

Bitte nicht als persönliche Differenz betrachten!

Danke für eure Hilfe - echt toll :)
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: p-Wert in Boxplot einblenden

Beitrag von Athomas »

Ich nehme an, es ist bekannt, dass der "gepaarte t-Test" die Normalverteilung der Differenzen voraussetzt - da brauch ich keinen Test, um zu sehen, dass das bei Deinen (Roh-) Daten nicht der Fall ist!
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: p-Wert in Boxplot einblenden

Beitrag von bigben »

Bei n = 11 kann man bezüglich der Normalverteilungannahme wohl nicht mehr auf das CLT verweisen. Ein Vorzeichen-Rangtest könnte eine Alternative für den t-Test für verbundene Sichtproben sein.

Ich finde das völlig ok, Daten in Matlab zu rechnen und in R zu präsentieren. Wichtiger als schöne Grafiken ist aber doch, dass man sich zu der Grafik was gedacht hat und dass sie den Daten gerecht wird. Bei n = 11 ist ein Boxplot m. E. unangebracht, da kann man die Daten selbst (Dot-Plot oder Streudiagramme oder sowas machen) und vor allem sind Boxplots bei verbundenen Datensätzen unangebracht, weil die ganze Information des Verbunden-Seins darin verloren geht.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
mokka
Beiträge: 29
Registriert: Fr Okt 19, 2018 2:46 pm

Re: p-Wert in Boxplot einblenden

Beitrag von mokka »

Ich glaube euch ALLES, aber ich habe den Auftrag das zu machen... ich bin nicht der Statistiker in dem Team ^^

Welchen Test ich genau mache ist momentan auch garnicht so wichtig... wichtig sind die Graphen.

Dein Input mit den boxplots und den verbundenen Stichproben klingt für mich nachvollziehbar - Danke für den Input, ich werd das diskutieren!

Ich bräuchte allerdings bitte trotzdem Hilfe, wie ich die excel Daten ‚einlesen‘ kann, sodass ich dann plotten kann. Kann ja dann auch ein dots plot oder so sein :)

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

Re: p-Wert in Boxplot einblenden

Beitrag von Athomas »

Code: Alles auswählen

library(data.table)
DT <- fread("D:/R/R Forum/Boxplots/Beispieldaten.txt", dec=",")
DT[  , ID:=.I]
DT.long <- melt(DT, id="ID", variable.name="Messung", variable.factor = FALSE)
DT.long[  , ":="(Art     = substr(Messung, 1, nchar(Messung) - 2), 
                 Version = substr(Messung, nchar(Messung), nchar(Messung)))]
DT.2 <- dcast(DT.long, ID + Art ~ Version)

library(ggplot2)
Grafik <- ggplot(DT.2) + 
  theme_bw() +
  geom_point(aes(k,n)) +
  facet_wrap(Art ~.)
print(Grafik)
BITTE
mokka
Beiträge: 29
Registriert: Fr Okt 19, 2018 2:46 pm

Re: p-Wert in Boxplot einblenden

Beitrag von mokka »

Athomas hat geschrieben: Di Okt 23, 2018 12:11 pm

Code: Alles auswählen

library(data.table)
DT <- fread("D:/R/R Forum/Boxplots/Beispieldaten.txt", dec=",")
DT[  , ID:=.I]
DT.long <- melt(DT, id="ID", variable.name="Messung", variable.factor = FALSE)
DT.long[  , ":="(Art     = substr(Messung, 1, nchar(Messung) - 2), 
                 Version = substr(Messung, nchar(Messung), nchar(Messung)))]
DT.2 <- dcast(DT.long, ID + Art ~ Version)

library(ggplot2)
Grafik <- ggplot(DT.2) + 
  theme_bw() +
  geom_point(aes(k,n)) +
  facet_wrap(Art ~.)
print(Grafik)
BITTE
Wow danke!

habe den code straight übernommen... und bekomme folgende Meldung:

Code: Alles auswählen

> library(data.table)
> DT <- fread("C:/beispieldata.txt", dec=",")
> DT[  , ID:=.I]
> DT.long <- melt(DT, id="ID", variable.name="Messung", variable.factor = FALSE)
[b]Warning message:[/b]
In melt.data.table(DT, id = "ID", variable.name = "Messung", variable.factor = FALSE) :
  'measure.vars' [id, Median_rr_k, Median_rr_n, ...] are not all of the same type. By order of hierarchy, the molten data value column will be of type 'double'. All measure variables not of type 'double' will be coerced too. Check DETAILS in ?melt.data.table for more on coercion.
> DT.long[  , ":="(Art     = substr(Messung, 1, nchar(Messung) - 2), 
+                  Version = substr(Messung, nchar(Messung), nchar(Messung)))]
> DT.2 <- dcast(DT.long, ID + Art ~ Version)
> 
> library(ggplot2)
> Grafik <- ggplot(DT.2) + 
+   theme_bw() +
+   geom_point(aes(k,n)) +
+   facet_wrap(Art ~.)
> print(Grafik)
[b]Error in FUN(X[[i]], ...) : object 'k' not found[/b]
DT versteh ich...
DT.long: was passiert da? sollte ich die struktur noch verstehen, wenn ich mir das environment (RStudio) ansehe?
DT.2: HÄ? :)

Frage nur nach, weil ich gerne verstehn möchte, womit ich arbeite und weil ich ja längerfristig selbst mehr zusammenbringen möchte :)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: p-Wert in Boxplot einblenden

Beitrag von bigben »

Hallo mokka,

aus zwei Datenspalten nebeneinander eine lange zu machen ist, wie Du Dir vorstellen kannst, ein häufig vorkommendes Problem in der Datenverarbeitung. Dafür gibt es verschiedene Lösungswege. Viel zu viele verschiedene Lösungswege. Ich habe Dir einen mit einfachstem R Grundvokabular vorgemacht, EDi hat Dich auf ein package verwiesen, mit dem man das sehr elegant machen kann und Athomas hat ein anderes package verwendet, was solche Aufgaben mit Schwerpunkt auf kurzen Programmcode und hoche Ausführungsgeschwindigkeit bei riesigen Datensätzen macht.

Wenn Du irgendwas mit R ernsthaft machen und verstehen möchtest, musst Du auch selbst ein wenig lesen. Was die Funktion rep macht, was das package tidyr macht und was data.table ist, da musst Du ggf. auch mal Google anwerfen. Wenn Du nach dem Googlen nicht weiter kommst, frag gerne gezielt nochmal nach.

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