Функция Kres не выполняется должным образом из-за ошибки в Kwtsum, «Веса в K-функции бесконечны или NA» - PullRequest
0 голосов
/ 13 октября 2018

Я понимаю, что проблема в том, что функция пытается суммировать не конечные значения, и я думаю, что могу решить эту проблему, удалив эти значения из объекта ppm, однако мне трудно найти все конкретные компонентыФункция пытается использовать.

Я пытался просмотреть исходный код на Github (и в R), чтобы проследить логику в обратном направлении, и похоже, что это может быть проблемой для функции Kinhom, но яУ меня проблемы с отслеживанием всего этого вплоть до объекта PPM, так как есть много больших промежуточных внутренних функций.

Может кто-нибудь указать мне на конкретный компонент объекта PPM, который вызывает ошибку, ивозможно как это убрать?Любая помощь будет принята с благодарностью!

Редактировать: Чтобы уточнить, я знаю, что в glmdata есть две точки (4430, 4524), которые имеют неопределенные ковариатные значения, и я подозреваю, что они вызывают эту проблему.Я добавил команду str (), чтобы показать, где, по-моему, хранится значение проблемы.

Функция Kinhom Страница Spatstat на Github https://github.com/spatstat/spatstat/blob/7ee141dc21d945fb35163868b813dbef6ad5dd90/R/Kinhom.R

Страница объекта класса PPM Spatstat на Github https://github.com/spatstat/spatstat/blob/master/R/ppmclass.R

Вот мои данные модели ppm:

https://www.dropbox.com/sh/ayyozo1dnhbqmvg/AACRqzAu617u0Sq_fk8RqUiJa?dl=0

Просто предупреждение, это довольно большой объект ppm (около 40 МБ)

Вот код

library(spatstat)
load(file="SamplePPM.RData")
summary(ppm16.reduced2.offset.densavg) # info on the ppm object
Kres(ppm16.reduced2.offset.densavg)
# I suspect the problem value is somewhere in here
str(ppm16.reduced2.offset.densavg$internal$glmfit)

Вот полное сообщение об ошибке:

Ошибка в Kwtsum (dIJ [okI], bI [okI], wcIJ [okI], b [Z & USED], rep.int (1,: Веса в K-функции были бесконечными или NA Кроме того: Предупреждение: некоторые бесконечные, NA или NaN приращения были удалены

И команда отслеживания:

4: останов («Веса в K-функции были бесконечны или NA») 3: Kwtsum (dIJ [okI], bI [okI], wcIJ [okI], b [Z & USED], rep.int (1, npts.used), перерывы) 2: Kcom (объект, ...) 1: Kres (ppm16.reduced2.offset.densavg)

Спасибо заранее!

Ответы [ 2 ]

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

Спасибо, что обратили наше внимание на эту проблему.Я настрою внутренний код так, чтобы он выдавал предупреждение, а не фатальную ошибку.

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

Я не могу открыть загруженный файл SamplePPM.RData.Вы пытались запустить traceback(), чтобы увидеть, где происходит ошибка?Также фактическое сообщение об ошибке будет полезно.Команды и данные, соответствующие модели, также будут полезны.Я думаю Я воссоздал проблему со встроенным примером данных (см. Ниже), и если это так, то вы правы, что это вызвано NA -значениями в ковариате.У вас нет способа исправить пропущенные ковариатные значения?

library(spatstat)

X <- bei[square(50)]
Z <- bei.extra$elev[square(50)]
Z[square(c(25,50))] <- NA
plot(Z)
plot(X, add = TRUE)

fit <- ppm(X~Z)
#> Warning: Values of the covariate 'Z' were NA or undefined at 19% (202 out
#> of 1056) of the quadrature points. Occurred while executing: ppm.ppp(Q = X,
#> trend = ~Z, data = NULL, interaction = NULL)
Kres(fit)
#> Warning: Some infinite, NA or NaN increments were removed
#> Error in Kwtsum(dIJ[okI], bI[okI], wcIJ[okI], b[Z & USED], rep.int(1, : Weights in K-function were infinite or NA
...