การเปรียบเทียบตัวแบบผสม (ตัวแบบสุ่ม) กับตัวแบบเชิงเส้นอย่างง่าย (ตัวแบบเป็นเอฟเฟกต์คงที่)


10

ฉันกำลังทำการวิเคราะห์บางอย่างกับชุดข้อมูลขนาดใหญ่ ฉันต้องการใช้โมเดลเชิงเส้นที่ใช้ในส่วนแรกของงานและปรับให้เหมาะสมโดยใช้โมเดลเชิงเส้นผสม (LME) LME จะคล้ายกันมากกับข้อยกเว้นว่าหนึ่งในตัวแปรที่ใช้ในแบบจำลองจะถูกใช้เป็นเอฟเฟกต์แบบสุ่ม ข้อมูลนี้มาจากการสังเกตหลายครั้ง (> 1,000) ในกลุ่มวิชาเล็ก ๆ (~ 10) และฉันรู้ว่าการสร้างแบบจำลองผลกระทบของเรื่องจะทำได้ดีกว่าเป็นเอฟเฟกต์แบบสุ่ม (นี่คือตัวแปรที่ฉันต้องการเปลี่ยน) รหัส R จะเป็นดังนี้:

my_modelB <- lm(formula = A ~ B + C + D)    
lme_model <- lme(fixed=A ~ B + C, random=~1|D, data=my_data, method='REML')

ทุกอย่างทำงานได้ดีและผลลัพธ์ก็คล้ายคลึงกันอย่างมากมาย มันจะดีถ้าฉันสามารถใช้อะไรเช่น RLRsim หรือ AIC / BIC เพื่อเปรียบเทียบทั้งสองรุ่นและตัดสินใจว่าแบบใดที่เหมาะสมที่สุด เพื่อนร่วมงานของฉันไม่ต้องการรายงาน LME เพราะไม่มีวิธีเข้าถึงได้ง่ายในการเลือกว่า "ดีกว่า" แม้ว่าฉันคิดว่า LME เป็นรุ่นที่เหมาะสมกว่า ข้อเสนอแนะใด ๆ

คำตอบ:


6

นี่คือการเพิ่มคำตอบของ @ ocram เพราะมันยาวเกินไปที่จะโพสต์เป็นความคิดเห็น ฉันจะถือว่าA ~ B + Cเป็นโมเดลว่างของคุณเพื่อให้คุณสามารถประเมินนัยสำคัญทางสถิติของการDสกัดกั้นแบบสุ่มระดับในการตั้งค่าแบบจำลองแบบซ้อน ในฐานะที่เป็น ocram ชี้ให้เห็นสภาพความสม่ำเสมอเมื่อมีการละเมิดและสถิติทดสอบอัตราส่วน (LRT) จะไม่จำเป็นต้องมีการกระจาย asymptotically 2 วิธีแก้ปัญหาที่ฉันสอนคือ bootstrap LRT (ซึ่งการกระจาย bootstrap จะไม่เป็น ) แบบพาราเมตริกและคำนวณ bootstrap p-value ดังนี้:χ 2 χ 2H0:σ2=0χ2χ2

library(lme4)
my_modelB <- lm(formula = A ~ B + C)
lme_model <- lmer(y ~ B + C + (1|D), data=my_data, REML=F)
lrt.observed <- as.numeric(2*(logLik(lme_model) - logLik(my_modelB)))
nsim <- 999
lrt.sim <- numeric(nsim)
for (i in 1:nsim) {
    y <- unlist(simulate(mymodlB))
    nullmod <- lm(y ~ B + C)
    altmod <- lmer(y ~ B + C + (1|D), data=my_data, REML=F)
    lrt.sim[i] <- as.numeric(2*(logLik(altmod) - logLik(nullmod)))
}
mean(lrt.sim > lrt.observed) #pvalue

สัดส่วนของ bootstrapped LRTs มากขึ้นกว่าที่ LRT สังเกตได้คือค่า p


ขอบคุณสำหรับคำตอบของฉัน นอกจากนี้บางครั้งผู้คนใช้ส่วนผสมของไคสแควร์แทนการแจกแจงไคสแควร์สำหรับสถิติการทดสอบ
ocram

