Ich bin nach einer Beschreibung / Methodik für die Durchführung einer geografisch gewichteten Hauptkomponentenanalyse (GWPCA). Ich bin glücklich, Python für einen Teil davon zu verwenden, und ich stelle mir vor, dass SPSS oder R verwendet werden, um die PCA für die geografisch gewichteten Variablen auszuführen.
Mein Datensatz besteht aus ungefähr 30 unabhängigen Variablen, die in ~ 550 Zensus-Traktaten (Vektorgeometrie) gemessen werden.
Ich weiß, dass dies eine geladene Frage ist. Aber während ich suche und suche, scheint es keine Lösungen zu geben. Was mir begegnet ist, sind mathematische Gleichungen, die die grundlegende Zusammensetzung von GWPCA (und GWR) erklären. Was ich anstrebe, ist eher in dem Sinne anzuwenden, dass ich nach den wichtigsten Schritten suche, die ich ausführen muss, um von den Rohdaten zu den GWPCA-Ergebnissen zu gelangen.
Aufgrund der folgenden Kommentare möchte ich den ersten Teil mit dieser Bearbeitung erweitern.
Um Paul anzusprechen ...
Ich begründe mein Interesse an GWPCA mit dem folgenden Artikel:
Lloyd, CD, (2010). Analyse der Bevölkerungsmerkmale mit Hilfe der geografisch gewichteten Hauptkomponentenanalyse: Eine Fallstudie von Nordirland aus dem Jahr 2001. Computer, Umwelt und städtische Systeme, 34 (5), S. 389-399.
Für diejenigen, die keinen Zugang zur Literatur haben, habe ich Screenshots der einzelnen Abschnitte beigefügt, die die Mathematik unten erläutern:
Und um whuber anzusprechen ...
Ohne ins Detail zu gehen (Vertraulichkeit), versuchen wir, die 30 Variablen, von denen wir glauben, dass sie alle sehr gute Indikatoren sind (wenn auch global), auf die Menge der Komponenten mit Eigenwerten größer als 1 zu reduzieren um die lokalen Abweichungen zu verstehen, die durch diese Komponenten erklärt werden.
Meines Erachtens wird es unser Hauptziel sein, das Konzept von GWPCA zu beweisen, dh die räumliche Eindeutigkeit unserer Daten aufzuzeigen, und dass wir nicht alle unabhängigen Variablen als global erklärend betrachten können. Vielmehr hilft uns die lokale Skala (Nachbarschaften), die jede Komponente identifiziert, beim Verständnis der mehrdimensionalen Natur unserer Daten (wie Variablen miteinander kombiniert werden können, um bestimmte Nachbarschaften in unserem Untersuchungsgebiet zu erklären).
Wir hoffen, den prozentualen Anteil der Varianz, der auf jede Komponente entfällt (separat), abbilden zu können, um das Ausmaß der durch die betreffende Komponente erklärten Nachbarschaft zu verstehen (um das Verständnis der lokalen Räumlichkeit unserer Komponenten zu erleichtern). Vielleicht kommen Ihnen einige andere Mapping-Beispiele in den Sinn, aber derzeit keine.
Zusätzlich:
Die Mathematik hinter dem GWPCA geht über das hinaus, was ich aufgrund meines Hintergrunds in der geografischen Analyse und der Sozialstatistik verstehe. Die Anwendung der Mathematik ist am wichtigsten, das heißt, was verbinde ich mit diesen Variablen / Formeln?
quelle
Antworten:
"Geographisch gewichtetes PCA" ist sehr beschreibend: In
R
schreibt sich das Programm praktisch von selbst. (Es benötigt mehr Kommentarzeilen als tatsächliche Codezeilen.)Beginnen wir mit den Gewichten, denn hier befindet sich die geografisch gewichtete PCA-Teilefirma von PCA selbst. Der Begriff "geografisch" bedeutet, dass die Gewichte von den Entfernungen zwischen einem Basispunkt und den Datenpositionen abhängen. Die Standardgewichtung - aber keineswegs nur - ist eine Gaußsche Funktion; exponentieller Zerfall mit quadratischer Entfernung. Der Benutzer muss die Abklingrate oder - intuitiver - eine charakteristische Entfernung angeben, über die eine feste Abklingmenge auftritt.
PCA gilt entweder für eine Kovarianz oder eine Korrelationsmatrix (die von einer Kovarianz abgeleitet ist). Hier ist also eine Funktion, um gewichtete Kovarianzen numerisch stabil zu berechnen.
Die Korrelation wird auf übliche Weise unter Verwendung der Standardabweichungen für die Maßeinheiten jeder Variablen abgeleitet:
Jetzt können wir die PCA machen:
(Das sind bisher netto 10 Zeilen ausführbaren Codes. Nach der Beschreibung eines Rasters, über das die Analyse durchgeführt werden soll, wird nur noch eine Zeile benötigt.)
Veranschaulichen wir anhand einiger Zufallsdaten, die mit den in der Frage beschriebenen Daten vergleichbar sind: 30 Variablen an 550 Standorten.
Geografisch gewichtete Berechnungen werden häufig an ausgewählten Orten durchgeführt, z. B. entlang eines Schnitts oder an Punkten eines regulären Gitters. Lassen Sie uns ein grobes Raster verwenden, um einen Überblick über die Ergebnisse zu erhalten. Später - wenn wir sicher sind, dass alles funktioniert und wir bekommen, was wir wollen - können wir das Raster verfeinern.
Es ist eine Frage, welche Informationen wir von jedem PCA behalten möchten. Typischerweise gibt eine PCA für n Variablen eine sortierte Liste von n Eigenwerten und - in verschiedenen Formen - eine entsprechende Liste von n Vektoren mit jeweils der Länge n zurück . Das sind n * (n + 1) Zahlen für die Karte! Nehmen wir einige Hinweise aus der Frage und ordnen Sie die Eigenwerte zu. Diese werden aus der Ausgabe von
gw.pca
über das$sdev
Attribut extrahiert , bei dem es sich um die Liste der Eigenwerte nach absteigendem Wert handelt.Dies ist auf diesem Computer in weniger als 5 Sekunden erledigt. Beachten Sie, dass beim Aufruf von eine charakteristische Entfernung (oder "Bandbreite") von 1 verwendet wurde
gw.pca
.Der Rest ist eine Frage des Aufwischens. Lassen Sie uns die Ergebnisse mithilfe der
raster
Bibliothek zuordnen. (Stattdessen könnte man die Ergebnisse in einem Rasterformat für die Nachbearbeitung mit einem GIS ausgeben.)Dies sind die ersten vier der 30 Karten, die die vier größten Eigenwerte zeigen. (Seien Sie nicht zu aufgeregt über ihre Größe, die an jedem Ort 1 übersteigt. Denken Sie daran, dass diese Daten völlig zufällig generiert wurden und daher, wenn sie überhaupt eine Korrelationsstruktur haben - was die größeren Eigenwerte in diesen Karten anzudeuten scheinen - es ist ausschließlich zufällig und spiegelt nichts "Reales" wider, was den Prozess der Datengenerierung erklärt.)
Es ist aufschlussreich, die Bandbreite zu ändern. Wenn es zu klein ist, beschwert sich die Software über Singularitäten. (Ich habe in dieser Bare-Bones-Implementierung keine Fehlerprüfung eingebaut.) Eine Reduzierung von 1 auf 1/4 (und die Verwendung der gleichen Daten wie zuvor) führt jedoch zu interessanten Ergebnissen:
Beachten Sie die Tendenz, dass die Punkte um die Grenze ungewöhnlich große Haupteigenwerte ergeben (angezeigt an den grünen Stellen der oberen linken Karte), während alle anderen Eigenwerte zur Kompensation gedrückt werden (angezeigt durch das Hellrosa in den anderen drei Karten). . Dieses Phänomen und viele andere Feinheiten der PCA und der geografischen Gewichtung müssen verstanden werden, bevor die geografisch gewichtete Version der PCA zuverlässig interpretiert werden kann. Und dann gibt es noch die anderen 30 * 30 = 900 Eigenvektoren (oder "Ladungen") zu berücksichtigen ....
quelle
nrow=n.cols
, aber so hat es geklappt (basierend darauf, wie erpoints
erstellt wurde), und ich wollte nicht zurückgehen und alles umbenennen.Aktualisieren:
Für CRAN- GWmodel ist jetzt ein spezielles R-Paket verfügbar , das unter anderem geografisch gewichtete PCA enthält. Von der Website des Autors :
Weitere Details in einer Vorschau auf eine bevorstehende Veröffentlichung .
Ich bezweifle, dass es eine Lösung für die sofortige Verwendung Ihrer Daten gibt. Aber ich hoffe sehr, dass ich mich als falsch erweisen kann, da ich diese Methode gerne mit einigen meiner Daten testen würde.Einige zu berücksichtigende Optionen:
Marí-Dell'Olmo und Kollegen verwendeten die Bayes-Faktor-Analyse, um den Deprivation-Index für kleine Gebiete in Spanien zu berechnen:
In dem Artikel wird eine Spezifikation für das WinBUGS-Modell angegeben, das von R ausgeführt wird und möglicherweise den Einstieg erleichtert.
Das adegenet R-Paket implementiert die
spca
Funktion. Obwohl es sich auf genetische Daten konzentriert, könnte es genauso gut einer Lösung für Ihr Problem nahe kommen, wie Sie sie bekommen können. Entweder durch direkte Verwendung dieses Pakets / dieser Funktion oder durch Ändern des Codes. Es gibt eine Vignette zum Problem, die Sie zum Laufen bringen soll.Forscher des Strategic Research Cluster scheinen aktiv an dem Thema zu arbeiten. Vor allem Paul Harris und Chris Brunsdon (hier Präsentation stieß ich auf). Die jüngste Veröffentlichung von Paul und Urska ( Volltext ) könnte auch eine nützliche Ressource sein:
Warum versuchst du nicht, sie zu kontaktieren und zu fragen, welche Lösungen genau sie verwenden? Sie könnten bereit sein, ihre Arbeit zu teilen oder Sie in eine gute Richtung zu weisen.
Papier erwähnt mit GeoDAS GIS- System. Könnte eine andere Spur sein.
quelle
spca
Vignette enthalten.) Dies ist eine leistungsstarke und legitime Verwendung für GWPCA. (Diese Methode könnte jedoch erheblich verbessert werden und eher im Sinne einer explorativen Geodatenanalyse sein, wenn die PCA durch ein robusteres Verfahren ersetzt würde.)GWmodel
Sieht aus wie ein Paket, das es sich zu erwerben lohnt.