GAM с MRF сглаживает: создайте структуру окрестностей с дублирующими координатами - PullRequest
0 голосов
/ 09 декабря 2018

Я хочу использовать пакет mgcv в R для запуска модели

df <- as.data.frame(spdf)
mod <- gam(y ~ s(geoid, bs = 'mrf', xt = list(nb = nb), k = 20) +     
               s(month, bs = 'cc', k = 12),
                data = df,
                method = 'REML',
                family = Gamma(link = log))

, где spdf - это SpatialPolygonDataFrame.

У меня проблемы с пониманием того, как создать nb объект, поскольку данные df имеют дубликаты geoid значений (по одному на каждый месяц), и когда я запускаю

nb <- poly2nb(spdf, row.names = spdf@data@geoid)

, я получаю ошибку

Error in poly2nb(spdf, row.names = spdf@data@geoid): non-unique row.names given

Спасибо

1 Ответ

0 голосов
/ 09 декабря 2018

Объект соседства не должен иметь столько строк, сколько данных, столько же строк, сколько geoid s.

Если вы собираетесь использовать geoid из данных,сначала вы захотите поместить в объект объект, который будет содержать недублированные значения geoid.Использование типичных методов поднабора ([) и duplicated() для @data элемента SpatialPolygonsDataFrame должно дать вам уникальный набор geoid s для построения объекта соседства.

...