Matrixerstellung für multivariate Analyse spektroskopischer Daten
Moderator: EDi
Matrixerstellung für multivariate Analyse spektroskopischer Daten
Hallo zusammen,
ich bin blutiger Anfänger was R angeht und komme einfach nicht weiter...
Ich habe eine riesen Menge an Messdaten (Uv-Vis Spektroskopie) von verschiedenen Proben und möchte eine multivariate Datenanalyse (sowohl PCA, als auch hier. Clusteranalyse) durchführen, um Ähnlichkeiten und Unterschiede festzustellen.
Als Basis brauch ich jedoch zunächst eine Matrix und da liegt aktuell das Problem:
Pro Messung habe ich 600 Werte, da ich im Wellenlängenbereich von 200 bis 800 nm mit Schrittweite 1 nm messe --> x = Wellenlänge, y = Absorptionswerte. Das Gerät wirft mir die Ergebnisse als Excel-Tabelle aus. Ein Teil der Werte habe ich hier als Anhang hinzugefügt.
Die Messung erfolgte bei 15 Temperaturen (Raumtemperatur bis 90 °C).
Bei den Proben gibt es auch noch Variablen: pH-Wert, Salzkonzentration und Proteinkonzentration (PC).
Ich hatte mir überlegt, eine dreidimensionale Matrix zu erstellen:
Zeilen für die steigende Temperatur, Spalten für die verschiedenen Proben und jeder Punkt der Matrix enthält einen Vektor für die 600 Absorptionswerte.
Soweit die Theorie.
Macht das Sinn und ist es überhaupt in der Praxis umsetzbar?
Falls ja, wäre ich extrem dankbar für Ideen und Tipps, wie ich eine solche Matrix am Besten erstellen kann.
Beste Grüße,
Lara
ich bin blutiger Anfänger was R angeht und komme einfach nicht weiter...
Ich habe eine riesen Menge an Messdaten (Uv-Vis Spektroskopie) von verschiedenen Proben und möchte eine multivariate Datenanalyse (sowohl PCA, als auch hier. Clusteranalyse) durchführen, um Ähnlichkeiten und Unterschiede festzustellen.
Als Basis brauch ich jedoch zunächst eine Matrix und da liegt aktuell das Problem:
Pro Messung habe ich 600 Werte, da ich im Wellenlängenbereich von 200 bis 800 nm mit Schrittweite 1 nm messe --> x = Wellenlänge, y = Absorptionswerte. Das Gerät wirft mir die Ergebnisse als Excel-Tabelle aus. Ein Teil der Werte habe ich hier als Anhang hinzugefügt.
Die Messung erfolgte bei 15 Temperaturen (Raumtemperatur bis 90 °C).
Bei den Proben gibt es auch noch Variablen: pH-Wert, Salzkonzentration und Proteinkonzentration (PC).
Ich hatte mir überlegt, eine dreidimensionale Matrix zu erstellen:
Zeilen für die steigende Temperatur, Spalten für die verschiedenen Proben und jeder Punkt der Matrix enthält einen Vektor für die 600 Absorptionswerte.
Soweit die Theorie.
Macht das Sinn und ist es überhaupt in der Praxis umsetzbar?
Falls ja, wäre ich extrem dankbar für Ideen und Tipps, wie ich eine solche Matrix am Besten erstellen kann.
Beste Grüße,
Lara
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Hallo Lara,
willkommen im Forum!
In R kann man dies mit einem mehrdimensionalen array umsetzen.
Hast Du die Daten schon irgendwie in R eingelesen und kannst uns zeigen, mit welchem Funktionsaufruf Du das erledigt hast?
Gruß, Jörg
willkommen im Forum!
wenn Du meinst, das dies günstig ist, dann ist es sinnvoll.Larilu182 hat geschrieben: ↑Mo Feb 01, 2021 1:32 pm Ich hatte mir überlegt, eine dreidimensionale Matrix zu erstellen:
Zeilen für die steigende Temperatur, Spalten für die verschiedenen Proben und jeder Punkt der Matrix enthält einen Vektor für die 600 Absorptionswerte.
Soweit die Theorie.
Macht das Sinn und ist es überhaupt in der Praxis umsetzbar?
In R kann man dies mit einem mehrdimensionalen array umsetzen.
Da Exceltabellen ein flaches (=zweidimensionales) Design haben, wird man beim Einlesen wahrscheinlich auch erstmal so eine Struktur bekommen, die man dann anschließend in das array überführt.Falls ja, wäre ich extrem dankbar für Ideen und Tipps, wie ich eine solche Matrix am Besten erstellen kann.
Hast Du die Daten schon irgendwie in R eingelesen und kannst uns zeigen, mit welchem Funktionsaufruf Du das erledigt hast?
Gruß, Jörg
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Hallo Jörg,
danke für die schnelle Antwort und den Tipp mit Arrays. Da werde ich mich mal einlesen.
Ich habe nur mal zu Beginn die angefügt Exceldatei in R Studio hochgeladen und rumprobiert. Ich habe diese als Matrix (as.matrix) gesetzt und wollte sie zunächst normieren (scale). Dann erhalte ich jedoch schon die Fehlermeldung, dass x nicht numerisch ist...
Habe es mit csv-Format und Punkt statt Komma in der Excel-Datei versucht; bringt alles nichts.
Mit Deducer hab ich Probleme die Pakete von CRAN zu installieren...
Funktioniert alles nicht so wie es soll
Müsste ich für die dreidimensionale Matrix die Excel-Spalten vorab einzeln als Vektoren definieren und jedem Vektor einen Namen geben? Bei der Datenmenge wäre das nämlich ein riesen Aufwand.
Danke für die Hilfe!
Viele Grüße,
Lara
danke für die schnelle Antwort und den Tipp mit Arrays. Da werde ich mich mal einlesen.
Ich habe nur mal zu Beginn die angefügt Exceldatei in R Studio hochgeladen und rumprobiert. Ich habe diese als Matrix (as.matrix) gesetzt und wollte sie zunächst normieren (scale). Dann erhalte ich jedoch schon die Fehlermeldung, dass x nicht numerisch ist...
Habe es mit csv-Format und Punkt statt Komma in der Excel-Datei versucht; bringt alles nichts.
Mit Deducer hab ich Probleme die Pakete von CRAN zu installieren...
Funktioniert alles nicht so wie es soll
Müsste ich für die dreidimensionale Matrix die Excel-Spalten vorab einzeln als Vektoren definieren und jedem Vektor einen Namen geben? Bei der Datenmenge wäre das nämlich ein riesen Aufwand.
Danke für die Hilfe!
Viele Grüße,
Lara
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Hallo Lara.
Welche Probleme/Fehlermeldungen gab es?
erstmal die Tabelle einlesen - das Umstrukturieren in ein dreidimensionales array erfolgt danach.
Gruß, Jörg
hat RStudio beim Laden der Exceldatei irgendeine Codezeile generiert? Wenn ja, zeige sie uns bitte.
ich vermute hier ein Anfängerproblem ...Ich habe diese als Matrix (as.matrix) gesetzt und wollte sie zunächst normieren (scale). Dann erhalte ich jedoch schon die Fehlermeldung, dass x nicht numerisch ist...
Wenn eine Exceldatei eingelesen werden kann, ist das nicht das schlechteste.Habe es mit csv-Format und Punkt statt Komma in der Excel-Datei versucht; bringt alles nichts.
Diese Schilderung ist zu vage, als dass bei diesem Informationsstand geholfen werden könnte.Mit Deducer hab ich Probleme die Pakete von CRAN zu installieren...
Welche Probleme/Fehlermeldungen gab es?
Wie etwas funktionieren soll, steht üblicherweise in der Dokumentation. Oft ist es aber so, dass die Wunschvorstellungen der Nutzer der Funktionen von der Dokumentation abweichen.Funktioniert alles nicht so wie es soll
Wie ich schon geschrieben habe:Müsste ich für die dreidimensionale Matrix die Excel-Spalten vorab einzeln als Vektoren definieren und jedem Vektor einen Namen geben? Bei der Datenmenge wäre das nämlich ein riesen Aufwand.
erstmal die Tabelle einlesen - das Umstrukturieren in ein dreidimensionales array erfolgt danach.
Gruß, Jörg
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Da kann ich nicht ganz folgen, warum 3D?Ich hatte mir überlegt, eine dreidimensionale Matrix zu erstellen: Zeilen für die steigende Temperatur, Spalten für die verschiedenen Proben und jeder Punkt der Matrix enthält einen Vektor für die 600 Absorptionswerte.
Für multivariate Verfahren hat man oft einfache Matrizen.
Hier hättest du 600 Spalten (Wellenlängen), 15 Zeilen (Beobachtungen), Werte sind die Absorptionswerte.
Zusätzliche Spalten als erklärende Variable können hinzugefügt werden (Temperatur, pH etc) und können zum einfärben bei PCA genommen werden oder als erklärende Variablen in einer RDA.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Hallo Lara,
einlesen konnte ich Deine Beispieldatei:
oder auch als Matrix:
So, und nun?
Gruß, Jörg
einlesen konnte ich Deine Beispieldatei:
Code: Alles auswählen
library("openxlsx")
setwd("...")
dat <- read.xlsx("Phycocyanin_0,4.xlsx")
Code: Alles auswählen
M <- as.matrix(dat)
Gruß, Jörg
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Nach Durchsicht der Exceldatei würde ich mal vermuten, dass Du für die Auswertung mindestens Konzentration ... Temperatur als zusätzliche Spalten brauchen wirst - egal ob für grafische oder sonstige Auswertungen. Nachdem allerdings jede Messreihe gleich 3 Randbedingungen in der Kopfzeile hat, wird das etwas aufwendiger Lässt sich da auf der Geräteseite was machen?
Und wie sollen die spektroskopischen Daten konkret in die PCA oder dergl. eingehen? Doch wahrscheinlich reduziert auf solche Kenndaten wie Absorptionsmaximum oder spektralen Absorptionskoeffizienten?
VG Ruedi
Und wie sollen die spektroskopischen Daten konkret in die PCA oder dergl. eingehen? Doch wahrscheinlich reduziert auf solche Kenndaten wie Absorptionsmaximum oder spektralen Absorptionskoeffizienten?
VG Ruedi
fortune(111)
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Hallo zusammen,
danke für die Antworten.
Ich hatte mir Bücher bestellt (R für Dummies und Chemometrics with R von Ron Wehrens), um mich erstmal auf einen gewissen Wissensstand zu bringen.
Das Einlesen meiner Excel-Datei und das Festlegen als Matrix hat funktioniert (wie von Jörg auch beschrieben).
@EDi: Ich hatte mir eine 3D Matrix überlegt, bei der die Zeilen für die steigende Temperatur und die Spalten für die Kombination verschiedener Variablen wie Proteinkonzentration bei einem bestimmten pH und Salzkonzentration stehen.
Pro Datenpunkt hab ich aber 600 Messwerte, die ich als Vektor definieren würde. Somit hätte ich eine Matrix, die aus einzelnen Vektoren besteht.
@Ruedi: von Geräteseite lässt sich da leider nichts machen. Bei meinem Versuch untersuche ich den Einfluss der Temperatur auf eine Proteinlösung, wobei das Protein durch Faktoren wie pH und Salzkonzentration beeinflusst wird...
Mein Ziel wäre es, dass R meine Messdaten ausließt und anhand der Lage und Höhe der Maxima Cluster erstellt (hierarchische Clusteranalyse).
Ich dachte, dass ich die PCA zur Datenreduktion nutzen kann, um die Clusteranalyse zu vereinfachen.
Der nächste Schritt wäre vermutlich, dass die Spalten der Matrix (M, wie Jörg sie genannt hat) als Vektoren definiert werden, um ein Datenfeld mittels array zu erzeugen. Dieses könnte ich dann für die PCA nutzen oder?
Beste Grüße,
Lara
danke für die Antworten.
Ich hatte mir Bücher bestellt (R für Dummies und Chemometrics with R von Ron Wehrens), um mich erstmal auf einen gewissen Wissensstand zu bringen.
Das Einlesen meiner Excel-Datei und das Festlegen als Matrix hat funktioniert (wie von Jörg auch beschrieben).
@EDi: Ich hatte mir eine 3D Matrix überlegt, bei der die Zeilen für die steigende Temperatur und die Spalten für die Kombination verschiedener Variablen wie Proteinkonzentration bei einem bestimmten pH und Salzkonzentration stehen.
Pro Datenpunkt hab ich aber 600 Messwerte, die ich als Vektor definieren würde. Somit hätte ich eine Matrix, die aus einzelnen Vektoren besteht.
@Ruedi: von Geräteseite lässt sich da leider nichts machen. Bei meinem Versuch untersuche ich den Einfluss der Temperatur auf eine Proteinlösung, wobei das Protein durch Faktoren wie pH und Salzkonzentration beeinflusst wird...
Mein Ziel wäre es, dass R meine Messdaten ausließt und anhand der Lage und Höhe der Maxima Cluster erstellt (hierarchische Clusteranalyse).
Ich dachte, dass ich die PCA zur Datenreduktion nutzen kann, um die Clusteranalyse zu vereinfachen.
Der nächste Schritt wäre vermutlich, dass die Spalten der Matrix (M, wie Jörg sie genannt hat) als Vektoren definiert werden, um ein Datenfeld mittels array zu erzeugen. Dieses könnte ich dann für die PCA nutzen oder?
Beste Grüße,
Lara
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Hallo Lara,
wenn nur jeweils das Maximum und die zugehörige Wellenlänge herausgezogen werden sollen, wozu dann die restlichen Spektraldaten? Wenn es beiden bisherigen Spalten bleiben soll, dann würde doch das Maximum je Spalte reichen - zusammen mit der zugehörigen Wellenlänge?
VG Ruedi
wenn nur jeweils das Maximum und die zugehörige Wellenlänge herausgezogen werden sollen, wozu dann die restlichen Spektraldaten? Wenn es beiden bisherigen Spalten bleiben soll, dann würde doch das Maximum je Spalte reichen - zusammen mit der zugehörigen Wellenlänge?
VG Ruedi
fortune(111)
Re: Matrixerstellung für multivariate Analyse spektroskopischer Daten
Hallo Ruedi,
ich bin noch am überlegen, wie es am Besten wäre.
In einem Spektrum gibt es i.d.R. 3 Maxima und ich will die Lage und die Höhe (Intensität) der drei Maxima zwischen den Spektren vergleichen.
Den Zustand des Proteins möchte ich dann in einem farbigen Diagramm darstellen, wofür ich wohl am besten die Clusteranalyse durchführe, um Gruppen zu bilden, die ich farblich unterschiedlich kennzeichne...
VG, Lara
ich bin noch am überlegen, wie es am Besten wäre.
In einem Spektrum gibt es i.d.R. 3 Maxima und ich will die Lage und die Höhe (Intensität) der drei Maxima zwischen den Spektren vergleichen.
Den Zustand des Proteins möchte ich dann in einem farbigen Diagramm darstellen, wofür ich wohl am besten die Clusteranalyse durchführe, um Gruppen zu bilden, die ich farblich unterschiedlich kennzeichne...
VG, Lara