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


17

ฉันมีโมเดลติดตั้งแล้ว (จากวรรณกรรม) ฉันยังมีข้อมูลดิบสำหรับตัวแปรทำนาย

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

คำตอบ:


15

นี่คือคำตอบของนักวิจัยที่ใช้ (โดยใช้แพคเกจสถิติ R)

อันดับแรกเรามาสร้างข้อมูลบางอย่างนั่นคือฉันกำลังจำลองข้อมูลสำหรับแบบจำลองการถดถอยโลจิสติกแบบไบวาเรียแบบง่าย:log(p1p)=β0+β1x

> set.seed(3124)
> 
> ## Formula for converting logit to probabilities 
> ## Source: http://www.statgun.com/tutorials/logistic-regression.html
> logit2prop <- function(l){exp(l)/(1+exp(l))}
> 
> ## Make up some data
> y <- rbinom(100, 1, 0.2)
> x <- rbinom(100, 1, 0.5)

ตัวทำนายxเป็นตัวแปรแบบแบ่งขั้ว:

> x
  [1] 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 
 [48] 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0
 [95] 1 1 1 1 1 0

ประการที่สองการประเมินตัด ( ) และความลาดชัน ( β 1 ) ที่คุณสามารถดูตัดเป็นβ 0 = - 0.8690และความลาดชันเป็นβ 1 = - 1.0769β0β1β0=0.8690β1=1.0769

> ## Run the model
> summary(glm.mod <- glm(y ~ x, family = "binomial"))

[...]

    Coefficients:
            Estimate Std. Error z value Pr(>|z|)   
(Intercept)  -0.8690     0.3304  -2.630  0.00854 **
x            -1.0769     0.5220  -2.063  0.03910 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

[...]

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

> ## Save the fitted values
> glm.fitted <- fitted(glm.mod)

xβ0β1glm.rcdm

> ## "Raw data + coefficients" method (RDCM)
## logit = -0.8690 + (-1.0769) * x
glm.rdcm <- -0.8690 + (-1.0769)*x

ขั้นตอนสุดท้ายคือการเปรียบเทียบค่าติดตั้งตาม R's fitted-function ( glm.fitted) และวิธีการ "ทำด้วยมือ" ของฉัน ( logit2prop.glm.rdcm) ฟังก์ชั่นของฉันเองlogit2prop(ดูขั้นตอนแรก) แปลงการบันทึกเป็นความน่าจะเป็น:

> ## Compare fitted values and RDCM
> df <- data.frame(glm.fitted, logit2prop(glm.rdcm))
> df[10:25,]
> df[10:25,]
   glm.fitted logit2prop.glm.rdcm.
10  0.1250000            0.1250011
11  0.2954545            0.2954624
12  0.1250000            0.1250011
13  0.2954545            0.2954624
14  0.2954545            0.2954624
15  0.1250000            0.1250011
16  0.1250000            0.1250011
17  0.1250000            0.1250011
18  0.2954545            0.2954624
19  0.1250000            0.1250011
20  0.1250000            0.1250011
21  0.1250000            0.1250011
22  0.1250000            0.1250011
23  0.1250000            0.1250011
24  0.1250000            0.1250011
25  0.2954545            0.2954624

6
โปรดทราบว่าไม่ให้ถดถอยโลจิสติกคุณจะต้องตั้งglm(y ~ x) family=binomial(link="logit")หมายเหตุ: การส่งออกกล่าวว่าไม่Dispersion parameter for gaussian family binomial familyถ้าคุณทำถูกต้องfitted(glm.mod)จริง ๆ แล้วส่งคืนความน่าจะเป็นโดยประมาณไม่ใช่การบันทึก คุณจะได้รับ logits predict(glm.mod, type="link")ด้วย
caracal

Aua! ฉันได้แก้ไขแล้ว ขอบคุณมาก @ caracal สำหรับการแก้ไขฉัน! นี่เป็นเรื่องที่น่าอายจริงๆ (มันน่าอายกว่าเพราะฉันได้ให้คำตอบที่ถูกต้องในเธรด SO อื่นแล้ว )
Bernd Weiss

1
แขนแพคเกจมีฟังก์ชั่น invlogit ซึ่งเป็นฟังก์ชั่นของคุณ logit2prop
Manoel Galdino

เราไม่ควรได้รับตัวเลขที่เหมือนกันสำหรับglm.fittedและlogit2prop.glm.rdcm.? มีความแตกต่างเล็ก ๆ น้อยมาก ฉันไม่สามารถเข้าใจได้ว่าทำไมเราถึงไม่มีหมายเลขเดียวกันในตัวอย่างของคุณ เมื่อฉันตรวจสอบ; library(arm); data.frame(logit2prop(glm.rdcm), invlogit(glm.rdcm))ก่อให้เกิดผลลัพธ์เดียวกันว่าสำหรับและlogit2prop invlogitดังนั้นอย่างเท่าเทียมกันฉันถามว่าทำไมglm.fittedและinvlogitส่งกลับตัวเลขที่ไม่เหมือนกันหรือไม่
Erdogan CEVHER

20

f:xlogx1xg:xexpx1+expx

π

f(π)=β0+x1β1+x2β2+

πg

π=g(β0+x1β1+x2β2+)


วิธีการเกี่ยวกับการถดถอยโลจิสติกอันดับ? อะไรจะเป็นตรรกะแล้ว
333

@ user333: ดี ... ฉันไม่ได้เล่นมากกับการถดถอยโลจิสติกอันดับ ... แต่ฉันคิดว่าหนึ่งใช้ฟังก์ชั่นการเชื่อมโยงเดียวกัน ในกรณีใด ๆ ตรรกะเดียวกัน: ผกผันฟังก์ชั่นการเชื่อมโยงที่จะได้รับการตอบสนองตัวแปร ...
ocram

ใช่ ... แต่ฉันจะรู้ได้อย่างไรว่าความน่าจะเป็นแบบใดที่เทียบกับหมวดหมู่เป้าหมาย?
user333

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