Deviance คืออะไร (โดยเฉพาะใน CART / rpart)


45

"Deviance" คืออะไรคำนวณอย่างไรและการใช้งานในด้านต่าง ๆ ของสถิติคืออะไร

โดยเฉพาะอย่างยิ่งฉันมีความสนใจเป็นการส่วนตัวในการใช้งาน CART (และการนำไปใช้ใน rpart ใน R)

ฉันถามสิ่งนี้เนื่องจากบทความ wikiดูเหมือนว่าค่อนข้างขาดและข้อมูลเชิงลึกของคุณจะได้รับการต้อนรับมากที่สุด

คำตอบ:


48

Deviance และ GLM

อย่างเป็นทางการเราสามารถดูความเบี่ยงเบนเป็นระยะทางระหว่างแบบจำลองความน่าจะเป็นสองแบบ ในบริบทของ GLM จะมีค่าเป็นสองเท่าของอัตราการบันทึกของความน่าจะเป็นระหว่างรุ่นสองแบบซ้อนโดยที่คือรูปแบบ "เล็กกว่า"; นั่นคือข้อ จำกัด เชิงเส้นในพารามิเตอร์โมเดล (เทียบกับNeyman – Pearson lemma ) ตามที่ @suncoolsu กล่าว ดังนั้นจึงสามารถใช้เพื่อทำการเปรียบเทียบแบบจำลองได้ นอกจากนี้ยังสามารถมองเห็นได้ว่าเป็นลักษณะทั่วไปของ RSS ที่ใช้ในการประมาณค่า OLS (ANOVA, การถดถอย) เพราะมันเป็นตัวชี้วัดความดี - พอดีพอดีของแบบจำลองที่ได้รับการประเมินเมื่อเปรียบเทียบกับตัวแบบ null (สกัดกั้นเท่านั้น) มันทำงานร่วมกับ LM ได้เช่นกัน:1/00

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

ส่วนที่เหลือ SS (RSS) คำนวณได้เป็นซึ่งได้มาจาก:ε^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 

ตั้งแต่โดยที่คือความแปรปรวนทั้งหมด โปรดทราบว่ามันสามารถใช้ได้โดยตรงในตาราง ANOVA เช่น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 

ตอนนี้ดูความเบี่ยงเบน:

> deviance(lm.res)
[1] 98.66754

อันที่จริงแล้วสำหรับโมเดลเชิงเส้นค่าเบี่ยงเบนเท่ากับ RSS (คุณอาจจำได้ว่าการประมาณ OLS และ ML ตรงกันในกรณีนี้)

Deviance และรถเข็น

เราสามารถมองเห็นรถเข็นเป็นวิธีการจัดสรรแล้วบุคคลที่มีข้อความในชั้นเรียนโดยพลการ (ในบริบทการจัดหมวดหมู่) ต้นไม้สามารถดูได้ว่าเป็นแบบจำลองความน่าจะเป็นสำหรับการเป็นสมาชิกระดับบุคคล ดังนั้นในแต่ละโหนดเรามีการแจกแจงความน่าจะเป็นเหนือคลาส อะไรคือสิ่งที่สำคัญที่นี่คือใบของต้นไม้ที่ให้เราเป็นตัวอย่างที่สุ่มจากการกระจายพหุนามที่ระบุโดย{} ดังนั้นเราสามารถกำหนดความเบี่ยงเบนของต้นไม้เป็นผลรวมของใบไม้ทั้งหมดnipiknikpikD

Di=2kniklog(pik),

ติดตาม Venables และ Ripley's ( MASS , Springer 2002, 4th ed.) หากคุณมีการเข้าถึงข้อมูลอ้างอิงที่จำเป็นนี้สำหรับผู้ใช้ R (IMHO) คุณสามารถตรวจสอบด้วยตัวเองว่าวิธีการดังกล่าวใช้วิธีการแยกโหนดและปรับต้นไม้ให้เหมาะสมกับข้อมูลที่สังเกตได้หรือไม่ (หน้า 255 ff) โดยทั่วไปความคิดที่จะลดโดยการตัดแต่งกิ่งต้นไม้,ที่คือจำนวนของโหนดในต้นไม้Tที่นี่เรารับรู้ค่าใช้จ่ายที่ซับซ้อนค้าปิด ที่นี่เทียบเท่ากับแนวคิดของความไม่บริสุทธิ์ของโหนด (เช่นความหลากหลายของการแจกแจงที่โหนดที่กำหนด) ซึ่งจะขึ้นอยู่กับการวัดของเอนโทรปีหรือการได้รับข้อมูลหรือดัชนี Gini ที่รู้จักกันดีกำหนดเป็นD+α#(T)#(T)TD 1 - k p 2 ฉันkD1kpik2 (สัดส่วนที่ไม่รู้จักประมาณจากสัดส่วนโหนด)

