我在R中使用包segmented。我首先使用包含偏移项的glm
函数来安装带有日志链接函数的Poisson glm,如:
M1=glm(Y~X1+X2+X3+offset(log(X)),data=dat.1,family=poisson)
M1安装没有任何错误。接下来,我尝试使用R中分割的包作为:{/ p>来拟合分段的glm
library(segmented)
seg.1=segmented(M1,seg.Z=~X1,psi=list(X1=c(0.5)))
我遇到以下错误:
Error in offset(log(X)) : object 'X' not found
我的错误在哪里?非常感谢。
答案 0 :(得分:0)
在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)