วิธีการระบุการกระจาย lognormal ในการโต้แย้งตระกูล glm ใน R?


17

คำถามง่าย ๆ : จะระบุการกระจายแบบ lognormal ในอาร์กิวเมนต์ตระกูล GLM ใน R ได้อย่างไร? ฉันไม่สามารถค้นหาวิธีการนี้สามารถทำได้ เหตุใด lognormal (หรือ exponential) จึงไม่มีตัวเลือกในการโต้แย้งครอบครัว?

ที่ไหนสักแห่งใน R-Archives ฉันอ่านว่ามีการใช้ log-link สำหรับครอบครัวที่ตั้งค่าเป็น gaussian ใน GLM เพื่อระบุ lognormal อย่างไรก็ตามนี่เป็นเรื่องไร้สาระเพราะมันจะพอดีกับการถดถอยเชิงเส้นและ R เริ่มขอค่าเริ่มต้น

มีใครทราบวิธีตั้งค่าการกระจาย lognormal (หรือเลขชี้กำลัง) สำหรับ GLM หรือไม่


1
สิ่งนี้ควรอยู่บน SO ด้วยแท็ก [r]
DWIN

4
@DWin - ฉันไม่เห็นด้วยครั้งเดียว - ฉันมักจะออกเสียงลงคะแนนเพื่อโยกย้าย Qs ไปยังตัวเอง แต่คำถามนี้มีเนื้อหาทางสถิติที่สำคัญ
onestop

คำตอบ:


8

gamlssแพคเกจช่วยให้คุณเพื่อให้พอดีกับรุ่นทั่วไปสารเติมแต่งที่มีทั้งแบบ lognormal และการแจกแจงชี้แจงและพวงของคนอื่น ๆ ที่มีความหลากหลายในฟังก์ชั่นการเชื่อมโยงบางอย่างและใช้ถ้าคุณต้องการรุ่นกึ่งหรือไม่ขึ้นอยู่กับตัวแปรร่องลงโทษ มีเอกสารบางอย่างที่เผยแพร่เกี่ยวกับอัลกอริทึมที่ใช้และเอกสารประกอบและตัวอย่างที่เชื่อมโยงกับไซต์ที่ฉันเชื่อมโยง


10

เกี่ยวกับการปรับโมเดลเอกซ์โพเนนเชียลด้วยglm: เมื่อใช้งานglmฟังก์ชั่นกับ family = Gamma จำเป็นต้องใช้สิ่งอำนวยความสะดวกsummary.glmในการรองรับเพื่อแก้ไขพารามิเตอร์การกระจายตัวที่ 1:

?summary.glm
fit <- glm(formula =..., family = Gamma)
summary(fit,dispersion=1) 

และในขณะที่ฉันจะชี้ให้เห็น แต่ jbowman เอาชนะฉันไปได้แพ็คเกจ "gamlss" มีไว้สำหรับการล็อกแบบปกติ:

help(dLOGNO, package=gamlss.dist)

1
ฉันไม่รู้เกี่ยวกับการแก้ไขพารามิเตอร์การกระจาย (+1)
jbowman

ฉันเห็นโซลูชันนี้ในโพสต์อื่นฉันคิดว่า อย่างไรก็ตามมีสองปัญหา ครั้งแรกในกรณีนี้มีเพียงการปรับสรุป แต่พารามิเตอร์ที่ฉันต้องการแยก (ส่วนที่เหลือ ฯลฯ ) ไม่ได้ปรับเป็นการกระจายตัวที่ 1 หรือฉันผิด ประการที่สองฉันไม่เหมาะกับ family = Gamma เพราะมีค่าศูนย์ในชุดข้อมูล (อันที่จริงแล้วค่าเหล่านี้มีค่าน้อยมาก แต่ถูกตั้งค่าเป็นศูนย์) ฉันจะเช็คเอาต์แพ็คเกจ gamlss.dist!
Jens

