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

What are the differences between directly plotting the fit function and plotting the predicted values(they have same shape but different ranges)?

我正在尝试在 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 函数。 predict 方法也给出了 link 范围内的估计值。但实际输出在不同的范围内。第一种方法的最小值是-4,而第二种方法的最小值小于-7。

第一个图仅是估计的平滑函数 s(age)。平滑受可识别性约束的约束,因为在用于参数化平滑的基础扩展中,有一个函数或函数组合完全与截距混淆。因此,您不能在同一模型中拟合平滑和截距,因为您可以从截距中减去一些值并将其添加回平滑并且您具有相同的拟合但系数不同。由于您可以添加和减去无限的值,因此您拥有无限的模型供应,这没有帮助。

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

因此,第一个图是平滑的,受此总和为零的约束,因此它跨越 0。此模型中的截距为:

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

如果将此添加到该图中的值,您将获得第二个图中的值,即完整模型对您提供的数据的应用,截距 + f(age)。

这一切也发生在 link 尺度上,对数赔率尺度,因此所有负值。