r-直接绘制拟合函数和绘制预测值(它们具有相同的形状但不同的范围)之间有什么区别



我正在尝试使用预测因子上的样条曲线学习R中的逻辑回归的gam()。我的代码中的两种绘图方法给出了相同的形状,但在logit范围内的响应范围不同,似乎其中缺少一个截距。两者都应该是正确的,但是,为什么在范围上存在差异?

library(ISLR)
attach(Wage)
library(gam)
gam.lr = gam(I(wage >250) ~ s(age), family = binomial(link = "logit"), data = Wage)
agelims = range(age)
age.grid = seq(from = agelims[1], to = agelims[2])
pred=predict(gam.lr, newdata = list(age = age.grid), type = "link")
par(mfrow = c(2,1))
plot(gam.lr)
plot(age.grid, pred)

我原以为这两种方法会给出完全相同的结果。plot(gam.lr)绘制了每个分量的加性效应,因为这里只有一个,所以它应该给出预测的logit函数。预测方法也给了我链接规模的估计。但实际产出在不同的范围内。第一种方法的最小值为-4,而第二种方法的值小于-7。

第一个图仅为估计的平滑函数s(age)。平滑受到可识别性约束,因为在用于参数化平滑的基展开中,有一个函数或函数组合与截距完全混淆。因此,你不能将平滑和截距拟合在同一个模型中,因为你可以从截距中减去一些值,然后将其添加回平滑,这样你就有了相同的拟合但不同的系数。因为你可以加和减无穷多的值,所以你有无限多的模型,这是没有帮助的。

因此,可识别性约束被应用于基展开,其中最有用的是确保在协变量的范围内平滑求和为零。这包括将平滑集中在0,然后截距表示响应的总体平均值。

所以,第一个图是平滑的,受这个和为零的约束,所以它横跨0。该模型中的截距为:

> coef(gam.lr)[1]
(Intercept) 
-4.7175 

如果将其添加到此绘图中的值,则会得到第二个绘图中的数值,这是将完整模型应用于您提供的数据,截距+f(年龄)。

这一切也发生在链接量表,对数赔率量表上,因此所有的值都是负值。

最新更新