R Пакет сегментирован со смещением

Я использую пакет сегментированный в R. Сначала я установил пуассоновский glm с функцией ссылки журнала, использующей функцию glm, которая включает термин смещения, например:

M1=glm(Y~X1+X2+X3+offset(log(X)),data=dat.1,family=poisson)

M1 установлен без ошибок. Затем я попытался подогнать сегментированный glm, используя пакет, сегментированный в R как:

library(segmented)
seg.1=segmented(M1,seg.Z=~X1,psi=list(X1=c(0.5)))

У меня следующая ошибка:

Error in offset(log(X)) : object 'X' not found

В чем моя ошибка? Большое спасибо.


person Stat    schedule 26.09.2013    source источник


Ответы (1)


Явное указание местоположения X (например, sample_dat$X) в вызове glm делает свое дело.

Вот воспроизводимый пример:

library(segmented)

# sample data
set.seed(101)
sample_dat <- data.frame(Y = rpois(100, 3), X1 = rnorm(100), X2 = rnorm(100), X = rpois(100, 100))

# fit model 
M1 = glm(Y ~ X1 + X2, data = sample_dat, offset = log(sample_dat$X), family = poisson)
seg.1 = segmented(M1, seg.Z=~X1, psi=list(X1 = c(0.5)), data = sample_dat)
person Nate Pope    schedule 26.09.2013