Прогноз с одним фактором - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь использовать линейную модель для прогнозирования некоторых растров.

Это моя модель:

model1 <- lm(y~x)
model2 <- lm(y~x+c)

c - коэффициент страны, один уровень для каждого кода страны. Я хочу использовать функцию predict, где мои новые значения x входят в один растр для каждой страны.

library(raster)
ntl <- readRaster("ntl_BRA.tif")
ctry <- "BRA"

p1 = predict(model1, newdata=data.frame(x=ntl[]))
p2 = predict(model2, newdata=data.frame(x=ntl[],c=ctry))

Прогноз работает медленно, но хорошо для модели номер один (без факторов). Однако при включении коэффициента в модель я получаю следующую ошибку:

не может выделить вектор размером 31,9 Гб

Существует только один отдельный фактор, используемый для каждой страны / растрового слоя, поэтому мне не кажется, что ему понадобится так много дополнительной памяти.

Я неправильно определяю коэффициент?

Вот детали данных:

> ntl
> class       : RasterLayer 
> dimensions  : 4347, 4957, 21548079  (nrow, ncol, ncell)
> resolution  : 0.004166667, 0.004166667  (x, y)
> extent      : -8.668749, 11.98542, 18.97708, 37.08958  (xmin, xmax, ymin, ymax)
> coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
> data source : in memory
> names       : layer 
> values      : -4.60517, 9.519959  (min, max)

и данные, из которых я создаю модель:

> str(rdata)
'data.frame':   1659 obs. of  3 variables:
 $ x: num  9.39 9.12 8.53 10.83 8.03 ...
 $ y: num  8.81 8.77 9.25 9.24 9.17 ...
 $ c: Factor w/ 198 levels "ABW","AFG","AGO",..: 190 190 147 147 147 147 147 147 147 147 ...
...