ด้วยต้นไม้การถดถอยความคิดนั้นค่อนข้างคล้ายกันและเราสามารถสร้างแนวความคิดเบี่ยงเบนเป็นผลรวมของกำลังสองที่กำหนดสำหรับบุคคลโดยj

Di=j(yjμi)2,

รวมยอดใบไม้ทั้งหมด นี่คือรูปแบบความน่าจะเป็นที่การพิจารณาภายในแต่ละใบเป็นของเกาส์2) การอ้างถึง Venables และ Ripley (หน้า 256), "เป็นความเบี่ยงเบนขนาดปกติสำหรับ GLA แบบเกาส์เซียอย่างไรก็ตามการกระจายที่โหนดภายในของต้นไม้นั้นเป็นส่วนผสมของการแจกแจงแบบปกติและดังนั้นจึงเหมาะสมเฉพาะที่ใบไม้ กระบวนการสร้างต้นไม้จะต้องถูกมองว่าเป็นแบบจำลองความน่าจะเป็นแบบลำดับชั้นคล้ายกับการเลือกตัวแปรไปข้างหน้าในการถดถอย " ส่วนที่ 9.2 ให้ข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการนำไปใช้ แต่คุณสามารถดูฟังก์ชันได้แล้วN(μi,σ2)DDirpartresiduals()rpart วัตถุที่ "deviance residuals" ถูกคำนวณเป็นสแควร์รูทของลบสองเท่าของลอการิทึมของโมเดลที่ติดตั้ง

การแนะนำให้รู้จักกับการแบ่งพาร์ติชันแบบเรียกซ้ำโดยใช้รูทีน rpartโดย Atkinson และ Therneau ก็เป็นจุดเริ่มต้นที่ดีเช่นกัน สำหรับความคิดเห็นทั่วไปเพิ่มเติม (รวมถึงการห่อ) ฉันอยากจะแนะนำ


1
+1 คำตอบที่ดี chl ซึ่งในขณะที่คุณพูดเติมเต็มฉันจึงไม่มีปัญหา ใส่อย่างมาก
Gavin Simpson

สิ่งหนึ่งที่เล็ก ๆ น้อย ๆ - อาจจะไม่ดีที่สุดเพื่อใช้ในตัวอย่างของคุณเช่นนี้เป็นชื่อของที่อยู่เบื้องหลังเทียมที่lm.fit lm
Gavin Simpson

@ กาวินโอ้ใช่ถูกต้องแล้ว ขอบคุณสำหรับการเตือนผมว่าผมมักจะทำผิดพลาดนี้ ...
CHL

3
เพียงหนึ่งหมายเหตุ: สำหรับการถดถอยเชิงเส้นอันซ์เท่ากับ RSS เพราะสมมติฐานปกติของข้อผิดพลาดหมายถึง RSS เป็นเช่นเดียวกับสถิติทดสอบ LR ซึ่งต่อไปจะหมายถึงอันซ์มีการกระจายตามปกติโดยไม่คำนึงถึง asymptotics นี่เป็นเพียงการขยายตัวของ (ฉันคิดว่า) ความคิดเห็นสั้น ๆ ของ chl
suncoolsu

@suncoolsu หากเป็นเรื่องเกี่ยวกับความคิดเห็นของฉันเกี่ยวกับ ML และ OLS ประมาณว่าใช่ฉันหมายถึง "สมมติว่ามีการแจกแจงแบบเกาส์เซียน" สำหรับ (เช่นในแบบจำลองเชิงเส้น) ความคิดเห็นของคุณยินดีต้อนรับ εi
chl

25

มันอาจจะชัดเจนกว่านี้เล็กน้อยถ้าเราคิดถึงแบบจำลองที่สมบูรณ์แบบที่มีพารามิเตอร์มากที่สุดเท่าที่สังเกตได้เพื่ออธิบายความแปรปรวนทั้งหมดในการตอบสนอง นี่คือรูปแบบอิ่มตัว ความเบี่ยงเบนเพียงวัดความแตกต่างใน "พอดี" ของแบบจำลองผู้สมัครและแบบจำลองที่อิ่มตัว

ในต้นไม้ถดถอยแบบจำลองอิ่มตัวจะเป็นแบบจำลองที่มีโหนดเทอร์มินัล (ใบไม้) มากพอ ๆ กับการสังเกตดังนั้นมันจะพอดีกับการตอบสนองอย่างสมบูรณ์ ความเบี่ยงเบนของแบบจำลองที่ง่ายกว่านั้นสามารถคำนวณได้ว่าเป็นผลรวมของโหนดที่เหลือของกำลังสองบวกกับโหนดทั้งหมด กล่าวอีกอย่างคือผลรวมของความแตกต่างกำลังสองระหว่างค่าทำนายและสังเกต นี่เป็นข้อผิดพลาดประเภทเดียวกัน (หรือการเบี่ยงเบน) ที่ใช้ในการถดถอยกำลังสองน้อยที่สุด

