บันทึกด้วยตัวแปรอิสระลำดับ


18

ในแบบจำลอง logit มีวิธีที่ชาญฉลาดในการกำหนดผลของตัวแปรลำดับอิสระมากกว่าการใช้ตัวแปรจำลองสำหรับแต่ละระดับหรือไม่


มันขึ้นอยู่กับซอฟต์แวร์หรือไม่?

1
ซอฟต์แวร์ที่แตกต่างกันอาจอนุญาตให้มีตัวเลือกต่างกัน แต่ควรมีคำตอบที่ถูกต้องหรือไม่?
fgregg

1
ตกลงความคิดเห็นที่โง่ขอโทษ

คำตอบ:


16

หากต้องการเพิ่มการตอบสนองของ @ dmk38 "ชุดคะแนนใด ๆ จะให้การทดสอบที่ถูกต้องหากพวกเขาสร้างขึ้นโดยไม่ปรึกษาผลการทดสอบหากชุดคะแนนไม่ดี การจัดหมวดหมู่ตามคำสั่งการทดสอบจะไม่ละเอียดอ่อนดังนั้นคะแนนควรรวบรวมความเข้าใจที่ดีที่สุดที่มีอยู่เกี่ยวกับวิธีการจัดหมวดหมู่ที่สร้างขึ้นและใช้งาน " (Cochran, 1954 อ้างโดย Agresti, 2002, pp. 88-89) กล่าวอีกนัยหนึ่งการปฏิบัติต่อปัจจัยที่มีการจัดลำดับเป็นตัวแปรเชิงตัวเลขเป็นเพียงปัญหาการสร้างแบบจำลอง หากมีเหตุผลก็จะส่งผลต่อวิธีที่คุณตีความผลลัพธ์เท่านั้นและไม่มีกฎง่ายๆในการเลือกการแสดงที่ดีที่สุดสำหรับตัวแปรลำดับ

พิจารณาตัวอย่างต่อไปนี้เกี่ยวกับการบริโภคเครื่องดื่มแอลกอฮอล์ของมารดาและการมีหรือไม่มีความพิการ แต่กำเนิด (Agresti, การวิเคราะห์ข้อมูลเชิงหมวดหมู่ , ตาราง 3.7 p.89):

            0    <1 1-2 3-5 6+
Absent  17066 14464 788 126 37
Present    48    38   5   1  1

ในกรณีนี้เราสามารถจำลองผลลัพธ์โดยใช้การถดถอยโลจิสติกหรือตารางการเชื่อมโยงอย่างง่าย มาทำกันใน R:

tab3.7 <- matrix(c(17066,48,14464,38,788,5,126,1,37,1), nr=2,
                 dimnames=list(c("Absent","Present"),
                               c("0","<1","1-2","3-5","6+")))
library(vcd)
assocstats(tab3.7)

ตามปกติ (12.08, p = 0.016751) หรือ LR (6.20, p = 0.184562) สถิติ (ที่มี 4 df) ไม่ได้คำนึงถึงระดับที่สั่งในการบริโภคแอลกอฮอล์χ2

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

library(reshape)
tab3.7.df <- untable(data.frame(malform=gl(2,1,10,labels=0:1), 
                                alcohol=gl(5,2,10,labels=colnames(tab3.7))), 
                     c(tab3.7))
# xtabs(~malform+alcohol, tab3.7.df) # check

จากนั้นเราสามารถทดสอบการเชื่อมโยงเชิงเส้นโดยใช้

library(coin)
#lbl_test(as.table(tab3.7))
lbl_test(malform ~ alcohol, data=tab3.7.df)

χ2(1)=1.83พี=0.1764M2=(n-1)R2

cor(sapply(tab3.7.df, as.numeric))[1,2]^2*(32574-1)

ดังที่เห็นได้ว่ามีหลักฐานไม่มากที่แสดงถึงความสัมพันธ์ที่ชัดเจนระหว่างตัวแปรทั้งสอง ตามที่ทำโดย Agresti ถ้าเราเลือกที่จะ recode ระดับแอลกอฮอล์เป็น {0,0.5,1.5,4,7} นั่นคือการใช้ค่าระดับกลางสำหรับระดับต่อเนื่องที่ตั้งสมมติฐานกับคะแนนสุดท้ายที่ค่อนข้างบริสุทธิ์แล้วเราจะสรุป ที่จะมีผลกระทบมากขึ้นของการบริโภคเครื่องดื่มแอลกอฮอล์ของมารดาในการพัฒนาความพิการ แต่กำเนิด:

