Ошибка пакета SpatioTemporal: «Длина 'LUR.in' не соответствует числу временных трендов." - PullRequest
0 голосов
/ 09 октября 2018

Полный набор данных и код, о котором я здесь спрашиваю, можно найти по адресу: https://github.com/claytonglasser/siuslaw-basin-precipitation

Я изучаю Комплексное руководство для Spatio-Temporal R-package , используя мой собственныйданные.Я могу отслеживать все шаги, пока не доберусь до раздела «3 createSTmodel (): указание пространственно-временной модели», и в этот момент я сталкиваюсь со следующей ошибкой, с которой у меня возникают проблемы при интерпретации.

Мой код выглядит следующим образом:

LUR <- list(~ELEVATION)
cov.beta <- list(covf="exp", nugget=FALSE)
cov.nu <- list(covf="exp", nugget=~ELEVATION, random.effect=FALSE)

locations <- list(coords=c("LONGITUDE","LATITUDE"), long.lat=c("LONGITUDE","LATITUDE"))

siuslaw.ST.model <- createSTmodel(siuslaw.ST, LUR=LUR, 
                                  ST=NULL,
                              cov.beta=cov.beta, cov.nu=cov.nu,
                              locations=locations)

При создании переменной siuslaw.ST.model возвращается эта ошибка:

Error in processLUR(STmodel, LUR) : 
  Length of 'LUR.in' does not match number of temporal trends.

Я не знаюкак подходить к решению этой проблемы, потому что я не уверен, как проверить / оценить компоненты «LUR.in» и «временные тренды».

Вопрос: Я предполагаю, что существует один временной тренд на Локацию, поэтому в данном случае 10.Тем не менее, я также использую следующий код для команды объекта Siuslaw.ST использовать 2 временные базисные функции.Это «временные тренды», о которых идет речь?

siuslaw.ST <- updateTrend(siuslaw.ST, n.basis=2)

Вопрос: Я не понимаю, как работает аргумент LUR, какой объект он ожидает принять в качестве входных данных,или как критически важно для роли.

LUR.in определяется как: Вектор или список, указывающий, какие географические ковариаты использовать.

В учебном пособии перечислены несколько ковариат с добавлением ~ 'sкак они являются формулами.У меня есть только один элемент LUR, ELEVATION, от объекта siuslaw.ST $ covars:

> siuslaw.ST$covars
# A tibble: 10 x 4
   ID          LATITUDE LONGITUDE ELEVATION
   <chr>          <dbl>     <dbl>     <dbl>
 1 US1ORLA0076     44.0     -124.      20.7
 2 US1ORLA0003     44.0     -124.      20.4
 3 US1ORLA0031     44.0     -124.      25.6
 4 US1ORLA0091     44.1     -124.      64  
 5 USC00352973     44.0     -124.      22.9
 6 USC00352972     44.0     -124.       3.7
 7 USC00353995     43.9     -124.      35.1
 8 US1ORLA0171     43.8     -123.     180. 
 9 USC00355204     44.0     -124.       5.2
10 US1ORLA0132     44.1     -124.      74.4

Обратите внимание, что есть 10 наблюдений ELEVATION.Я думаю, что аргумент LUR знает, что искать в siuslaw.ST $ covars для ввода, где, я думаю, он найдет один вектор из 10 наблюдений.

Итак, в общем, почему «Длина« LUR.in »не соответствует числу временных трендов».и что мне нужно проверить / изменить, чтобы они соответствовали?

Я знаю, что этот вопрос - нечто вроде гидры.Пожалуйста, дайте мне знать, что я могу уточнить, и я рад это сделать.

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Возможно ли, что вы не указали список "местоположений" как x, y, так и long, lat?Если этого не произойдет, то он может интерпретировать long / lat как пространственные ковариаты, а это значит, что вам нужно будет указать его во входных данных «LUR».Это объясняет, почему добавление их в качестве ковариат исправило вашу ситуацию.Тем не менее, я удивлен, что отсутствие x, y и long, указанного в lat, не выдало ошибку.

0 голосов
/ 10 октября 2018

Я смог решить это с помощью экспериментов.Расхождение между LUR.in и количеством временных трендов было связано с тем, что в аргументе LUR отсутствовали остальные географические координаты.В конечном итоге мне удалось создать модель, изменив входные данные для аргумента LUR следующим образом:

LUR <- list(~ELEVATION, ~LATITUDE, ~LONGITUDE) 

Учебное пособие выбирает перечисление произвольного подмножества из 3 географических ковариат в LUR, и до сих порработает.Я не могу сказать, что полностью понимаю, почему все три из этих формул должны быть указаны, а не просто ELEVATION.Если кто-то с большим знанием может пролить свет на это, это было бы здорово

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...