Interpretasi hasil model gam


8

Saya memasang beberapa model aditif umum menggunakan mgcvpaket 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, m1dengan istilah yang halus untuk xditambahkan, 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).Radj2

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

mgcv::gamtidak dihukum regresi. Mengatur select = TRUEdan 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.
Roland

Terima kasih Roland. Saya telah menambahkan 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.
user2957945

@ user2957945 dapatkah Anda mengedit pertanyaan Anda untuk memasukkan output dari model yang digunakan select = TRUE?
Gavin Simpson

Halo @ GavinSimpson, saya telah menambahkan output model, terima kasih
user2957945

Jawaban:


2

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, mgcvnilai-p digunakan untuk menentukan ada atau tidaknya efek yang diberikan , dan kinerja prediktif menjadi perhatian sekunder.

gantikan "asosiasi" untuk "efek" kecuali jika Anda bekerja dengan data dari uji coba terkontrol di mana ditugaskan secara acak atau Anda memiliki alasan lain untuk meyakini bahwa hubungan yang diamati adalah sebab akibat.x


Terima kasih. Sebenarnya saya salah mengerti. Apa yang harus saya uji adalah model dengan s(x)term dan kemudian model dengan x(daripada tidak x. Pentingnya istilah smooth (atau sebaliknya) default untuk menguji apakah kurva yang halus diperlukan dibandingkan dengan linier (daripada menghilangkan sepenuhnya)
user2957945

Oooh, senang tahu!
eric_kernfeld
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.