จะระบุเมทริกซ์คอนทราสต์ (เป็น R) สำหรับความแตกต่างระหว่างระดับหนึ่งกับค่าเฉลี่ยของระดับอื่น ๆ ได้อย่างไร?


9

ฉันมีรูปแบบการถดถอยที่มีลักษณะเช่นนี้:

Y=β0+β1X1+β2X2+β3X3+β12X1X2+β13X1X3+β123X1X2X3

... หรือในสัญกรณ์ R: y ~ x1 + x2 + x3 + x1:x2 + x1:x3 + x1:x2:x3

สมมติว่า X1 และ X2 เป็นตัวแปรเด็ดขาดและ X3เป็นตัวเลข ภาวะแทรกซ้อนก็คือX1 มีสามระดับ X1a,X1b,X1c และแทนที่จะเป็นความแตกต่างมาตรฐานฉันต้องทดสอบ:

  • ไม่ว่าจะเป็นการสกัดกั้นระดับ X1a แตกต่างจากการสกัดกั้นโดยเฉลี่ยสำหรับระดับ X1b และ X1c.
  • ไม่ว่าจะเป็นการตอบสนองของ X2 แตกต่างกันอย่างมีนัยสำคัญระหว่างระดับ X1a และค่าเฉลี่ยของระดับ X1b และ X1c.
  • ไม่ว่าจะเป็นความชันของ X3 แตกต่างกันอย่างมีนัยสำคัญระหว่างระดับ X1a และค่าเฉลี่ยของระดับ X1b และ X1c.

จากโพสต์นี้ดูเหมือนว่าเมทริกซ์ที่ฉันต้องการคือ ...

 2
-1
-1

contrasts(mydata$x1)<-t(ginv(cbind(2,-1,-1)))ดังนั้นผมจึงทำ การประมาณของβ1การเปลี่ยนแปลง แต่ทำอย่างอื่น ๆ ฉันสามารถทำซ้ำประมาณการใหม่ของbeta1 โดยการลบค่าที่ทำนายของ X1b และ X1c กลุ่มหมายถึง (เมื่อ X3=0 และ X2 อยู่ที่ระดับอ้างอิง) ตั้งแต่สองเท่าของค่า X1aในระดับเหล่านั้น แต่ฉันไม่สามารถวางใจได้ว่าฉันระบุเมทริกซ์คอนทราสต์ของฉันอย่างถูกต้องเว้นแต่ฉันจะได้ค่าสัมประสิทธิ์อื่น ๆ ในทำนองเดียวกัน

ใครบ้างมีคำแนะนำเกี่ยวกับวิธีห่อหัวของฉันรอบความสัมพันธ์ระหว่างเซลล์หมายถึงและความแตกต่าง? ขอบคุณ มีชื่อมาตรฐานสำหรับความคมชัดประเภทนี้หรือไม่


