如何使用 GAM 解释两个连续变量输出?

数据挖掘 r 统计数据 相关性 glm 解释
2021-10-04 08:01:39

我真的需要 GAM 的帮助。我必须通过使用 GAM 来确定关联是线性的还是非线性的。预测变量是 lag0 的温度,输出是心血管入院(计数变量)。我已经尝试了很多,但我无法理解如何解释我得到的图形和输出。

mgcv我使用包尝试了这个公式:

model1<- gam(cvd ~ s(templg0), family=poisson)
summary(model1)
plot(model1)

所以这是我得到的总结输出:

Family: poisson 
Link function: log 

Formula:
cvd ~ s(templg0)

Parametric coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) 3.195669   0.004877   655.2   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
             edf Ref.df Chi.sq  p-value    
s(templg0) 3.422  4.295  57.23 2.93e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.0152   Deviance explained = 1.68%
UBRE =  1.016  Scale est. = 1         n = 1722

有人可以详细解释输出。这个输出解释了什么?还有人可以帮助这个情节(附图片)显示的内容吗?请善待,因为我投入了很多时间,但找不到如何解释这一点。

在此处输入图像描述

2个回答

您在这里所做的是使用平滑样条回归。请查看“统计学习简介”一书第 7.5 章,以获得对该方法的一个很好的概述。

s-functioninGAM允许您指定如何GAM安装您尚未提供k,因此选择了一些默认值:

用于表示平滑项的基的维度。默认值取决于平滑函数的变量数。k 不应该小于这个词的惩罚项的空空间的维度(参见 null.space.dimension),但如果是则将被重置。有关详细信息,请参阅 choose.k。

GAM如果您想说k的话,基本上会沿着 进行几个线性回归(由 指定)。x-axis因此,GAM允许对狂野的非线性进行建模。如果您想检查数据中的线性,您应该检查不同的值k并查看绘图。

GAM 示例:

library(gam)
library(ISLR)
df = ISLR::Auto

# GAM with 10 knots
gam5= gam(horsepower ~ s(mpg, 10), data=df)
summary(gam5)
plot(gam5, se=T)

在此处输入图像描述

游戏结果:

你会得出结论你的模型是线性的吗?不,在 about 之间的范围内以及 between 之间]mpg=0 to mpg=20[存在线性关系]mpg=20 to mpg=40[但线性并不适用于整个数据范围。所以我会区分这些部分,例如通过虚拟编码和交互术语。

请注意,y 轴已重新缩放。所以这里没有对 y 轴的自然解释。

与非参数 (NP) 估计的比较:

处理非线性非参数回归是一个明显的选择。如果我们做NP会发生什么?

# Nonparametric regression
library(SemiPar)
fit <- spm(df$horsepower ~ f(df$mpg)) 
plot(fit)

在此处输入图像描述

NP 结果:

如您所见,NP 提供了几乎相同的结果。但是,图中的 y 轴有一个自然的解释,这可能很有用。

你的问题呢:

首先确保检查kin 的不同值s(...,k),因此检查不同的结数并查看图形如何变化。也可以看看这本书来了解背景。

在您当前的图中,我在 aboutx=10和看到了一些问题x=20但是,我不会说这是严重的非线性(但数据中存在非线性)。通常,如果您可以在绘图范围(沿 x 轴)上画一条线,并且如果这条线不在您的置信范围之外,则您可以声明线性关系。

z 值(参见 glm 输出)显示预测变量(lag0 时的温度)对心血管入院具有统计学意义的积极影响。卡方的实质值也支持温度的主要影响的想法。(注意,p 值表示观察到的样本是随机的,即随机分布)。图表显示了 GAM 部分。在任何情况下,它都会评估是否存在线性或非线性关联。