1
เลขศูนย์ไม่ใช่ปัญหาของ R หรือglmแต่กับคณิตศาสตร์, ... และถ้าคุณมีการประมาณค่าพารามิเตอร์, การสร้างสิ่งตกค้างเป็นเรื่องเล็กน้อยใน R. โพสต์คำถามใน SO ด้วยแท็ก [r] และคุณ จะได้รับการตอบสนองที่รวดเร็วอย่างแน่นอน
DWIN

9

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

ฉันชัดเจนน้อยกว่าว่าทำไมเลขชี้กำลังไม่ใช่ตัวเลือกเนื่องจากการแจกแจงแบบเลขชี้กำลังอยู่ในตระกูลเลขชี้กำลัง (อย่างที่คุณหวัง) ซอฟต์แวร์ทางสถิติอื่น ๆ ที่ฉันคุ้นเคยอนุญาตให้ปรับการแจกแจงเอ็กซ์โพเนนเชียลเป็น GLM โดยการใช้มันเป็นกรณีพิเศษของการแจกแจงแกมมาที่มีรูปร่าง (aka สเกลหรือการกระจาย) พารามิเตอร์คงที่ 1 แทนที่จะประเมิน อย่างไรก็ตามฉันไม่เห็นวิธีแก้ไขพารามิเตอร์นี้โดยใช้glm()ฟังก์ชันของ R หนึ่งทางเลือกที่จะใช้survreg()ฟังก์ชั่นจากแพคเกจด้วยsurvivaldist="exponential"

หากคุณมีการตอบสนองต่อข้อมูลที่คุณเชื่อว่าต่อไปนี้การกระจาย lognormal วิธีปกติของการปรับตัวแบบการถดถอยไปมันจะเข้าสู่ระบบแปลงมันเป็นบันทึก( Y )จะมีการแจกแจงแบบปกติ กรณีที่ง่ายที่สุดคือให้พอดีกับโมเดลเชิงเส้นแบบธรรมดา รูปแบบที่ส่งผลไม่มากรุ่นเดียวกันคุณจะได้รับถ้าคุณได้พอดี GLM มีการเชื่อมโยงเข้าสู่ระบบ แต่เป็นE ( เข้าสู่ระบบ( Y ) ) ล็อก( E ( Y ) )ylog(y)E(log(Y))log(E(Y)).


8
h(x),T(x),A(θ)

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

5

การติดตั้ง GLM แบบล็อก - ปกติไม่เกี่ยวข้องกับการแจกแจงหรือตัวเลือกลิงค์ของglm()ฟังก์ชั่น คำว่า "บันทึกปกติ" ค่อนข้างสับสนในแง่นี้ แต่หมายความว่าตัวแปรตอบสนองจะกระจายตามปกติ (family = gaussian) และการแปลงจะถูกนำไปใช้กับตัวแปรนี้ด้วยวิธีต่อไปนี้:

log.glm <- glm(log(y)~x, family=gaussian, data=my.dat)

อย่างไรก็ตามเมื่อเปรียบเทียบ glm บันทึกปกติกับ glms อื่นที่ใช้การแจกแจงที่แตกต่างกัน (เช่นแกมมา) ฟังก์ชัน AIC () ควรได้รับการแก้ไข มีใครบ้างที่รู้ทางเลือกของ AIC ที่ผิดพลาดเหล่านี้ในกรณีนี้?


2
ยินดีต้อนรับสู่เว็บไซต์ @CHarma หากคุณมีคำถามโปรดคลิกที่ "ถามคำถาม" สีเทาที่มุมขวาบนแทนที่จะรวมไว้ในคำตอบของคุณ
gung - Reinstate Monica

1

ลองใช้คำสั่งต่อไปนี้:

log.glm = glm(y ~ x, family=gaussian(link="log"), data=my.dat)

มันใช้งานได้ที่นี่และ AIC ดูเหมือนจะถูกต้อง


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