mgcv
R のパッケージを使用していくつかの一般化された加法モデルをフィッティングしており、2つのモデル間でテストしたいと考えています。用語を削除できるかどうか。しかし、(私が知る限り)矛盾する結果が出ています。
追加されm1
たの滑らかな項を持つモデルは、、AIC、説明された逸脱度、およびF検定を使用してモデルを比較するときにx
、より良い適合を与えるように見えます。ただし、平滑化項の重要性は重要ではありません(モデルにスプラインではなく線形共変量として追加した場合も同様です)。
スムーズタームテストの私の解釈は正しいですか?私がヘルプページを理解できたのは、テストは概算であったということですが、ここにはかなり大きな違いがあります。
モデルの出力
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
ローランドに感謝します。を追加しましたが
—
user2957945 2016
select
、これをどのように解釈するかはさらにわかりません。これにより、r2、aicなどの点で近似統計がほぼ同じ(やや悪い)モデルになりますが、s(x)項のp値ははるかに低くなりました。したがって、パラメータが縮小されていない場合は、何が変更されているのでしょうか。
@ user2957945質問を編集して、使用したモデルからの出力を含めることができます
—
Gavin Simpson
select = TRUE
か?
@GavinSimpson様こんにちは、モデルの出力を追加しました。ありがとう
—
user2957945
mgcv::gam
ペナルティ付き回帰を行います。設定するselect = TRUE
と、フィッティング中にモデルから項を削除できます。ただし、目標が予測の場合は、独立したトレーニングとテストのデータセット、または少なくとも相互検証を使用することをお勧めします。