Messpunkte, Raumfüllung und Modellkritik
Ein kurzes R-Skript wird im Vortrag gemeinsam gelesen und ausgeführt.
Dabei soll sichtbar werden:
Nicht die Darstellung ist der Kern, sondern die Modellannahme dahinter.
Projekt-ZIP herunterladen:
Dann:
Das Skript liegt im Projekt unter:
Skript separat:
Skripte machen räumliche Analysen reproduzierbar.
Sie halten fest:
Das ist bei Massendaten, Wiederholungen und späteren Korrekturen entscheidend.
Messstationen liefern Punktwerte.
Die Fragestellung richtet sich aber auf einen Raum.
Dazwischen steht eine raumfüllende Operation:
Mikroklima variiert kleinräumig.
Mögliche Einflussgrößen:
Diese Übung reduziert den Fall bewusst auf Temperatur und Höhe.
Die Dateien liegen bereits im entpackten Projektordner.
Im Projekt liegen:
climdata.rds enthält Stationen und Temperaturspalten.
DEM1.tif enthält die Höhe als Raster.
Für den Warmup wird nur ein Messzeitpunkt betrachtet:
Damit beziehen sich alle Ergebnisraster auf dieselbe Messsituation.
Punkte und Raster müssen im selben CRS liegen.
Sonst sind Höhe, Abstand und Überlagerung nicht sauber interpretierbar.
Die Ergebnisse werden nicht über das ganze DEM ausgegeben.
Die gültige Fläche ist:
Das begrenzt die Interpretation auf den Messraum.
Die Modelle rechnen für Rasterzellen.
Dazu wird das DEM in eine Tabelle übersetzt:
Aus denselben Messpunkten entstehen vier Ergebnisraster.
Voronoi bedeutet hier:
Jede Rasterzelle erhält den Wert der nächstgelegenen Station.
Das ist transparent, aber grob.
IDW nutzt räumliche Nähe.
Mit nmax = 4 bleibt die Schätzung lokal.
LM altitude nutzt Höhe als Prädiktor.
Das ist kein Nachbarschaftsmodell.
RF sagt weiterhin Temperatur vorher.
Eingangsvariablen sind:
Das Modell kann dadurch räumliche Lage und Höhe flexibel aufteilen.
RF kann bei wenigen Stationen einen niedrigen Fehler zeigen.
Das heißt aber nicht automatisch:
Es kann bedeuten:
Leave-One-Out-Cross-Validation:
\[ RMSE = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i - y_i)^2} \]
RMSE misst Rückschätzfehler an Stationsorten.
RMSE beweist nicht die fachliche Gültigkeit der ganzen Ergebnisfläche.
LM und RF werden mit einer sichtbaren Schleife geprüft.
Das ist absichtlich einfach lesbar.
rmse_fun <- function(e) sqrt(mean(e * e, na.rm = TRUE))
lm_cv <- rep(NA, nrow(pts))
rf_cv <- rep(NA, nrow(pts))
for (i in 1:nrow(pts)) {
train <- pts[-i, ]
test <- pts[i, ]
fit_lm_i <- lm(temp ~ altitude, data = st_drop_geometry(train))
lm_cv[i] <- predict(fit_lm_i, newdata = st_drop_geometry(test))
fit_rf_i <- randomForest(
temp ~ x + y + altitude,
data = st_drop_geometry(train),
ntree = 200
)
rf_cv[i] <- predict(fit_rf_i, newdata = st_drop_geometry(test))
}Für die gstat-Modelle übernimmt gstat.cv() die LOOCV.
Wichtig:
Die Tabelle ist kein automatisches Methodenranking.
Sie ist ein Startpunkt für Modellkritik.
Alle Ergebnisraster werden mit gleicher Farbskala dargestellt.
Die Messpunkte werden überlagert.
So sind Muster und Messstützung gleichzeitig sichtbar.
Die Darstellung ist nur die Oberfläche.
Die Aussage steckt in der Modellannahme.
Leitfragen:
Aus Punktmessungen entsteht kein neutraler Raum.
Dazwischen stehen immer:
Das Skript macht diese Kette minimal sichtbar.