У меня проблемы с предсказанием растра с использованием линейной модели.
Сначала я создаю свою модель из данных, найденных в моих полигонах.
# create model
poly <- st_read("polygon.shp")
df <- na.omit(poly)
df <- df[df$gdp > 0 & df$ntl2 > 0 & df$pop2 > 0,]
x <- log(df$ntl2)
y <- log(df$gdp*df$pop2)
c <- df$iso
d <- data.frame(x,y,c)
m <- lm(y~x+c,data=d)
Тогда я хочу использовать растр :: прогнозирование для оценки выходного растра
# raster data
iso <- raster("iso.tif")
viirs <- raster("viirs.tif")
x <- log(viirs)
c <- iso
## predict with models
s <- stack(x,c)
predicted <- raster::predict(x,model=m)
однако я получаю следующий ответ:
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) :
object is not a matrix
Я не знаю, в чем проблема и как ее исправить. В настоящее время я считаю, что это связано с факторами / кодами стран:
Моя модель включает коды стран, так как я хотел бы включить некоторые страновые фиксированные эффекты. Может быть, есть проблемы с включением этих. Однако даже при исключении кодов стран из модели и всего фрейма данных я получаю то же сообщение об ошибке.
Кроме того, моя модель основана на региональных значениях со всего мира, а наборы данных прогноза включают только протяженность Турции. Может в этом проблема?
А вот данные:
https://drive.google.com/open?id=16cy7CJFrxQCTLhx-hXDNHJz8ej3vTEED