Schätzen von Parametern für einen räumlichen Prozess

12

Ich habe ein n×n Raster mit positiven ganzzahligen Werten erhalten. Diese Zahlen stellen eine Intensität dar, die der Glaubensstärke einer Person entsprechen sollte, die diesen Gitterplatz einnimmt (ein höherer Wert zeigt einen höheren Glauben an). Eine Person hat im Allgemeinen Einfluss auf mehrere Gitterzellen.

Ich glaube, dass das Intensitätsmuster "Gauß'sch" aussehen sollte, da es einen zentralen Ort mit hoher Intensität geben wird und sich die Intensitäten dann radial in alle Richtungen verjüngen. Insbesondere möchte ich die Werte so modellieren, dass sie von einem "skalierten Gaußschen" mit einem Parameter für die Varianz und einem anderen für den Skalierungsfaktor stammen.

Es gibt zwei komplizierende Faktoren:

  • Die Abwesenheit einer Person entspricht aufgrund von Hintergrundgeräuschen und anderen Effekten nicht einem Nullwert, die Werte sollten jedoch kleiner sein. Sie können jedoch unregelmäßig sein, und in erster Näherung kann es schwierig sein, sie als einfaches Gaußsches Rauschen zu modellieren.
  • Der Intensitätsbereich kann variieren. In einem Fall können die Werte zwischen 1 und 10 und in einem anderen Fall zwischen 1 und 100 liegen.

Ich suche nach einer geeigneten Parameterschätzungsstrategie oder nach Hinweisen auf relevante Literatur. Hinweise, warum ich dieses Problem insgesamt falsch angehe, wäre ebenfalls willkommen :). Ich habe über Kriging und Gaußsche Prozesse gelesen, aber das scheint eine sehr schwere Maschinerie für mein Problem zu sein.

Suresh Venkatasubramanian
quelle
1
Was meinst du mit einem Gaußschen mit einem Varianz- und Skalenparameter? Der Varianzparameter ist der Skalierungsparameter eines Gaußschen! Ich bin mir auch ein wenig unsicher über das Modell, das Sie bisher eingerichtet haben. Können Sie das Problem, das Sie tatsächlich lösen möchten, genauer beschreiben? Die Verwendung eines Gaußschen zur Modellierung von Beobachtungen mit niedriger Granularität und ganzzahligen Werten scheint faul zu sein.
Kardinal
(+1) Für eine interessante Frage. Ich freue mich darauf zu verstehen, was Sie versuchen, ein bisschen besser zu lösen.
Kardinal
Hier einige Beobachtungen: 1. Wenn Ihre Werte ganzzahlig sind, erscheint die Verwendung von Gauß nicht angemessen. 2. Es ist nicht klar, was der Zweck Ihres Modells ist. Möchten Sie beispielsweise die Cluster starken Glaubens identifizieren? Was ist die Interpretation Ihrer Parameter, wenn Sie sie hatten? 3. Da Sie ein Raster haben, versuchen Sie doch, eine Mischung aus bivariaten Verteilungen anzupassen. Dann wird das Gitter die Unterstützung der Verteilung sein (sagen wir Einheitsquadrat) und die Intensitäten werden Regionen mit hoher Wahrscheinlichkeit entsprechen.
mpiktas
Vielen Dank für die interessanten Punkte. Lassen Sie mich versuchen zu klären. Die Wahl von "Gauß" könnte im Lichte der Kommentare ein roter Hering sein, der mehr Verwirrung stiftet als hilft. Das Hauptmerkmal der Daten sind die hohen Intensitätswerte am Punkt des höchsten Glaubens an den Standort der Person und die "radiale" Verjüngung um sie herum (was ich empirisch beobachtet habe). Die Intensitätswerte stammen aus der Lösung eines (linearen) inversen Problems und müssen daher nicht unbedingt ganzzahlig sein - das sind nur die Daten, die wir zufällig haben.
Suresh Venkatasubramanian
Übrigens schätze ich die Versuche, die Frage klarer zu definieren und besser zu modellieren. Ich werde mein Bestes tun, um die tatsächliche Dateneinstellung zu erklären, damit die richtigen Modellierungsannahmen konvergieren.
Suresh Venkatasubramanian

