Ich habe Daten für ein Netzwerk von Wetterstationen in den USA. Dies gibt mir einen Datenrahmen, der Datum, Breite, Länge und einige Messwerte enthält. Angenommen, die Daten werden einmal pro Tag erfasst und sind abhängig vom regionalen Wetter (nein, wir werden nicht auf diese Diskussion eingehen).
Ich möchte grafisch zeigen, wie zeitlich und räumlich gleichzeitig gemessene Werte korrelieren. Mein Ziel ist es, die regionale Homogenität (oder das Fehlen derselben) des untersuchten Wertes aufzuzeigen.
Datensatz
Zunächst nahm ich eine Gruppe von Stationen in der Region Massachusetts und Maine. Ich habe Websites nach Breiten- und Längengrad aus einer Indexdatei ausgewählt, die auf der FTP-Site von NOAA verfügbar ist.
Auf Anhieb sehen Sie ein Problem: Es gibt viele Websites, die ähnliche Bezeichner aufweisen oder sehr nahe beieinander liegen. FWIW, ich identifiziere sie mit den USAF- und WBAN-Codes. Bei genauerem Hinsehen der Metadaten stellte ich fest, dass sie unterschiedliche Koordinaten und Höhen haben und die Daten an einer Stelle anhalten und dann an einer anderen beginnen. Da ich es nicht besser weiß, muss ich sie als separate Stationen behandeln. Dies bedeutet, dass die Daten Paare von Stationen enthalten, die sehr nahe beieinander liegen.
Voruntersuchung
Ich habe versucht, die Daten nach Kalendermonaten zu gruppieren und dann die gewöhnliche Regression der kleinsten Quadrate zwischen verschiedenen Datenpaaren zu berechnen. Ich zeichne dann die Korrelation zwischen allen Paaren als eine Linie, die die Stationen verbindet (unten). Die Linienfarbe zeigt den Wert von R2 aus der OLS-Anpassung. Die Abbildung zeigt dann, wie die über 30 Datenpunkte von Januar, Februar usw. zwischen verschiedenen Stationen im interessierenden Bereich korreliert sind.
Ich habe die zugrunde liegenden Codes so geschrieben, dass der Tagesmittelwert nur berechnet wird, wenn alle 6 Stunden Datenpunkte vorliegen. Daher sollten die Daten standortübergreifend vergleichbar sein.
Probleme
Leider gibt es einfach zu viele Daten, um auf einem Plot einen Sinn zu ergeben. Dies kann nicht durch Verringern der Zeilengröße behoben werden.
Das Netzwerk scheint zu komplex zu sein, daher denke ich, dass ich einen Weg finden muss, um die Komplexität zu reduzieren, oder eine Art räumlichen Kernel anzuwenden.
Ich bin mir auch nicht sicher, welche Metrik am besten geeignet ist, um die Korrelation darzustellen, aber für das beabsichtigte (nicht technische) Publikum ist der Korrelationskoeffizient von OLS möglicherweise am einfachsten zu erklären. Möglicherweise muss ich auch andere Informationen wie den Gradienten oder den Standardfehler angeben.
Fragen
Ich lerne mich gleichzeitig in dieses Feld und in R ein und würde mich über Vorschläge freuen zu:
- Was ist der formalere Name für das, was ich versuche zu tun? Gibt es einige hilfreiche Begriffe, mit denen ich mehr Literatur finden könnte? Meine Suche ist das Zeichnen von Leerzeichen für eine übliche Anwendung.
- Gibt es geeignetere Methoden, um die Korrelation zwischen mehreren im Raum getrennten Datensätzen darzustellen?
- ... insbesondere Methoden, die sich visuell leicht darstellen lassen?
- Sind einige davon in R implementiert?
- Bietet sich einer dieser Ansätze für die Automatisierung an?
quelle
Antworten:
Ich denke, es gibt ein paar Möglichkeiten, um diese Art von Daten anzuzeigen:
Die erste Option wäre die Durchführung einer "Empirical Orthogonal Functions Analysis" (EOF) (auch als "Principal Component Analysis" (PCA) in Nicht-Klimakreisen bezeichnet). Für Ihren Fall sollte dies auf einer Korrelationsmatrix Ihrer Datenpositionen durchgeführt werden. Beispielsweise
dat
wäre Ihre Datenmatrix Ihre räumlichen Positionen in der Spaltendimension und der gemessene Parameter in den Zeilen. Ihre Datenmatrix enthält also Zeitreihen für jeden Standort. Mit dieserprcomp()
Funktion können Sie die Hauptkomponenten oder dominanten Korrelationsmodi für dieses Feld ermitteln:Die zweite Möglichkeit wäre, Karten zu erstellen, die die Korrelation zu einem bestimmten Ort von Interesse anzeigen:
EDIT: zusätzliches Beispiel
Im folgenden Beispiel werden keine Gappy-Daten verwendet, Sie können jedoch nach der Interpolation mit DINEOF dieselbe Analyse auf ein Datenfeld anwenden ( http://menugget.blogspot.de/2012/10/dineof-data-interpolating-empirical.html ). . Das folgende Beispiel verwendet eine Teilmenge der monatlichen Anomaliedruckdaten aus dem folgenden Datensatz ( http://www.esrl.noaa.gov/psd/gcos_wgsp/Gridded/data.hadslp2.html ):
Ordnen Sie den führenden EOF-Modus zu
Erstellen Sie eine Korrelationskarte
quelle
Ich sehe nicht klar hinter den Linien, aber es scheint mir, dass es zu viele Datenpunkte gibt.
Da Sie die regionale Homogenität und nicht genau die Stationen zeigen möchten, empfehle ich Ihnen, diese zunächst räumlich zu gruppieren. Beispiel: Überlagerung mit einem "Fischnetz" und Berechnung des durchschnittlichen Messwerts in jeder Zelle (zu jedem Zeitpunkt). Wenn Sie diese Durchschnittswerte auf diese Weise in die Zellmitten platzieren, rastern Sie die Daten (oder Sie können auch den mittleren Breiten- und Längengrad in jeder Zelle berechnen, wenn Sie keine überlagernden Linien möchten). Oder um in Verwaltungseinheiten zu arbeiten, was auch immer. Dann können Sie für diese neuen gemittelten "Stationen" Korrelationen berechnen und eine Karte mit einer geringeren Anzahl von Linien zeichnen.
Dies kann auch jene zufälligen einzelnen Linien mit hoher Korrelation entfernen, die durch den gesamten Bereich verlaufen.
quelle