Apa itu Deviance? (khusus dalam CART / rpart)


45

Apa itu "Penyimpangan," bagaimana cara menghitungnya, dan apa kegunaannya dalam berbagai bidang dalam statistik?

Secara khusus, saya pribadi tertarik dengan penggunaannya di CART (dan implementasinya dalam rpart in R).

Saya menanyakan hal ini karena artikel wiki sepertinya kurang dan wawasan Anda akan sangat disambut.

Jawaban:


48

Penyimpangan dan GLM

Secara formal, seseorang dapat melihat penyimpangan sebagai semacam jarak antara dua model probabilistik; dalam konteks GLM, itu berjumlah dua kali rasio log dari kemungkinan antara dua model bersarang 1/0 mana 0 adalah model "lebih kecil"; yaitu, pembatasan linear pada parameter model (lih. Neyman-Pearson lemma ), seperti yang dikatakan @suncoolsu. Dengan demikian, dapat digunakan untuk melakukan perbandingan model . Ini juga dapat dilihat sebagai generalisasi dari RSS yang digunakan dalam estimasi OLS (ANOVA, regresi), karena ia memberikan ukuran good-of-fit dari model yang dievaluasi bila dibandingkan dengan model nol (intersep saja). Ini bekerja dengan LM juga:

> x <- rnorm(100)
> y <- 0.8*x+rnorm(100)
> lm.res <- lm(y ~ x)

ε^tε^

> t(residuals(lm.res))%*%residuals(lm.res)
         [,1]
[1,] 98.66754

R2

> summary(lm.res)

Call:
lm(formula = y ~ x)

(...)

Residual standard error: 1.003 on 98 degrees of freedom
Multiple R-squared: 0.4234, Adjusted R-squared: 0.4175 
F-statistic: 71.97 on 1 and 98 DF,  p-value: 2.334e-13 

R2=1RSS/TSSTSS

> summary.aov(lm.res)
            Df Sum Sq Mean Sq F value    Pr(>F)    
x            1 72.459  72.459  71.969 2.334e-13 ***
Residuals   98 98.668   1.007                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Sekarang, lihat penyimpangannya:

> deviance(lm.res)
[1] 98.66754

Bahkan, untuk model linier, penyimpangan sama dengan RSS (Anda mungkin ingat bahwa perkiraan OLS dan ML bertepatan dalam kasus seperti itu).

Penyimpangan dan CART

nipiknikpikD

Di=2kniklog(pik),

D+α#(T)#(T)TD1kpik2

j

Di=j(yjμi)2,

N(μi,σ2)DDirpartresiduals()fungsi untuk rpartobjek, di mana "residu penyimpangan" dihitung sebagai akar kuadrat dari minus dua kali logaritma model pas.

Pengantar partisi rekursif menggunakan rutinitas rpart , oleh Atkinson dan Therneau, juga merupakan awal yang baik. Untuk ulasan yang lebih umum (termasuk mengantongi), saya akan merekomendasikan


1
+1 jawaban bagus chl, yang, seperti yang Anda katakan, melengkapi milik saya jadi tidak ada masalah di sana. Sangat bagus.
Pasang kembali Monica - G. Simpson

Satu hal kecil - mungkin tidak terbaik untuk digunakan lm.fitdalam contoh Anda, karena ini adalah nama pekerja keras di belakang lm.
Pasang kembali Monica - G. Simpson

@ Gavin Oh, ya, itu benar. Terima kasih untuk mengingatkan saya bahwa, saya sering membuat kesalahan ini ...
chl

3
Hanya satu komentar: Untuk regresi linier Penyimpangan sama dengan RSS karena asumsi normalitas kesalahan menyiratkan RSS sama dengan statistik uji LR yang selanjutnya menyiratkan Penyimpangan terdistribusi normal, terlepas dari asimptotik . Ini hanya perluasan dari (saya pikir) komentar singkat tentang chl.
suncoolsu

εi

25

Mungkin sedikit lebih jelas jika kita berpikir tentang model yang sempurna dengan parameter sebanyak pengamatan sehingga menjelaskan semua varian dalam respon. Ini adalah model jenuh. Penyimpangan hanya mengukur perbedaan "kecocokan" model kandidat dan model jenuh.

Dalam pohon regresi, model jenuh akan menjadi salah satu yang memiliki banyak terminal (daun) sebagai pengamatan sehingga akan cocok dengan respon. Penyimpangan dari model yang lebih sederhana dapat dihitung sebagai jumlah residu node kuadrat, dijumlahkan pada semua node Dengan kata lain, jumlah perbedaan kuadrat antara nilai yang diprediksi dan yang diamati. Ini adalah jenis kesalahan yang sama (atau penyimpangan) yang digunakan dalam regresi kuadrat terkecil.

Untuk pohon klasifikasi, jumlah kuadrat residu bukan ukuran yang paling tepat dari ketidakcocokan. Sebaliknya, ada ukuran alternatif penyimpangan, ditambah pohon dapat dibangun meminimalkan ukuran entropi atau indeks Gini. Yang terakhir adalah default di rpart. Indeks Gini dihitung sebagai:

Di=1k=1Kpik2

pikkii


(+1) Maaf, kiriman saya datang kemudian dan saya tidak melihat Anda. Karena saya pikir mereka tidak tumpang tindih terlalu banyak, saya akan meninggalkan milik saya jika Anda tidak keberatan.
chl

R2

11

N

Deviance=2[L(μ^|y)L(y|y)]

M1M2p1p2M1M2

Dalam hal ini, perbedaan penyimpangan diambil:

ΔDeviance=2[L(μ1^|y)L(μ2^|y)]

ΔDeviancep2p1glmR

Jika Anda ingin membaca secara lebih rinci: cf: Analisis Data Kategori oleh Alan Agresti, hlm. 118.


@Tal, saya tidak menggunakan rpartdan saya akan meninggalkan jawaban untuk anggota yang lebih berpengalaman dari forum ini.
suncoolsu

Saya pikir saya punya ide ... Tapi rpart mencetak penyimpangan bahkan untuk pohon regresi Oo
deps_stats

@deps_stats yang menyimpang adalah jumlah residu dari kuadrat yang dijumlahkan di atas simpul terminal pohon.
Pasang kembali Monica - G. Simpson
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.