我正在用R进行回归。让我们假设我的响应被称为y和一个解释变量x。为了论证,假设x = 1 ... 100。我知道我的响应在x = 1 ... 10时从x = 11 ... 100表现得非常不同。这就是为什么我想在x = 11 ... 100和其他东西上拟合回归样条,比如说x = 1 ... 10的常数。
我的问题:如何为R公式界面编写这样的公式?
一个简短的例子:
# some non-random data
set.seed(0815)
y = c(rpois(10,3), sapply(seq.int(1,90), function(lambda)rpois(1,lambda/10) ) )
# some explanation for this
x = seq_along(y)
# fit spline for all x, with df = 3, no problem but bad fit
m = glm(family = poisson(), formula = y ~ ns(x,df=3))
# failed naive approach
fac = ifelse(x > 10, 0, 1)
m_fail = glm(family = poisson(), formula = y ~ fac + ns(x[11:100], df=3) )
我可以想到另外两种可能性,既可以在示例中使用,也可以在实际应用中使用。