Antworten:

5

Sie können dieses Modul der Pysal- Python-Bibliothek für die unten beschriebenen Methoden zur Analyse räumlicher Daten verwenden.

Ihre Beschreibung, wie die Einstellung jeder Person durch die Einstellungen der sie umgebenden Personen beeinflusst wird, kann durch ein räumliches autoregressives Modell (SAR) dargestellt werden (siehe auch meine einfache SAR-Erklärung aus dieser SE-Antwort 2 ). Der einfachste Ansatz besteht darin, andere Faktoren zu ignorieren und die Stärke des Einflusses, den die umgebenden Menschen auf die Einstellungen des anderen haben, mithilfe der I- Statistik von Moran abzuschätzen .

Wenn Sie die Bedeutung anderer Faktoren bewerten möchten, während Sie die Stärke des Einflusses der umgebenden Menschen abschätzen, eine komplexere Aufgabe, können Sie die Parameter einer Regression abschätzen: . Siehe die Dokumentehier. (Methoden zur Schätzung dieser Art von Regression stammen aus dem Bereich der räumlichen Ökonometrie und können viel komplexer werden als die von mir angegebene Referenz.)y=bx+rhoWy+e

Ihre Herausforderung besteht darin, eine räumliche Gewichtsmatrix ( ) zu erstellen . Ich denke, jedes Element w i j der Matrix sollte 1 oder 0 sein, je nachdem, ob die PersonWwijij

Um eine intuitive Vorstellung von dem Problem zu bekommen, zeige ich unten, wie ein räumlicher autoregressiver Datenerzeugungsprozess (DGP) ein Wertemuster erzeugt. Für die 2 Gitter simulierter Werte repräsentieren die weißen Blöcke hohe Werte und die dunklen Blöcke niedrige Werte.

Im ersten Gitter unten wurden die Gitterwerte durch einen normalverteilten Zufallsprozess (oder Gaußschen) erzeugt, wobei rho

Zufällig (Gauß)

Im nächsten Gitter unten wurden die Gitterwerte durch einen räumlichen autoregressiven Prozess erzeugt, wobei rhÖ auf etwas Hoches eingestellt wurde, z. B. 0,8. Geben Sie hier die Bildbeschreibung ein

b_dev
quelle
Das ist sehr interessant (und das verwandte Geary C auch). Dies könnte in der Nähe von dem sein, was ich brauche.
Suresh Venkatasubramanian
Mit Geary C können Sie sehen, wie nahe beieinander liegende Werte liegen, selbst Werte in der Mitte der Verteilung. Morans I hilft Ihnen zu sehen, wie sich sehr hohe Werte mit sehr hohen Werten und sehr niedrige Werte um sehr niedrige Werte gruppieren. Vielleicht haben Sie Recht und die einfachste und beste Methode ist Gearys C. Denken Sie daran, dass der Geary's C-Ansatz explorativ ist und Sie Ihre Ergebnisse nicht von anderen Faktoren abhängig machen können. In diesem Python-Modul finden Sie Code zum Ausführen von Gearys C: pysal.org/1.1/library/esda/geary.html .
b_dev
Lass mich noch etwas damit spielen. Wenn es zu tun scheint, was ich brauche (und ich denke, es wird), klingt dies nach der besten Antwort.
Suresh Venkatasubramanian
3

Hier ist eine einfache Idee, die funktionieren könnte. Wie ich in den Kommentaren gesagt habe, wenn Sie ein Gitter mit Intensitäten haben, warum nicht die Dichte der bivariaten Verteilung anpassen?

Hier ist das Beispieldiagramm, um meinen Standpunkt zu veranschaulichen: Geben Sie hier die Bildbeschreibung ein

