Указание пользовательских весов для непараметрической c оценки пространственно изменяющегося относительного риска в spatstat - PullRequest
0 голосов
/ 05 мая 2020

Есть ли способ указать веса в функции relrisk.ppp в spatstat (версия 1.63-3)?

Функция relrisk.ppp вызывает функцию density.ppp, которая позволяет пользователям указывать их собственные веса.

Например, давайте построим на предоставленных spatstat.data::urkiola данных, где вместо отдельных деревьев местоположениями являются древовидные насаждения, а у нас есть вторая цифра c, обозначающая частоту появления деревьев в каждой точке-местоположении:

urkiola_new <- spatstat.data::urkiola
urkiola_new$marks <- data.frame("type" = urkiola_new$marks, "freq" = rpois(urkiola_new$n, 3))

f1 <- spatstat::relrisk(urkiola_new, weights = urkiola_new$marks$freq)

При использовании urkiola_new в вызове relrisk, urkiola_new перехватывается stopifnot(is.multitype(X)) в relrisk.ppp. Затем я попытался указать веса отдельно как вектор при использовании исходных данных urkiola,

f2 <- spatstat::relrisk(urkiola, weights = urkiola_new$marks$freq)

, но был пойман предупреждением от функции pixellate.ppp во внутренней функции density.ppp:

Error in pixellate.ppp(x, ..., padzero = TRUE) : length(weights) == npoints(x) || length(weights) == 1 is not TRUE

Та же ошибка возникает, когда я конвертирую веса в список

urkiola_weights <- split(urkiola_new$marks$freq, urkiola_new$marks$type)

f3 <- spatstat::relrisk(urkiola, weights = urkiola_weights)

Я подозреваю, что есть способ указать веса с умом, но он все же ускользает меня. Любые предложения или рекомендации будут полезны, спасибо!

1 Ответ

0 голосов
/ 06 мая 2020

Функция relrisk.ppp в настоящее время не предназначена для обработки весов. В справочной записи для relrisk.ppp веса не упоминаются.

Приведенный выше пример не работает, потому что relrisk.ppp применяется density.ppp отдельно к подшаблонам точек каждого типа, а дополнительный аргумент weights имеет неправильную длину для этих подшаблонов.

Я отвечу на этот вопрос как на запрос функции, чтобы добавить эту возможность в relrisk.ppp. Это должно быть сделано в ближайшее время.

Обновление : теперь это реализовано в версии для разработки, spatstat 1.64-0.018 доступно в репозитории github spatstat

...