สำหรับต้นไม้จัดหมวดหมู่ผลรวมของสแควร์สที่เหลือนั้นไม่ใช่วิธีที่เหมาะสมที่สุดในการขาดความพอดี แทนที่จะมีการวัดทางเลือกของการเบี่ยงเบนรวมทั้งสามารถสร้างต้นไม้เพื่อลดการวัดเอนโทรปีหรือดัชนี Gini rpartหลังเป็นค่าเริ่มต้นใน คำนวณดัชนี Gini เป็น:

Di=1k=1Kpik2

ที่เป็นสัดส่วนที่สังเกตของชั้นในโหนดฉันมาตรการนี้จะสรุปทุกขั้วโหนดในต้นไม้ที่จะมาถึงอันซ์สำหรับรูปแบบการติดตั้งต้นไม้ k ฉันฉันpikkii


(+1) ขออภัยโพสต์ของฉันมาในภายหลังและฉันไม่ได้สังเกตเห็นคุณ เพราะฉันคิดว่าพวกเขาไม่ทับซ้อนกันมากเกินไปฉันจะจากไปถ้าคุณไม่รังเกียจ
chl

ดังนั้นความเบี่ยงเบนเป็นตัวชี้วัดความดีพอดีใช่มั้ย AFAIK ในการถดถอยเรามีสถิติบางอย่าง (เช่น RSS, ) เพื่อวัดความพอดี - ของ -; และในการจำแนกเราสามารถใช้อัตราการจำแนกประเภท ฉันถูกไหม? R2
อะโวคาโด

11

Deviance เป็นสถิติอัตราส่วนความน่าจะเป็นสำหรับการทดสอบสมมุติฐานว่างว่าแบบจำลองนี้มีตัวเลือกให้เลือกทั่วไป (เช่นแบบจำลองที่อิ่มตัว) สำหรับบางปัวซงและทวินาม GLMs จำนวนการสังเกตยังคงที่เมื่อจำนวนการนับเพิ่มขึ้น จากนั้นความเบี่ยงเบนจะมีการแจกแจงเชิงเส้นกำกับแบบไคสแควร์ องศาอิสระ = N - p โดยที่ p คือจำนวนพารามิเตอร์โมเดล นั่นคือมันเท่ากับจำนวนของพารามิเตอร์ฟรีในแบบจำลองที่อิ่มตัวและไม่อิ่มตัว ความเบี่ยงเบนนั้นจะทำการทดสอบแบบจำลองN

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

อย่างไรก็ตามส่วนใหญ่คุณต้องการทดสอบว่าคุณต้องการวางตัวแปรบางอย่างหรือไม่ บอกว่ามีสองรุ่นและกับและพารามิเตอร์ตามลำดับและคุณจำเป็นต้องทดสอบซึ่งของทั้งสองจะดีกว่า สมมติว่าเป็นกรณีพิเศษของ คือโมเดลที่ซ้อนกัน M1p 1 p 2 M 1 M 2M2p1p2M1M2

ในกรณีนั้นความแตกต่างของความเบี่ยงเบนถูกนำไปใช้:

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

ขอให้สังเกตว่าโอกาสการเข้าสู่ระบบของอิ่มตัวยกเลิกรูปแบบและระดับของเสรีภาพของเปลี่ยนแปลงP_2-P_1นี่คือสิ่งที่เราใช้บ่อยที่สุดเมื่อเราต้องการทดสอบว่าพารามิเตอร์บางตัวเป็น 0 หรือไม่ แต่เมื่อคุณพอดีในการส่งออกอันซ์คือสำหรับรุ่นอิ่มตัวเทียบกับรุ่นปัจจุบันp 2 - p 1ΔDeviancep2p1glmR

หากคุณต้องการอ่านรายละเอียดเพิ่มเติม: cf: การวิเคราะห์ข้อมูลตามหมวดหมู่โดย Alan Agresti, pp 118


@Tal ฉันไม่ได้ใช้rpartและฉันจะออกคำตอบให้กับสมาชิกที่มีประสบการณ์มากขึ้นของฟอรั่มนี้
suncoolsu

ฉันคิดว่าฉันมีความคิด ... แต่ rpart พิมพ์ความเบี่ยงเบนแม้กระทั่งต้นไม้ถดถอย Oo
deps_stats

@deps_stats ที่การเบี่ยงเบนเป็นผลรวมของโหนดที่เหลือของผลรวมกำลังสองที่รวมอยู่ที่ขั้วของต้นไม้
Gavin Simpson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.