Konfidenzintervall aus Rasterdaten

8

Ich habe Rasterdaten, die eine Wahrscheinlichkeitsverteilung darstellen, dh jede Zelle hat einen Wahrscheinlichkeitswert (in meinem Fall die Wahrscheinlichkeit, dass ein Tier in der Zelle gefunden wird), und alle Zellen addieren sich zu 100% (ich kenne das Tier mit Sicherheit liegt im Rahmen meines Rasters). Ich möchte in der Lage sein, Vektordaten für Konfidenzwerte zu generieren. Zum Beispiel bezeichnet die 95% Linie / das Polygon die Grenze, an der ich zu 95% sicher bin, dass ich das Tier finden werde.

Wenn ich eine Schätzung der Kerneldichte habe, wie generiere ich die XX% -Linie / das Polygon, die / das an den dichtesten Teil des Rasters grenzt und XX% der Gesamtbevölkerung enthält?

Ich bin bereit, ArcGIS oder Open-Source-Software zu verwenden. Welchen Algorithmus kann ich implementieren, wenn es für mich kein Tool gibt, das dies ausführt?

Regan Sarwas
quelle
Mathematica- Lösungen wurden kürzlich unter mathematica.stackexchange.com/questions/20464 veröffentlicht .
whuber

Antworten:

3

Vertrauen ist kein anwendbares Konzept, obwohl es oberflächlich ähnlich ist. Die Frage klingt eher so, als ob Sie die kleinste Region mit einer Gesamtwahrscheinlichkeit von mindestens 95% identifizieren möchten. Dieser Bereich kann (zumindest konzeptionell) erhalten werden, indem alle Wahrscheinlichkeiten sortiert und vom höchsten zum niedrigsten akkumuliert werden, bis die Teilsumme zuerst 95% beträgt oder überschreitet, und dann die Zellen ausgewählt werden, die den akkumulierten Werten entsprechen. Dies führt zu einer einfachen Lösung, wie dieses R-Beispiel (Open Source) zeigt:

library(raster)
set.seed(17)                   # Seed a reproducible random sequence
nr <- 30                       # Number of rows                    
nc <- 50                       # Number of columns
#
# Create a zone raster for normalizing the probabilities.
#
zone <- raster(ncol=nc, nrow=nr)
zone[] <- 0
#
# Create a probability raster (for illustrating the algorithm later).
#
p <- raster(ncol=nc, nrow=nr)
p[] <- (1:(nc*nr) - 1/2) / (nc*nr) + rnorm(nc*nr, sd=0.5)
p <- abs(focal(p, ngb=5, run=mean))
z <- zonal(p, zone, stat='sum')
p <- p / z[[2]] # This normalizes p to sum to unity as required
#------------------------------------------------------------------------------#
#
# The algorithm begins here.
#
pvec <- sort(getValues(p), decreasing=TRUE) # The probabilities, sorted
d <- cumsum(pvec)                           # Cumulative probabilities
dpos <- d[d <= 0.95]                        # Position to stop
region <- p                                 # Initialize the output
region[p < pvec[length(dpos)]] <- NA        # Exclude the last 5% of the probability
plot(region)                                # Display the result

Hier ist das resultierende Bild des 95% -Wahrscheinlichkeitsbereichs mit den ursprünglichen Farbwahrscheinlichkeiten: Sie summieren sich konstruktionsbedingt zu etwas mehr als 95%, und das Eliminieren selbst des kleinsten Werts reduziert die Summe auf weniger als 95%. Der weiße Bereich oben enthält die verbleibenden 5% der Wahrscheinlichkeit außerhalb dieser Region. Die gewünschte Kontur ist die Grenze zwischen den weißen und den farbigen Zellen.

Ergebnis

Die gleiche Methode funktioniert in einem KDE-Raster.

Für dieses Problem gibt es keine einfache ArcGIS-Lösung.

whuber
quelle
Ha ha, oberflächlich beschreibt mein Verständnis von Wahrscheinlichkeit richtig. Vielen Dank für a) die korrekte Interpretation meiner schlecht formulierten Frage und b) die Bereitstellung einer klaren Antwort.
Regan Sarwas
0

In ArcGIS ...

  • Spatial Statistics Tools> Reclass> Reclassify Tool
    • Erstellen Sie zwei Neuklassifizierungsmethoden:
    • OldValues ​​= 0-94.99 | NewValues ​​= 0
      OldValues ​​= 95-100 | NewValues ​​= 1

Dadurch wird ein neues Raster mit 2 Werten erstellt: 0 = außerhalb des Konfidenzintervalls, 1 = innerhalb des 95% -Konfidenzintervalls.

  • Konvertierungswerkzeuge> Von Raster> Raster zu Polygon-Werkzeug
    • Eingabe = Neu klassifiziertes Rasterfeld
      = Wert

Dadurch wird ein Vektorpolygon mit 2 FIDs erstellt, eine mit der Form Ihres 95% -Konfidenzintervalls und die andere mit Ihrem verbleibenden Rasterbereich. Ich würde vorschlagen, die Option "Vereinfachen" zu untersuchen, um festzustellen, welche Ergebnisse Ihren Anforderungen besser entsprechen.

Wenden Sie zur Information dieselbe Methode an, um die Polygone für Ihre Kerndichteschätzungen zu erhalten.

Michael Markieta
quelle
Vielleicht war ich nicht klar (ich bin nicht sehr gut mit der Wahrscheinlichkeit). Um es noch einmal zu sagen, die Summe der Werte in allen meinen Zellen beträgt 1,0. Bei einer gleichmäßigen Verteilung in einem 100x100-Raster hätte jede Zelle einen Wert von 1/10000. Stellen Sie sich nun vor, die Zellenwerte variieren von einer etwas größeren Zahl in der Nähe der Mitte bis zu Werten von Null in der Nähe der Kanten (immer noch insgesamt 1,0). Wenn ich anfange, Zellen mit den kleinsten Werten zu entfernen, bleiben mir schließlich insgesamt 0,95 übrig. Wie mache ich das, damit ich wie von Ihnen vorgeschlagen neu klassifizieren kann?
Regan Sarwas
Seltsamerweise würde Ihr Wahrscheinlichkeitswert (Zellenwert) nach dem Verständnis der Verwendung von Rastern zur Anzeige der statistischen Darstellung von Daten zwischen 0 und 100 (oder in Ihrem Fall zwischen 0 und 1) liegen, und die Verteilung dieser Werte (Zellenwerte) würde repräsentieren eine Normalverteilung.
Michael Markieta
Wenn dies zutrifft, können wir die Daten mit der oben vorgeschlagenen Methode neu klassifizieren, obwohl 94,99 und 95 durch Werte von 0,9499 und 0,95 ersetzt werden
Michael Markieta
1
Diese Lösung spiegelt nicht das in der Frage beschriebene Raster wider. Stellen Sie sich das Eingabegitter als eine diskrete zweidimensionale Wahrscheinlichkeitsverteilung vor, anstatt als "statistische Darstellung von Daten". In praktischen Fällen (mittlere bis große Gitter, mäßig gut verteilter Tierbereich) sind die meisten Wahrscheinlichkeiten extrem klein, weit weniger als 95%, sodass bei der Neuklassifizierung lediglich alle Informationen gelöscht werden: Alles wird zu Null.
whuber