Seite 1 von 1
Heatmap Interpretation und Funktion
Verfasst: Sa Mai 04, 2019 12:28 pm
von brunsi
Hallo Zusammen
Im Rahmen meiner Bachelorarbeit soll ich rausfinden, ob zwischen zwei Kodierungen, die aus kategorischen Werten bestehen und in einer n:m Beziehung kodiert werden, Muster und Abhängigkeiten bestehen.
Ich habe aus den vielen Daten verschiedene Datensets erstellt und aus diesen dann jeweils eine Heatmap mit heatmap.2 erstellt. Bei der Interpretation der Ergebnisse habe ich festgestellt, dass ich wohl zu wenig verstehe, was die heatmap.2 genau macht; was geschieht, wenn ich bspw. nach row oder column skaliere.
Ich habe einige generelle Erklärungen gefunden, jedoch bin ich mir nicht sicher, ob ich das alles richtig verstehe. Hat jemand eventuell gute Literaturtipps, die mir hilft, die Ergebnisse der Heatmap richtig zu interpretieren/verstehen oder kann es mir eventuell sogar hier erklären kurz und knackig erklären oder einige Stichworte lieferen, die für das Verständnis relevant sind?
Liebe Grüsse
S.
Re: Heatmap Interpretation und Funktion
Verfasst: Sa Mai 04, 2019 12:47 pm
von jogo
Hallo Brunsi,
kannst Du bitte die Struktur der Daten und Deinen Code und die Heatmap zeigen?
Gruß, Jörg
Re: Heatmap Interpretation und Funktion
Verfasst: Sa Mai 04, 2019 1:57 pm
von brunsi
Ich hab mal verschiedene Auswertungen gemacht, wo ich scale jeweils angepasst habe.
Code 1
Code: Alles auswählen
heatmap_HNOKapitel80 <- heatmap.2(HNOKapitel80_rix, dendrogram = "both", scale="none", density.info = "none", trace = 'none',
col=colors,
main ="test_scalenone",
margins= c(4.7, 6), cexRow=0.7, cexCol=1)
Code 2
Code: Alles auswählen
heatmap_HNOKapitel80 <- heatmap.2(HNOKapitel80_rix, dendrogram = "both", scale="row", density.info = "none", trace = 'none',
col=colors,
main ="test_scalerow",
margins= c(4.7, 6), cexRow=0.7, cexCol=1)
Code 3
Code: Alles auswählen
heatmap_HNOKapitel80 <- heatmap.2(HNOKapitel80_rix, dendrogram = "both", scale="row", density.info = "none", trace = 'none',
col=colors,
main ="test_scalerow",
margins= c(4.7, 6), cexRow=0.7, cexCol=1)
Re: Heatmap Interpretation und Funktion
Verfasst: Sa Mai 04, 2019 1:58 pm
von brunsi
Und hier noch die Heatmap zu Code1 sowie das Datenset.
Gemäss meinem Verständnis sollte ich aus diesen Heatmaps ableiten können, ob die Kodes der X und der Y Achse korrelieren oder nicht und ob es sich lohnt, diese Thematik weiterzuverfolgen. Mit dem langfristigen Ziel, von den Werte der Y Achse auf die X Achse zu schliessen.
Zu Beginn hatte ich nicht realisiert, dass es eine scale Funktion gibt, weshalb ich davon ausging, je dunkler ein Bereicht, desto besser. Nun bin ich aber durch diese beiden Scale Funktionen sehr verunsichert und stehe wohl grad etwas an
Re: Heatmap Interpretation und Funktion
Verfasst: Sa Mai 04, 2019 11:32 pm
von jogo
Hallo Brunsi,
bei mir kennt R die Funktion heatmap.2() nicht. Hast Du eine Erklärung dafür?
Gruß, Jörg
Re: Heatmap Interpretation und Funktion
Verfasst: So Mai 05, 2019 10:42 pm
von brunsi
Hi Jörg
ich musste das package gplots installieren.
Gruss
Re: Heatmap Interpretation und Funktion
Verfasst: Mo Mai 06, 2019 9:27 am
von jogo
Hallo Brunsi,
brunsi hat geschrieben: ↑So Mai 05, 2019 10:42 pm
ich musste das package gplots installieren.
aber das alleine reicht doch nicht. Da muss doch in Deinem Code noch irgendwo
stehen, oder nicht?
ok, ich habe es geschafft, das Paket zu installieren.
Wenn Du mir jetzt noch verrätst, wie ich die Daten einlesen kann, dann haben wir ein reproduzierbares Beispiel im Sinne von
viewtopic.php?f=20&t=11 oder
https://stackoverflow.com/questions/596 ... le-example
Gruß, Jörg
Re: Heatmap Interpretation und Funktion
Verfasst: Mo Mai 06, 2019 11:00 am
von brunsi
Hi Jörg
Anbei der komplette Code.
Damit ich die Daten mit der Funktion "read.csv" einlesen konnte, musste ich erst mit setwd den korrekten Pfad festlegen.
Aus den eingelesenen Daten habe ich eine Data Matrix erstellt, mit der ich dann die Heatmap erstellen konnte.
Liebe Grüsse
Silvia
Code: Alles auswählen
Code: #Library laden
library(gplots)
getwd()
#pfad definieren
setwd("C://Bachelorarbeit//Daten//")
getOption("max.print")
options(max.print=500000)
#read data als CSV
HNOKapitel80 <- read.csv("HNOKapitel_absolout_80.csv", row.names=1, header = TRUE, sep=";")
#Import prüfen
HNOKapitel80
#create datamatrix
HNOKapitel80_rix <- data.matrix(HNOKapitel80)
#Datenatrix prüfen
HNOKapitel80_rix
#Create heatmap.2 mit scaling "none"
heatmap_HNOKapitel80 <- heatmap.2(HNOKapitel80_rix, dendrogram = "both", scale="none", density.info = "none", trace = 'none',
col=colors,
main ="test_scalecolumn",
margins= c(4.7, 6), cexRow=0.7, cexCol=1)
[/b]
Re: Heatmap Interpretation und Funktion
Verfasst: Mo Mai 06, 2019 1:10 pm
von jogo
Hallo Silvia,
Code: Alles auswählen
library("gplots")
#read data als CSV
# http://forum.r-statistik.de/download/file.php?id=526
HNOKapitel80 <- read.csv("http://forum.r-statistik.de/download/file.php?id=526", row.names=1, header = TRUE, sep=";")
HNOKapitel80_rix <- data.matrix(HNOKapitel80) #create datamatrix
# HNOKapitel80_rix #Datenatrix prüfen
#Create heatmap.2 mit scaling "none"
heatmap_HNOKapitel80 <-
heatmap.2(HNOKapitel80_rix, dendrogram = "both", scale="none", density.info = "none", trace = 'none',
col=colors, margins= c(4.7, 6), cexRow=0.7, cexCol=1)
führt bei mir zu dem Fehler:
Code: Alles auswählen
> heatmap_HNOKapitel80 <-
+ heatmap.2(HNOKapitel80_rix, dendrogram = "both", scale="none", density.info = "none", trace = 'none',
+ col=colors, margins= c(4.7, 6), cexRow=0.7, cexCol=1)
Fehler in image.default(1:nc, 1:nr, x, xlim = 0.5 + c(0, nc), ylim = 0.5 + :
must have one more break than colour
vielleicht ist das so wie hier:
https://stackoverflow.com/questions/368 ... -a-heatmap
So funktioniert das bei mir erstmal:
Code: Alles auswählen
my_palette<- colorRampPalette(c("white","lightskyblue","navyblue"))
#Create heatmap.2 mit scaling "none"
heatmap_HNOKapitel80 <-
heatmap.2(HNOKapitel80_rix, dendrogram = "both", scale="none", density.info = "none", trace = 'none',
col=my_palette, margins= c(4.7, 6), cexRow=0.7, cexCol=1)
Wahrscheinlich bin ich auch nicht schlauer als Du. Ich habe mir noch
angesehen, aber da ich bisher noch nie diese Darstellungen verwendet habe, um irgendetwas daraus zu interpretieren, müsste auch ich erstmal lesen. Auch der Abschnitt
Details im Hilfetext der Funktion konnte mich noch nicht erleuchten.
Gruß, Jörg
Re: Heatmap Interpretation und Funktion
Verfasst: Mo Mai 06, 2019 4:54 pm
von brunsi
Hi Jörg
Ich hab mich in der Zwischenzeit ausführlich eingelesen. Wählt man eine Skallierung der Daten (scale = "row" oder scale = "column") wird der Z-Score der Werte berechnet (Wert 0 Mittelwert / Standardabweichung), wodurch die sich die werte jeweils um den 0-Wert herum sammeln. Wählt man keine Skallierung aus, erhält jeder Wert der Matrix eine Farbe entsprechend der Farblegende und der Zahl des Wertes. Sobald in den Daten Ausreisser dabei sind, führt des dazu, dass die breite der Legende so gross ist, dass die Ergebnisse "verrissen" werden und nur noch die Ausreisser erkennbar sind.
Liebe Grüsse.
S.