ฉันสามารถใช้อัลกอริทึม glm เพื่อทำการถดถอยโลจิสติกพหุนาม


14

ฉันใช้สปอตไฟร์ (S ++) สำหรับการวิเคราะห์ทางสถิติในโครงการของฉันและฉันต้องเรียกใช้การถดถอยโลจิสติกหลายมิติสำหรับชุดข้อมูลขนาดใหญ่ ฉันรู้ว่าอัลกอริทึมที่ดีที่สุดจะเป็น mlogit แต่น่าเสียดายที่มันไม่สามารถใช้ได้ใน s ++ อย่างไรก็ตามฉันมีตัวเลือกในการใช้อัลกอริทึม glm สำหรับการถดถอยนี้ ฉันต้องการชี้แจงสองสิ่งที่นี่:

1. ความเข้าใจของฉันถูกต้องหรือไม่ที่ glm สามารถใช้ในการรัน Multinomial Logistic Regression ได้?

  1. หากตอบคำถามก่อนหน้านี้คือใช่แล้วพารามิเตอร์ใดที่ควรใช้ใน glm algo

ขอบคุณ

คำตอบ:


9

ใช่ด้วย Poisson GLM (โมเดลเชิงเส้นสำหรับบันทึกข้อมูล) คุณสามารถติดตั้งโมเดลมัลติโนเมียลได้ ดังนั้นโลจิสติกพหุนามหรือโมเดลเชิงเส้นพูซองเชิงเส้นเท่ากัน

คุณต้องดูการนับแบบสุ่มเป็นตัวแปรแบบสุ่มของปัวซงที่มีค่าเฉลี่ยและระบุรูปแบบการบันทึกเชิงเส้นต่อไปนี้yijμij

log(μij)=o+pi+cj+xiβj

ในการรับโมเดล logit แบบมัลติโนเมียลพารามิเตอร์คือ:

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

พารามิเตอร์สำหรับแต่ละหมวดหมู่การตอบกลับ วิธีนี้การนับอาจแตกต่างกันสำหรับแต่ละหมวดหมู่การตอบกลับและระยะขอบอาจไม่สม่ำเสมอcj

สิ่งที่คุณสนใจจริงๆในการมีปฏิสัมพันธ์แง่ที่แสดงถึงผลกระทบของในการเข้าสู่ระบบการต่อรองของการตอบสนองที่ jxiβjxij

ที่อัตราต่อรองล็อกสามารถคำนวณได้โดยเพียงแค่(β_j-β_k) มันเป็นอัตราต่อรองบันทึกที่สังเกตฉันจะตกอยู่ในประเภทการตอบสนองเจเทียบกับประเภทการตอบสนองklog(μij/μik)=(cjck)+xi(βjβk)k

จากนั้นพารามิเตอร์ในรูปแบบ logit พหุนาม (แสดงในตัวอักษรละติน) สามารถหาได้เป็นความแตกต่างระหว่างค่าพารามิเตอร์ในรูปแบบบันทึกการเชิงเส้นที่สอดคล้องกันคือและβ_j-β_kb j = β j - β kaj=αjαkbj=βjβk


ขอบคุณ Momo สิ่งนี้มีประโยชน์จริงๆ ซอฟต์แวร์ของฉันให้ตัวเลือกในการเลือกครอบครัวเป็น "การครอบครอง" และเชื่อมโยงเป็น "บันทึก" ในขณะที่เรียกใช้ alogorithm GLM ดังนั้นฉันคิดว่านั่นเป็นสิ่งที่จำเป็นที่นี่
Raghvendra

7

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

LogL=icniclog(pic)

ที่ไหนหมายถึงการสังเกตและการหมายถึงประเภทพหุนามn ฉันเป็นนับสังเกตสำหรับการสังเกตฉันอยู่ในหมวดหมู่ค การสังเกตถูกกำหนดโดยชุดค่า covariate ที่เป็นเอกลักษณ์ของพวกเขา - หรือมิฉะนั้นเราสามารถอนุญาตการทำซ้ำและตั้งค่าแต่ละn i c = 1เพื่อให้เรามีข้อมูล "binary" เด็ดขาด (.... ไม่รู้ว่าพหูพจน์ของไบนารีคืออะไร .. .. ) สำหรับการถดถอยโลจิสติกความน่าจะเป็นถูกกำหนดเป็น:icnicicnic=1

pic=exp(xiTβc)cexp(xiTβc)

นี่เป็นพารามิเตอร์การจัดอันดับน้อยกว่าเต็มและอาจมีประโยชน์หากคุณใช้โอกาสในการถูกลงโทษ (เช่น GLMNET) โดยหลักการแล้วเราสามารถใช้ IRLS / newton rhapson บนเมทริกซ์เบต้าเต็มรูปแบบอย่างไรก็ตามคุณจบลงด้วยเมทริกซ์น้ำหนักแบบไม่ทแยงมุม อีกวิธีหนึ่งเราสามารถเพิ่มประสิทธิภาพ "สไตล์กิ๊บส์" โดยการแก้ไข betas ทุกประเภทยกเว้นหนึ่งและจากนั้นเพิ่มประสิทธิภาพเพียงประเภทนั้น จากนั้นดำเนินการในหมวดหมู่ถัดไปและอื่น ๆ คุณจะเห็นว่าเนื่องจากความน่าจะเป็นมีแบบฟอร์ม(β1,,βC)

พีฉัน'=B

pic=exp(xiTβc)exp(xiTβc)+A where Aβc=0
pic=Bexp(xiTβc)+A where Bβc=0

ว่าการขยายกำลังสองเกี่ยวกับจะมีรูปแบบเดียวกับการถดถอยโลจิสติก แต่ด้วยน้ำหนัก IRLS คำนวณต่างกัน - แม้ว่าเรายังคงมีW i i , c = n ฉันc p ฉันc ( 1 - p i c )ใน ปกติ( X T W X ) -อัปเดตเบต้า1 X T W YβcWii,c=nicpic(1pic)(XTWX)1XTWY


Wk

β

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