Как применить универсальный кригинг с пользовательской пространственной сеткой прогнозирования с помощью autoKrige в R

Я хочу применить универсальный кригинг к набору данных, используя функцию autokrige в R. Я хотел бы создать собственную пользовательскую пространственную сетку для прогнозируемых точек (для аргумента new_data в autokrige). Я использую R версии 3.2.2 (64-разрядная версия) и RStudio версии 0.99.486. Вот что я сделал до сих пор:

library(automap)
library(sp)
library(gstat)
library(raster)
library(rgdal)

data(meuse)
coordinates(meuse) <- ~x + y
proj4string(meuse) <- CRS("+init=epsg:28992")

Следующий код был получен от stackexchange здесь (кредит принадлежит Джеффри Эвансу) и используется чтобы создать пользовательскую пространственную сетку для значений прогноза:

ext_meuse <- as(extent(meuse), "SpatialPolygons")
r_meuse <- rasterToPoints(raster(ext_meuse, resolution = 59), spatial = TRUE)
proj4string(r_meuse) <- proj4string(meuse)

Затем я пытаюсь применить универсальный кригинг (регрессия по столбцу «расстояние») с помощью автокригинга:

kriging_result = autoKrige(zinc~dist, meuse, r_meuse)

Затем получена следующая ошибка:

Ошибка в model.frame.default(terms.f, newdata, na.action = na.action,: объект не является матрицей. Кроме того: Предупреждающее сообщение: «newdata» имеет 3102 строки, но найденная переменная имеет 1 строку

Я ошибся при создании сетки (r_meuse)? Есть ли «лучший» способ создать сетку для прогнозируемых данных? Все примеры, которые я нашел до сих пор, используют данные meuse.grid, но я хотел бы применить универсальный кригинг к другим данным, у которых еще нет собственных данных сетки.


person Henry    schedule 17.02.2017    source источник


Ответы (1)


Я считаю, что проблема здесь в том, что вы выполняете UK без предиктора dist, присутствующего в r_meuse. Это проблема, поскольку эта информация необходима для линейного предсказания. Таким образом, r_meuse должен быть SpatialPointsDataFrame с определенным dist.

person Paul Hiemstra    schedule 23.02.2017