Aha! ตามลิงก์ที่โพสต์ในคำตอบของ Glen_bบรรทัดล่างคือคุณสามารถแปลงการเปรียบเทียบกลุ่มใดก็ได้หมายความว่าคุณต้องการเป็นแอตทริบิวต์ความคมชัด R-style ดังต่อไปนี้:

  1. ทำเมทริกซ์จตุรัส แถวแสดงถึงระดับของปัจจัยของคุณและคอลัมน์แสดงถึงความแตกต่าง ยกเว้นอันแรกซึ่งบอกโมเดลว่าการสกัดกั้นควรเป็นตัวแทนของอะไร
  2. หากคุณต้องการให้การสกัดกั้นของคุณเป็นค่าเฉลี่ยยิ่งใหญ่ให้เติมคอลัมน์แรกด้วยค่าที่ไม่เป็นศูนย์เดียวกันทั้งหมดไม่สำคัญว่าจะเกิดอะไรขึ้น หากคุณต้องการให้การสกัดกั้นเป็นวิธีหนึ่งในระดับให้ใส่ตัวเลขลงในแถวนั้นแล้วเติมส่วนที่เหลือด้วยศูนย์ หากคุณต้องการให้การสกัดกั้นนั้นมีความหมายหลายระดับให้ใส่ตัวเลขในแถวและศูนย์เหล่านั้นในส่วนที่เหลือ หากคุณต้องการให้มันเป็นค่าเฉลี่ยถ่วงน้ำหนักให้ใช้ตัวเลขอื่นหรือใช้ตัวเลขเดียวกัน คุณยังสามารถใส่ค่าลบในคอลัมน์สกัดกั้นและนั่นอาจหมายถึงบางสิ่งบางอย่างเช่นกัน แต่มันเปลี่ยนความแตกต่างอื่น ๆ ได้อย่างสมบูรณ์ดังนั้นฉันจึงไม่มีความคิดว่าสิ่งนั้นมีไว้เพื่ออะไร
  3. กรอกข้อมูลลงในคอลัมน์ที่เหลือด้วยค่าบวกและลบที่ระบุว่าคุณต้องการเปรียบเทียบกับระดับอื่น ๆ ฉันลืมว่าทำไมการรวมเป็นศูนย์จึงมีความสำคัญ แต่ปรับค่าเพื่อให้คอลัมน์รวมเป็นศูนย์
  4. เคลื่อนย้ายเมทริกซ์โดยใช้t()ฟังก์ชัน
  5. ใช้ginv()จากMASSแพ็คเกจหรือsolve()เพื่อรับค่าผกผันของเมทริกซ์ที่ถูกเปลี่ยน
  6. mycontrast<-mycontrast[,-1]วางคอลัมน์แรกเช่น ตอนนี้คุณมีเมทริกซ์ apx p-1 แต่ข้อมูลที่คุณใส่ในการสกัดกั้นถูกเข้ารหัสในเมทริกซ์โดยรวมในระหว่างขั้นตอนที่ 5
  7. หากคุณต้องการให้ฉลากในเอาต์พุตสรุปน่าอ่านมากกว่าlm()เอาท์พุตเริ่มต้นของเอตแอลให้ตั้งชื่อคอลัมน์ของเมทริกซ์ของคุณตามนั้น การสกัดกั้นจะได้รับการตั้งชื่อโดยอัตโนมัติ(Intercept)อย่างไรก็ตาม
  8. ทำให้เมทริกซ์ของคุณแตกต่างใหม่สำหรับปัจจัยที่มีปัญหาเช่น contrasts(mydata$myfactor)<-mymatrix
  9. เรียกใช้lm()(และอาจจะฟังก์ชั่นอื่น ๆ อีกมากมายที่ใช้สูตร) ตามปกติในมาตรฐาน R โดยไม่ต้องโหลดglht, หรือdoBycontrasts

Glen_b ขอบคุณและขอบคุณกลุ่มที่ปรึกษาทางสถิติของ UCLA ฉันใช้สถิติ prof ใช้เวลาหลายวันในการเขียนหัวข้อนี้และฉันก็ยังไม่ทราบว่าจะเขียนเมทริกซ์ความคมชัดของตัวเองได้อย่างไร และตอนนี้หนึ่งชั่วโมงในการอ่านและเล่นกับ R และในที่สุดฉันก็คิดว่าฉันเข้าใจแล้ว เดาว่าฉันควรสมัครกับ UCLA แทน หรือ University of StackExchange

คำตอบ:


5

เปรียบเทียบว่าเป็นหนึ่งเดียวกับค่าเฉลี่ยของตัวแปรในภายหลังทั้งหมด (นอกเหนือจากขนาด) เรียกHelmert การเข้ารหัสหรือความแตกต่าง Helmert สิ่งที่คุณให้คือความคมชัดแรกส่วนอีกอันจะเป็นเวอร์ชั่นที่ปรับขนาด(0,1,1).

สิ่งที่เรียกว่าการเข้ารหัสHelmert สิ่งนี้เรียกว่า 'ย้อนกลับ Helmert' พวกมันเทียบเท่ากับการเปลี่ยนแปลงลำดับของตัวแปร


ควรเทียบเท่า "ถึงการเปลี่ยนแปลงของคำสั่งตัวแปร" ควร "ได้รับการกลับคำสั่งของระดับ"? ดังนั้นเพื่อให้ได้ SAS / SPSS ชนิดของ helmert (เปรียบเทียบกับค่าเฉลี่ยของระดับที่เหลือ) เราจะต้องกลับลำดับของระดับของปัจจัยที่เกี่ยวข้องหรือ rev () แต่ละคอลัมน์จากนั้น rev () แต่ละแถวของเมทริกซ์ ส่งกลับโดยcontra.helmert?
ทิม

@tim "a change of variable order" isn't intended to mean "any change of variable order", but quite literally การเปลี่ยนแปลงของคำสั่งตัวแปร (นั่นคือโดยเฉพาะอย่างยิ่งหนึ่ง)
Glen_b -Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.