การจำแนกประเภทที่ดีกว่าของค่าเริ่มต้นในการถดถอยโลจิสติก


12

การเปิดเผยแบบเต็ม: นี่คือการบ้าน ฉันได้รวมลิงก์ไปยังชุดข้อมูล ( http://www.bertelsen.ca/R/logistic-regression.sav )

เป้าหมายของฉันคือการเพิ่มการคาดการณ์ของผู้ชำระหนี้ในชุดข้อมูลนี้

ทุกรุ่นที่ฉันคิดมานั้นคาดการณ์> 90% ของผู้ไม่ defaulters แต่ <40% ของผู้ defaulters ทำให้ประสิทธิภาพการจำแนกโดยรวมประมาณ 80% ดังนั้นฉันสงสัยว่ามีผลกระทบระหว่างการโต้ตอบตัวแปรหรือไม่ ภายในการถดถอยแบบโลจิสติกส์นอกเหนือจากการทดสอบชุดค่าผสมที่เป็นไปได้แต่ละวิธีมีวิธีการระบุผลกระทบที่อาจเกิดขึ้นจากการโต้ตอบ หรืออีกวิธีหนึ่งในการเพิ่มประสิทธิภาพของการจำแนกประเภทของ defaulters

ฉันติดอยู่คำแนะนำใด ๆ จะเป็นประโยชน์ในการเลือกคำ R-code หรือไวยากรณ์ SPSS ของคุณ

ตัวแปรหลักของฉันอยู่ในฮิสโทแกรมและสแกตเตอร์ล็อตต่อไปนี้ (ยกเว้นตัวแปร dichotomous)

คำอธิบายของตัวแปรหลัก:

age: Age in years
employ: Years with current employer
address: Years at current address
income: Household income in thousands
debtinc: Debt to income ratio (x100)
creddebt: Credit card debt in thousands
othdebt: Other debt in thousands
default: Previously defaulted (dichotomous, yes/no, 0/1)
ed: Level of education (No HS, HS, Some College, College, Post-grad)

ตัวแปรเพิ่มเติมเป็นเพียงการเปลี่ยนแปลงข้างต้น ฉันพยายามแปลงตัวแปรต่อเนื่องบางส่วนเป็นตัวแปรจัดหมวดหมู่และนำไปใช้ในโมเดลโดยไม่มีโชค

หากคุณต้องการให้มันปรากฏใน R อย่างรวดเร็วนี่คือ:

## R Code
df <- read.spss(file="http://www.bertelsen.ca/R/logistic-regression.sav", use.value.labels=T, to.data.frame=T)

ข้อความแสดงแทน ข้อความแสดงแทน



สัดส่วนของ defaulters ที่เห็นได้ชัดคือ 1 จาก 4 แต่ดูเหมือนว่าคุณจะมีตัวแปรมากมาย คุณลองทุกอย่างแล้วคุณมีตัวแปรหลักที่น่าสนใจบ้างไหม?
chl

ตัวแปรดั้งเดิมอยู่ที่ด้านหน้าของไฟล์ ส่วนที่เหลือคือการแปลงของที่ระบุโดย x_ (โดยที่ x = log, ln, inv, sqrt) ฉันได้ลองส่วนผสมเหล่านี้แล้ว แต่ฉันรู้สึกสับสนเล็กน้อยเกี่ยวกับวิธีการตีความหรือสร้างแปลงที่เหลือซึ่งผู้ทำนายคือ 0,1
Brandon Bertelsen

ในแง่ของตัวแปรที่น่าสนใจฉันได้ลองใช้ตัวแปรทั้งหมดและชุดค่าผสมที่แตกต่างกันของตัวแปรที่แปลงแล้วรวมถึงตัวแบบผสมที่มีเอฟเฟกต์การโต้ตอบด้วย ยังไม่มีอะไรที่มีประสิทธิภาพโดยรวมสูงกว่า 81.7%
Brandon Bertelsen

คำตอบ:


8

ในชุดข้อมูลที่ไม่สมดุลเช่นนี้คุณสามารถปรับปรุงประสิทธิภาพการจัดหมวดหมู่ได้โดยการย้ายออกจากการใช้ความน่าจะเป็นที่เหมาะสมที่ 0.5 เป็นจุดตัดของคุณสำหรับการจำแนกกรณีเป็นผู้ defaulters และ non-defaulters ตัวอย่างเช่นฉันได้รับอัตราการจำแนกที่ถูกต้องเป็น. 88 และ. 58 ด้วยจุดตัดที่. 4 สำหรับ glm ที่มีการโต้ตอบลำดับที่ 2 ทั้งหมด (ซึ่งอาจนำไปสู่การ overfitting และดูเหมือนว่าจะมีปัญหาอันดับ แต่นั่นเป็นเรื่องอื่น)

รหัส:

m <- glm(default ~ (age + employ + address + income + debtinc + 
                    creddebt + othdebt + ed)^2,
   family=binomial(), data=df)
p <- predict(m, newdata=df, type="response")

getMisclass <- function(cutoff, p, labels){
   pred <- factor(1*(p > cutoff), labels=c("No Default", "Default")) 
   t <- table(pred, labels)
   cat("cutoff ", cutoff, ":\n")
   print(t)
   cat("correct    :", round(sum(t[c(1,4)])/sum(t), 2),"\n")
   cat("correct No :", round(t[1]/sum(t[,1]), 2),"\n")
   cat("correct Yes:", round(t[4]/sum(t[,2]), 2),"\n\n")
   invisible(t)
}
cutoffs <- seq(.1,.9,by=.1)
sapply(cutoffs, getMisclass, p=p, labels=df$default)

เอาท์พุทบางส่วน:

cutoff  0.3 :
            labels
pred           No  Yes
  No Default 3004  352
  Default     740  903
correct    : 0.78 
correct No : 0.8 
correct Yes: 0.72 

cutoff  0.4 :
            labels
pred           No  Yes
  No Default 3278  532
  Default     466  723
correct    : 0.8 
correct No : 0.88 
correct Yes: 0.58 

cutoff  0.5 :
        labels
pred           No  Yes
  No Default 3493  685
  Default     251  570
correct    : 0.81 
correct No : 0.93 
correct Yes: 0.45 

cutoff  0.6 :
            labels
pred           No  Yes
  No Default 3606  824
  Default     138  431
correct    : 0.81 
correct No : 0.96 
correct Yes: 0.34 

ขอบคุณสำหรับการลองฉันเล่นกับขีด จำกัด เช่นกันและให้การจัดหมวดหมู่เล็กน้อย
Brandon Bertelsen

1
แม้ว่ามันจะทำงานได้ดีขึ้นในการทำนายผู้ defaulters
Brandon Bertelsen

4

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


ฉันลองใช้ดูไม่มีการเพิ่มขึ้นหรือลดลงอย่างมีประสิทธิภาพโดยรวม (ประสิทธิภาพเป็นวิธีที่ดีที่จะทำนายผู้ defaulters / ไม่ใช่ defaulters ในกรณีที่ไม่มีการบวกเท็จบวกเท็จเชิงลบ)
แบรนดอน Bertelsen

1
@Brandon ฉันได้ลองความคิดอื่น ๆ และดูเหมือนจะไม่ช่วย สิ่งนี้ชี้ให้เห็นว่าชุดนี้ยากพอที่จะทำให้สิ่งนี้เกิดขึ้น (ค่าเริ่มต้นอาจเกิดจากปัจจัยสุ่มที่คาดเดาไม่ได้)

@mbq ขอบคุณที่สละเวลา! ชื่นชมมาก
Brandon Bertelsen

1
โดยส่วนตัวแล้วฉันคิดว่านี่เป็นข้อมูลสดที่ศาสตราจารย์ของฉันได้รับค่าจ้างให้เป็นนางแบบในตำแหน่งที่ปรึกษาคนหนึ่งของเขา ... แต่นั่นเป็นปัญหาอื่นทั้งหมด
Brandon Bertelsen

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

4

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

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

ปัญหาของการปฏิสัมพันธ์ไม่เกี่ยวข้องกับการบิดเบือนนี้และควรได้รับการขับเคลื่อนโดยทฤษฎี คุณมักจะปรับปรุงการจัดหมวดหมู่โดยการเพิ่มคำศัพท์เพิ่มเติมรวมถึงเพียงแค่เพิ่มการโต้ตอบ แต่คุณมักทำรูปแบบมากเกินไป จากนั้นคุณต้องย้อนกลับไปและสามารถตีความสิ่งนี้ได้

นักวิเคราะห์ด้าน Matt P, มหาวิทยาลัยอิลลินอยส์ Urbana Champaign


2

คุณอาจลองใส่เอฟเฟกต์การโต้ตอบทั้งหมด จากนั้นคุณสามารถใช้การถดถอยโลจิสติก L1 / L2 ที่ทำให้เป็นมาตรฐานเพื่อลดการปรับให้แน่นเกินไปและใช้ประโยชน์จากคุณสมบัติที่เป็นประโยชน์ใด ๆ ฉันชอบแพ็คเกจ glmnet ของ Hastie / Tibshirani (http://cran.r-project.org/web/packages/glmnet/index.html)


ปัญหาเดียวคือฉันต้องสามารถทำซ้ำนี้ด้วยผลลัพธ์ SPSS :( ฉันยังคงลองทำดู!
แบรนดอน Bertelsen

พยายามออกมาดูเหมือนจะไม่สามารถคาดการณ์ได้. glmnet () ทำงานได้ มีเวทมนตร์ที่ต้องเกิดขึ้นเมื่อคุณตั้งค่า newx หรือไม่?
Brandon Bertelsen

2

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

นี่คือโค้ด R บางตัวที่จะสร้างแผนภูมิพื้นฐาน ฉันได้ตั้งค่าหลวมในกรอบข้อมูลทั้งหมดที่นี่ อาจไม่ใช่วิธีที่ดีที่สุดหากไม่มีความรู้มาก่อนและวิธีการตรวจสอบความถูกต้องข้าม:

library(foreign)
df <- read.spss(file="http://www.bertelsen.ca/R/logistic-regression.sav", use.value.labels=T, to.data.frame=T) 
library(rpart) 
fit<-rpart(default~.,method="anova",data=df)
 pfit<- prune(fit, cp=   fit$cptable[which.min(fit$cptable[,"xerror"]),"CP"])

# plot the pruned tree 
 plot(pfit, uniform=TRUE, 
   main="Pruned Classification Tree for Loan Default")
text(pfit, use.n=TRUE, all=TRUE, cex=.8)

ฉันไม่แน่ใจว่าจะสร้างตารางการจำแนกประเภทได้อย่างไร ไม่ควรยากเกินไปจากค่าที่ทำนายจากโมเดลวัตถุและค่าดั้งเดิม ใครมีเคล็ดลับที่นี่?


ต้นไม้จำแนกและถดถอย นั่นเป็นส่วนที่สองของงานที่มอบหมาย หลังจากที่ฉันจัดประเภทให้ได้มากที่สุดฉันต้องจำแนกตามความน่าจะเป็นที่จะตัดสินใจ
Brandon Bertelsen

ที่จริงมีคนช่วยฉันสร้างตารางการจัดหมวดหมู่ในคำถามที่เกี่ยวข้องนี้: stats.stackexchange.com/questions/4832/ขอขอบคุณสำหรับตัวอย่างที่มี R ชื่นชมมากฉันพบคำแนะนำที่คล้ายกันในเว็บไซต์ quick-r ถึงแม้ว่าสำหรับการจัดแสดงครั้งนี้ฉันถูกบังคับให้สมัคร CHAID ใน SPSS
Brandon Bertelsen

predictวิธีการทำนายtable(originalClasses,predictedClasses)การสร้างตาราง ฉันลองใช้ RF (โดยปกติแล้วจะมีความแม่นยำเหมือนในรถเข็นที่ติดมากเกินไป แต่ไม่มีความเหมาะสมมากเกินไป) และผลลัพธ์ก็ไม่ได้ดีไปกว่าglmนี้มาก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.