lbl_test(malform ~ alcohol, data=tab3.7.df,         
         scores=list(alcohol=c(0,0.5,1.5,4,7)))

ให้ค่าสถิติการทดสอบที่ 6.57 โดยมีค่า p-0.01037 ที่เกี่ยวข้อง

ρR

เมื่อใช้วิธีการ GLM เราจะดำเนินการดังนี้ แต่ก่อนอื่นให้ตรวจสอบว่าแอลกอฮอล์เข้ารหัสใน R:

class(tab3.7.df$alcohol)

มันเป็นปัจจัยที่ไม่มีการเรียงลำดับง่าย ๆ ( "factor") ดังนั้นจึงเป็นตัวทำนายที่กำหนด ทีนี้นี่คือแบบจำลองสามแบบที่เราคิดว่าแอลกอฮอล์เป็นตัวทำนายเล็กน้อยอันดับหรือต่อเนื่อง

summary(mod1 <- glm(malform ~ alcohol, data=tab3.7.df, 
                    family=binomial))
summary(mod2 <- glm(malform ~ ordered(alcohol), data=tab3.7.df, 
                    family=binomial))
summary(mod3 <- glm(malform ~ as.numeric(alcohol), data=tab3.7.df, 
                    family=binomial))

β^ประสบการณ์(θ^)=ประสบการณ์(0.228)=1.256. การทดสอบ Wald ไม่มีนัยสำคัญในระดับปกติ 5% ในกรณีนี้เมทริกซ์การออกแบบมีเพียง 2 คอลัมน์: คอลัมน์แรกคือคอลัมน์คงที่ของ 1 สำหรับการสกัดกั้นส่วนที่สองคือค่าตัวเลข (1 ถึง 5) สำหรับตัวทำนายเช่นเดียวกับการถดถอยเชิงเส้นอย่างง่าย โดยรวมแล้วโมเดลนี้ทำการทดสอบหาผลเชิงเส้นของแอลกอฮอล์ในผลลัพธ์ (ในระดับ logit)

อย่างไรก็ตามในอีกสองกรณี ( mod1และmod2) เราได้รับเอาต์พุตที่แตกต่างกันเนื่องจากเมทริกซ์การออกแบบที่ใช้ในการจำลองตัวทำนายแตกต่างกันดังที่สามารถตรวจสอบได้โดยใช้:

model.matrix(mod1)
model.matrix(mod2)

mod1k-1mod2mod1mod2

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


3
(+1) คำตอบที่ละเอียดมาก ฉันแค่เพิ่มว่ามันเป็นไปได้ที่จะได้รับการทดสอบที่ถือว่าเพียงความน่าเบื่อของความสัมพันธ์การตอบสนองโดยไม่ต้องกำหนดคะแนนให้กับตัวแปรลำดับโดยใช้การถดถอยแบบ isotonic แม้ว่าการจำลองหรือวิธีการเปลี่ยนรูปจะต้องได้รับการแจกแจงสถิติการทดสอบ ภายใต้ null ดู Salanti & Ulm 2003 dx.doi.org/10.1002/bimj.200390012
onestop

@onestop ขอบคุณสำหรับการอ้างอิงนี้ ฉันจะดูมัน
chl

6

มันสมบูรณ์ดีที่จะใช้ตัวทำนายหมวดหมู่ในแบบจำลองการถดถอย logit (หรือ OLS) ถ้าระดับเป็นลำดับ แต่ถ้าคุณมีเหตุผลในการปฏิบัติต่อแต่ละระดับอย่างไม่ต่อเนื่อง (หรือในความเป็นจริงแล้วตัวแปรการจัดหมวดหมู่ของคุณนั้นเป็นชื่อแทนที่จะเป็นเลขลำดับ) จากนั้นแทนการเข้ารหัสแบบหลอกตาคุณสามารถใช้การเข้ารหัสความคมชัดแบบฉาก สำหรับการสนทนาที่สมบูรณ์และเข้าถึงได้มากดู Judd, CM, McClelland, GH & Ryan, CS การวิเคราะห์ข้อมูล: วิธีเปรียบเทียบแบบจำลอง, Edn ครั้งที่ 2 (Routledge / Taylor และ Francis, New York, NY; 2008) หรือเพียงแค่ Google "contrast coding"


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

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

ฉันให้ +1 เพราะการตอบสนองนี้ฟังดูดีและฉันเดา @fgregg จะทำเช่นเดียวกัน (มีตัวแทนเพียงพอ)
chl

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