繁体   English   中英

使用mgcv的GAM对比图

[英]Contrast plot for GAM using mgcv

当使用visreg软件包通过对比图可视化GAM时,当图形呈U形时,拐点处的置信区间变为零:

# Load libraries
library(mgcv)
library(visreg)

# Synthetic data
df <- data.frame(a = -10:10, b = jitter((-10:10)^2, amount = 10))

# Fit GAM
res <- gam(b ~ s(a), data = df)

# Make contrast figure
visreg(res, type = "contrast")

在此处输入图片说明

这看起来像是狡猾的,在进行条件绘图时不会发生(即visreg(res, type = "conditional") ),所以我正在看mgcv软件包以进行相同的绘图。 我可以使用mgcv进行条件绘图(例如plot.gam(res) ),但是看不到进行对比绘图的选项。 mgcv软件包有可能吗?

这是由于在模型中使用的样条线基础上施加了可识别性约束。 这是一个零和约束,可以有效地从每个平滑项使用的基础中删除类似拦截器的基础函数,以使这些不会与模型拦截器混淆。 这使得模型是可识别的,而不是无限的解决方案。

使用标准理论,置信区间必须在y轴与零交叉的地方趋于零(通常是居中效果,但此处显示为一定变换尺度),因为约束意味着在某点x , effect为0,方差为0。

当然这是胡说八道,最近的研究已经研究了这个问题。 Simon Wood及其同事提供的一种解决方案采用了对Nychka的观察的扩展,即对于高斯情况,平滑的贝叶斯可信区间具有良好的跨函数解释, 可以解释为频繁的置信区间(因此既非指向性,也非同时性) 。 如果估计的平滑度具有平方偏差,且偏差不小于估计的方差,则Nychka的结果(区间的覆盖范围属性)将失败。 显然,当方差达到零时,情况就不会如此,因为估计的平滑度会通过零影响,因为此时的偏差实际上并不完全为零。

Marra and Wood(2012)将这些结果扩展到广义模型设置,通过假设模型中的所有其他术语均已应用可识别性约束,而不是感兴趣的平滑,基本上估计了一个平滑的置信区间。 这将推理的焦点从平滑直接转移到平滑+截距。 您可以在plot.gam()使用参数seWithMean = TRUE打开此功能。

我看不到让visreg做到这一点的简便方法,尽管通过带有type = 'iterms', se.fit = TRUE选项的type = 'iterms', se.fit = TRUE predict.gam()来获取所需信息是微不足道的。 在线性预测变量的尺度上,这将返回每个模型平滑项的贡献以及包括seWithMean所隐含的校正在内的标准误差。 然后,您可以随心所欲地摆弄它。 例如,加上模型常数项(截距的估计值)应该可以为您提供与问题中显示的数字相近的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM