Seite 2 von 3

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 9:39 am
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

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 9:39 am
von Athomas
Aha - also ein fliegender Wechsel von Matlab über Excel nach R - der erhofft schöneren Plots wegen :cry: !

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 10:08 am
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 :)

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 10:10 am
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 :)

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 11:14 am
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!

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 11:30 am
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

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 11:39 am
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

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 12:11 pm
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

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 12:39 pm
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 :)

Re: p-Wert in Boxplot einblenden

Verfasst: Di Okt 23, 2018 1:00 pm
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