Heatmap Interpretation und Funktion
Moderator: jogo
Heatmap Interpretation und Funktion
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.
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
Hallo Brunsi,
kannst Du bitte die Struktur der Daten und Deinen Code und die Heatmap zeigen?
Gruß, Jörg
kannst Du bitte die Struktur der Daten und Deinen Code und die Heatmap zeigen?
Gruß, Jörg
Re: Heatmap Interpretation und Funktion
Ich hab mal verschiedene Auswertungen gemacht, wo ich scale jeweils angepasst habe.
Code 1
Code 2
Code 3
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: 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: 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)
- Dateianhänge
-
- 2_scalerow.pdf
- heatmap zu Code 2
- (40.73 KiB) 58-mal heruntergeladen
-
- 3_scalecolumne.pdf
- Heatmap zu Code 3
- (40.72 KiB) 67-mal heruntergeladen
Re: Heatmap Interpretation und Funktion
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
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
- Dateianhänge
-
- HNOKapitel_absolout_80.csv
- (3.11 KiB) 66-mal heruntergeladen
-
- 1_Scalenone.pdf
- (40.24 KiB) 66-mal heruntergeladen
Re: Heatmap Interpretation und Funktion
Hallo Brunsi,
bei mir kennt R die Funktion heatmap.2() nicht. Hast Du eine Erklärung dafür?
Gruß, Jörg
bei mir kennt R die Funktion heatmap.2() nicht. Hast Du eine Erklärung dafür?
Gruß, Jörg
Re: Heatmap Interpretation und Funktion
Hi Jörg
ich musste das package gplots installieren.
Gruss
ich musste das package gplots installieren.
Gruss
Re: Heatmap Interpretation und Funktion
Hallo Brunsi,
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
aber das alleine reicht doch nicht. Da muss doch in Deinem Code noch irgendwo
Code: Alles auswählen
library("gplots")
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
Code: Alles auswählen
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)
Re: Heatmap Interpretation und Funktion
Hallo Silvia,
führt bei mir zu dem Fehler:
vielleicht ist das so wie hier:
https://stackoverflow.com/questions/368 ... -a-heatmap
So funktioniert das bei mir erstmal:
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
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)
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)
Code: Alles auswählen
example(heatmap.2)
Gruß, Jörg
Re: Heatmap Interpretation und Funktion
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.
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.