【问题标题】:What are the differences between directly plotting the fit function and plotting the predicted values(they have same shape but different ranges)?直接绘制拟合函数和绘制预测值之间有什么区别(它们具有相同的形状但不同的范围)?
【发布时间】:2019-02-02 15:50:40
【问题描述】:

我正在尝试在 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 方法也给了我链接规模的估计。但实际输出在不同的范围内。第一种方法的最小值为-4,第二种方法的最小值小于-7。

【问题讨论】:

    标签: r logistic-regression spline gam


    【解决方案1】:

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

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

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

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

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

    这一切也发生在链接规模,对数赔率规模,因此所有的负值。

    【讨论】:

    • 感谢您的帮助!我的理解是,由于样条,截距项将不存在。在我执行的代码中,截距显示为 -3.8932。 @加文
    • 被拟合的模型是一个广义的加法模型;此类模型允许包含参数项,包括因子/分类项,因此我们通常希望在模型中包含截距。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多