Jeder Gitterpunkt mit wird als Quadrat angezeigt und entsprechend der Intensität gefärbt. Dem Diagramm ist das Konturdiagramm des bivariaten Normaldichtediagramms überlagert. Wie Sie sehen können, dehnen sich die Konturlinien in Richtung abnehmender Intensität aus. Das Zentrum wird durch den Mittelwert der bivariaten Normalen und die Streuung der Intensität gemäß der Kovarianzmatrix gesteuert.

Um die Schätzungen des Mittelwerts und der Kovarianzmatrix zu erhalten, kann eine einfache numerische Optimierung verwendet werden. Vergleichen Sie die Intensitäten mit den Werten der Dichtefunktion, wobei Sie den Mittelwert und die Kovarianzmatrix als Parameter verwenden. Minimieren Sie, um die Schätzungen zu erhalten.

Dies ist natürlich streng genommen keine statistische Schätzung, aber es gibt Ihnen zumindest eine Vorstellung davon, wie Sie weiter vorgehen müssen.

Hier ist der Code zum Reproduzieren des Diagramms:

require(mvtnorm)
sigma=cbind(c(0.1,0.7*0.1),c(0.7*0.1,0.1))

x<-seq(0,1,by=0.01)
y<-seq(0,1,by=0.01)
z<-outer(x,y,function(x,y)dmvnorm(cbind(x,y),mean=mean,sigma=sigma))

mz<-melt(z)

mz$X1<-(mz$X1-1)/100
mz$X2<-(mz$X2-1)/100

colnames(mz)<-c("x","y","z")

mz$intensity<-round(mz$z*1000)

ggplot(mz, aes(x,y)) + geom_tile(aes(fill = intensity), colour = "white") + scale_fill_gradient(low = "white",     high = "steelblue")+geom_contour(aes(z=z),colour="black")
mpiktas
quelle
2

X[i,j]X[i,j](X[i1,j1],...,X[im,jm])(X[i1+k,j1+l]...,X[im+k,jm+l])corr(X[i1,j1],X[i2,j2])d([i1,j1],[i2,j2])ρ(d)ρ(d)=kd1k eine Konstante ist.

d([i1,j1],[i2,j2])=|i1i2|+|j1j2|ρ(d)zB über maximale Wahrscheinlichkeit. Weitere Ideen finden Sie unter "Zufallsfeld".

charles.y.zheng
quelle
1
"Willst du räumliche Stationarität annehmen" scheint direkt der Annahme des OP zu widersprechen, dass "die Intensitäten sich radial in alle Richtungen verjüngen".
whuber
Wie? Ein solches Muster würde bei der von mir vorgeschlagenen Autokorrelationsstruktur auftreten.
charles.y.zheng
1
@charles Es ist ein wichtiger Punkt: Wenn dieser offensichtliche Trend tatsächlich auf die Autokorrelation zurückzuführen ist, könnte eine andere unabhängige Realisierung des Prozesses im Prinzip einen dramatisch anderen Trend aufweisen, beispielsweise eine Wertsteigerung von einem zentralen Punkt weg. Da das OP einige deterministische Elemente des Trends ("radiale Verjüngung") und Korrelationselemente ("Einfluss auf mehrere Gitterzellen") klar artikuliert und unterschieden hat, würde eine Antwort, die dies respektiert, wahrscheinlich positiver gesehen als eine, die behauptet Das OP "wird wollen", um seine Meinung zu ändern.
whuber
Ich bin mir nicht sicher, ob ich die räumliche Stationaritätsbedingung verstehe. An der Oberfläche scheint es im Widerspruch zu der Idee zu stehen, einen "Peak zu haben, der sich an einem bestimmten Ort verjüngt", aber ich verstehe eindeutig nichts.
Suresh Venkatasubramanian
1
@charles, das von Ihnen beschriebene Muster ist aufgrund der Annahme der räumlichen Stationarität für jeden der Gitterpunkte vorhanden . Stationarität bedeutet im Grunde, dass sich alle meine Punkte ähnlich verhalten. Dies ist bei OP nicht der Fall. Die Antwort ist immer noch sehr gut, aber in diesem Fall nicht angemessen.
mpiktas