Estoy ajustando algunos modelos aditivos generalizados usando el mgcv
paquete en R, y quiero probar entre dos modelos; si puedo eliminar un término o no. Sin embargo, estoy obteniendo resultados contradictorios (por lo que puedo decir).
Un modelo, m1
con un término suave para x
agregar, parece dar un mejor ajuste en términos de , AIC, la desviación explicada, y al comparar los modelos usando una prueba F. Sin embargo, la importancia del término suave no es significativa (ni lo es cuando agregué al modelo como una covariable lineal, en lugar de una spline).
¿Es correcta mi interpretación de las pruebas de términos suaves? Por mucho que pude entender la página de ayuda, fue que las pruebas son aproximadas, pero aquí hay una gran diferencia.
El modelo sale
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 ***
EDITAR : modelo agregado de los comentarios
> 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
fuente
mgcv::gam
hace regresión penalizada. Establecerselect = TRUE
y luego los términos se pueden eliminar del modelo durante el ajuste. Sin embargo, si su objetivo es la predicción, recomendaría usar conjuntos de datos de prueba y capacitación independientes o al menos una validación cruzada.select
, pero estoy aún más inseguro de cómo interpretar esto. El resultado es un modelo con estadísticas de ajuste casi iguales (un poco peor ) en términos de r2, aic, etc., pero el valor p para el término s (x) ahora es mucho más bajo. Entonces, si el parámetro no se está reduciendo, lo que está cambiando.select = TRUE
?Respuestas:
tl; dr: AIC es predictivo mientras que los valores p son para inferencia. Además, su prueba de importancia puede simplemente carecer de poder.
Una posible explicación es que la hipótesis nula es falsa, pero tiene poca potencia y, por lo tanto, su valor p no es muy impresionante. El hecho de que haya un efecto presente no significa que sea fácil de detectar. Es por eso que los ensayos clínicos deben diseñarse teniendo en cuenta un cierto tamaño del efecto (generalmente el MCID ).s(x)=0
Otra forma de resolver esto: diferentes medidas deberían dar diferentes resultados porque codifican diferentes prioridades. El AIC es un criterio predictivo y se comporta de manera similar a la validación cruzada. Puede resultar en modelos demasiado complejos que tienen un fuerte desempeño predictivo. Por el contrario,∗
mgcv
los valores p se usan para determinar la presencia o ausencia de un efecto dado , y el rendimiento predictivo es una preocupación secundaria.fuente
s(x)
término y luego el modelo conx
(en lugar de nox
. La importancia del término suave (o de otro modo) por defecto es probar si se necesita una curva suave en comparación con una lineal (en lugar de omitir por completo)