gam模型结果解读

机器算法验证 r 回归 广义加法模型
2022-03-28 22:26:58

我正在使用mgcvR 中的包来拟合一些广义的加法模型,并且我想在两个模型之间进行测试;我是否可以删除一个术语。然而,我得到了相互矛盾的结果(据我所知)。

m1具有平滑项的模型x似乎在、AIC、偏差解释以及使用 F 检验比较模型时提供了更好的拟合。但是,平滑项的重要性并不显着(当我将其作为线性协变量而不是样条添加到模型中时也不显着)。Radj2

我对平滑项测试的解释是否正确?据我所知,帮助页面是测试是近似的,但这里有很大的不同。

模型输出

m1 <- gam(out ~ s(x) + s(y) + s(z), data=dat)
> summary(m1)
# 
# Family: gaussian 
# Link function: identity 
# 
# Formula:
# out ~ s(x) + s(y) + s(z)
# 
# Parametric coefficients:
#               Estimate Std. Error t value Pr(>|t|)
# (Intercept) -7.502e-16  1.209e-01       0        1
# 
# Approximate significance of smooth terms:
#        edf Ref.df     F  p-value    
# s(x) 4.005  4.716 1.810    0.136    
# s(y) 8.799  8.951 4.032 4.01e-05 ***
# s(z) 7.612  8.526 5.649 4.83e-07 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# R-sq.(adj) =  0.213   Deviance explained = 24.8%
# GCV = 6.9741  Scale est. = 6.6459    n = 455

> AIC(m1)
#[1] 2175.898

> m2 <- gam(out ~ s(y) + s(z), data=dat)
> summary(m2)
# 
# Family: gaussian 
# Link function: identity 
# 
# Formula:
# out ~ s(y) + s(z)
# 
# Parametric coefficients:
#              Estimate Std. Error t value Pr(>|t|)
# (Intercept) 1.705e-15  1.228e-01       0        1
# 
# Approximate significance of smooth terms:
#        edf Ref.df     F  p-value    
# s(y) 8.726  8.968 5.137 6.78e-07 ***
# s(z) 8.110  8.793 5.827 1.55e-07 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# R-sq.(adj) =  0.187   Deviance explained = 21.7%
# GCV =  7.144  Scale est. = 6.8639    n = 455

> AIC(m2)
#[1] 2187.168

> anova(m1, m2, test="F")
# Analysis of Deviance Table
# 
# Model 1: out ~ s(x) + s(y) + s(z)
# Model 2: out ~ s(y) + s(z)
#   Resid. Df Resid. Dev      Df Deviance      F    Pr(>F)    
# 1    433.58     2881.6                                      
# 2    437.16     3000.7 -3.5791   -119.1 5.0073 0.0009864 ***

编辑:从评论中添加模型

> summary(m3 <- gam(out ~ s(x) + s(y) + s(z), data=dat, select=TRUE))

#Family: gaussian 
#Link function: identity 

#Formula:
#out ~ s(x) + s(y) + s(z)

#Parametric coefficients:
#              Estimate Std. Error t value Pr(>|t|)
#(Intercept) -1.588e-14  1.209e-01       0        1

#Approximate significance of smooth terms:
#       edf Ref.df     F  p-value    
#s(x) 4.424      9 1.750  0.00161 ** 
#s(y) 8.260      9 3.623 5.56e-06 ***
#s(z) 7.150      9 5.329 4.19e-09 ***
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

#R-sq.(adj) =  0.212   Deviance explained = 24.7%
#GCV = 6.9694  Scale est. = 6.6502    n = 455
1个回答

tl; dr:AIC 是预测性的,而 p 值是用于推理的。此外,您的显着性检验可能只是缺乏效力。

一种可能的解释是,原假设是错误的,但是您的功效较低,因此您的 p 值不是很令人印象深刻。仅仅因为存在效果并不意味着它很容易被发现。这就是为什么临床试验的设计必须考虑到一定的效果大小(通常是MCID)。s(x)=0

解决这个问题的另一种方法:不同的措施应该给出不同的结果,因为它们编码不同的优先级。AIC 是一种预测标准,它的行为类似于交叉验证。它可能会导致过于复杂的模型恰好具有强大的预测性能。相比之下,mgcv的存在与否,预测性能是次要问题。

将“关联”替换为“效果”,除非您正在处理来自的对照试验的数据,或者您有其他理由相信观察到的关联是因果关系。x