@ocram +1 สำหรับความคิดเห็นของคุณในการตัดสินใจว่าจะจัดการกับตัวแปรแบบสุ่มหรือคงที่แยกต่างหากจากการวิเคราะห์ @MudPhud หาก PI ของคุณไม่เข้าใจปัญหาและยืนยันค่า p ดังนั้นอาจแสดงให้เขาเห็นผลการทดสอบของเอฟเฟกต์แบบสุ่ม (ซึ่งคุณจะต้องรวมไว้ในบทความด้วย)
lockedoff

ขอบคุณสำหรับรหัส เมื่อฉันวิ่งมันผลลัพธ์ก็คือไม่มี LRT ที่ถูก bootstrapped มากกว่าที่สังเกตดังนั้นหมายความว่าฉันสามารถติดกับ lm ได้โดยไม่มีเอฟเฟกต์แบบสุ่มหรือแม้แต่ตัวแปรดั้งเดิมที่ถูกโยนลงไป
MudPhud

@MudPhud: คุณได้รับข้อผิดพลาดหรือไม่? ลองพิมพ์lrt.simเพื่อให้แน่ใจว่าไม่ได้เป็นศูนย์ทั้งหมดซึ่งในกรณีนี้ผู้กระทำผิดที่เป็นไปได้มากที่สุดคือคุณไม่ได้lme4ติดตั้งแพ็คเกจ
ล็อคอฟ

พวกเขาไม่ใช่ 0 เพียงเล็กมาก (~ 1e-6) เทียบกับที่สังเกต (63.95)
MudPhud

2

ฉันไม่แน่ใจทั้งหมดว่าจะติดตั้งรุ่นใดเมื่อคุณใช้ฟังก์ชั่น lme (ฉันเดาว่าเอฟเฟกต์แบบสุ่มควรจะเป็นไปตามการแจกแจงแบบปกติที่มีค่าเฉลี่ยเป็นศูนย์หรือไม่) อย่างไรก็ตามโมเดลเชิงเส้นเป็นกรณีพิเศษของโมเดลผสมเมื่อความแปรปรวนของเอฟเฟกต์แบบสุ่มเป็นศูนย์ แม้ว่าจะมีปัญหาทางเทคนิคบางอย่างอยู่ (เพราะอยู่ในขอบเขตของพื้นที่พารามิเตอร์สำหรับความแปรปรวน) คุณควรทดสอบ vs ...H 0 : v a r i a n c e = 0 H 1 : v a r i a n c e > 00H0:variance=0H1:variance>0

แก้ไข

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


คำถามคือ: มีการทดสอบเพื่อตัดสินใจว่าควรจะสร้างแบบจำลองตัวแปรเป็นเอฟเฟกต์แบบผสมหรือเอฟเฟกต์แบบสุ่มหรือไม่? มิฉะนั้นคุณสามารถทำแบบทดสอบที่คุณอธิบายแล้วทดสอบด้วยไคสแควร์ (ฉันไม่แน่ใจว่าการทดสอบที่เหมาะสมจะเป็นอย่างไร)
MudPhud

2
@MudPhud: การสร้างแบบจำลองตัวแปรเป็นคงที่หรือเป็นผลแบบสุ่มควรตัดสินใจจริงก่อนการวิเคราะห์เมื่อมีการวางแผนการศึกษา ขึ้นอยู่กับขอบเขตของข้อสรุปของคุณ เอฟเฟกต์แบบสุ่มช่วยให้ใช้งานได้ง่ายขึ้น นอกจากนี้ยังสามารถหลีกเลี่ยงปัญหาทางเทคนิคบางอย่าง ตัวอย่างเช่น asymptotics อาจแยกย่อยเมื่อจำนวนพารามิเตอร์เติบโตขึ้นเช่นกรณีที่ตัวแปรเด็ดขาดที่มีระดับมากถือว่าเป็นตัวแปรคงที่
ocram

ฉันเห็นด้วย แต่เมื่อฉันพยายามอธิบายเรื่องนี้กับ PI ของฉันเขาเพิ่งหันหลังกลับและขอค่า p บางอย่าง ฉันต้องการรวมการวิเคราะห์นี้ไว้ในต้นฉบับ แต่เขาจะไม่ใส่ลงไปหากไม่มีเหตุผลที่เป็นรูปธรรมมากขึ้น
MudPhud

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