Saya memasang beberapa model aditif umum menggunakan mgcv
paket dalam R, dan saya ingin menguji antara dua model; apakah saya dapat menghapus istilah atau tidak. Namun, saya mendapatkan hasil yang bertentangan (sejauh yang saya tahu).
Model, m1
dengan istilah yang halus untuk x
ditambahkan, nampaknya memberikan kesesuaian yang lebih baik dalam hal , AIC, deviance dijelaskan, dan ketika membandingkan model menggunakan uji-F. Namun, signifikansi istilah halus tidak signifikan (juga tidak ketika saya ditambahkan ke model sebagai kovariat linier, bukan spline).
Apakah interpretasi saya terhadap tes istilah lancar benar? Sejauh yang saya bisa mengerti halaman bantuan, adalah bahwa tes tersebut adalah perkiraan, tetapi ada perbedaan yang cukup besar di sini.
Output model
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 ***
EDIT : menambahkan model dari komentar
> 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
sumber
mgcv::gam
tidak dihukum regresi. Mengaturselect = TRUE
dan kemudian istilah dapat dihapus dari model selama pemasangan. Namun, jika sasaran Anda adalah prediksi, saya akan merekomendasikan menggunakan pelatihan independen dan menguji kumpulan data atau setidaknya validasi silang.select
, tetapi saya bahkan lebih tidak yakin bagaimana menafsirkan ini. Ini menghasilkan model dengan statistik pas hampir sama (sedikit lebih buruk ) dalam hal r2, aic dll tetapi nilai p untuk istilah s (x) sekarang jauh lebih rendah. Jadi, jika parameter tidak menyusut, apa yang berubah.select = TRUE
?Jawaban:
tl; dr: AIC bersifat prediksi sedangkan nilai-p adalah untuk inferensi. Juga, ujian signifikansi Anda mungkin hanya kekurangan daya.
Satu penjelasan yang mungkin adalah bahwa hipotesis nol adalah salah, tetapi Anda memiliki kekuatan rendah sehingga nilai-p Anda tidak terlalu mengesankan. Hanya karena ada efek tidak berarti itu mudah dideteksi. Itu sebabnya uji klinis harus dirancang dengan ukuran efek tertentu dalam pikiran (biasanya MCID ).s(x)=0
Cara lain untuk menyelesaikan ini: tindakan yang berbeda harus memberikan hasil yang berbeda karena mereka menyandikan prioritas yang berbeda. AIC adalah kriteria prediktif, dan berperilaku serupa dengan validasi silang. Ini dapat menghasilkan model yang terlalu rumit yang kebetulan memiliki kinerja prediksi yang kuat. Sebaliknya,∗
mgcv
nilai-p digunakan untuk menentukan ada atau tidaknya efek yang diberikan , dan kinerja prediktif menjadi perhatian sekunder.sumber
s(x)
term dan kemudian model denganx
(daripada tidakx
. Pentingnya istilah smooth (atau sebaliknya) default untuk menguji apakah kurva yang halus diperlukan dibandingkan dengan linier (daripada menghilangkan sepenuhnya)