เราน่ากลัวแค่ไหนเกี่ยวกับคำเตือนการบรรจบกันใน lme4


88

หากเราติดตั้ง glmer อีกครั้งเราอาจได้รับคำเตือนที่บอกเราว่าแบบจำลองกำลังค้นหาช่วงเวลาที่ยากลำบากในการบรรจบกัน ... เช่น

>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.00389462 (tol = 0.001)

อีกวิธีในการตรวจสอบการสนทนาที่กล่าวถึงในหัวข้อนี้โดย @Ben Bolker คือ:

 relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
 max(abs(relgrad))
 #[1] 1.152891e-05

ถ้าmax(abs(relgrad))เป็นเช่น<0.001นั้นสิ่งที่อาจจะตกลง ... ดังนั้นในกรณีนี้เรามีผลลัพธ์ที่ขัดแย้งกัน? เราควรเลือกระหว่างวิธีการและรู้สึกปลอดภัยกับแบบจำลองของเราอย่างไร

ในทางกลับกันเมื่อเราได้รับค่าสุดโต่งเช่น:

>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 35.5352 (tol = 0.001)

relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 0.002776518

นี่หมายความว่าเราต้องเพิกเฉยต่อผลลัพธ์ / การประมาณค่า / ค่า p ของแบบจำลองหรือไม่? 0.0027 ใหญ่เกินไปที่จะดำเนินการต่อหรือไม่

เมื่อเครื่องมือเพิ่มประสิทธิภาพที่แตกต่างกันให้ผลลัพธ์ที่แตกต่างกันและการตั้งศูนย์ตัวแปร / เอาพารามิเตอร์ (การปอกโมเดลลงไปต่ำสุด) ไม่ช่วย แต่ VIFs ต่ำรุ่นที่ไม่กระจายตัวเกินไปและผลลัพธ์ของโมเดลทำให้รู้สึกสมเหตุสมผล สิ่งที่ต้องทำ

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

ใช้: R version 3.1.0 (2014-04-10)และlme4_1.1-6


10
เวอร์ชั่นใหม่กว่าของlme4(เวอร์ชั่น 1.1-7) มีพฤติกรรมการเตือนที่แตกต่างกันซึ่งผู้เขียนเชื่อว่ามีแนวโน้มน้อยกว่าที่จะให้คำเตือน "เตือนภัยที่ผิดพลาด" คุณอาจลองอัปเดตlme4เป็นรุ่นใหม่ล่าสุดติดตั้งโมเดลอีกครั้งและดูว่าคุณยังได้รับคำเตือนที่คล้ายกันอย่างน้อยในกรณีแรก
Jake Westfall

คำตอบ:


91

กลัว. กลัวมาก

เมื่อปีที่แล้วฉันสัมภาษณ์จอห์นแนชผู้เขียนเรื่อง optim and optimx สำหรับบทความบนเว็บไซต์ DeveloperWorks ของ IBM เราพูดคุยเกี่ยวกับวิธีการทำงานของเครื่องมือเพิ่มประสิทธิภาพและทำไมพวกเขาล้มเหลวเมื่อพวกเขาล้มเหลว ดูเหมือนว่าเขาจะยอมรับว่าพวกเขามักจะทำ นั่นเป็นเหตุผลที่การวินิจฉัยรวมอยู่ในแพ็คเกจ เขายังคิดว่าคุณต้อง "เข้าใจปัญหาของคุณ" และเข้าใจข้อมูลของคุณ ทั้งหมดนี้หมายความว่าควรใช้คำเตือนอย่างจริงจังและเป็นคำเชิญให้ดูข้อมูลของคุณในรูปแบบอื่น

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

ปัญหาของตัวแบบผสมคือการประมาณค่าความแปรปรวนของเอฟเฟ็กต์แบบสุ่มนั้นถูก จำกัด ให้เป็นค่าบวกดังนั้นจึงวางขอบเขตภายในขอบเขตการหาค่าเหมาะที่สุด แต่สมมติว่าเอฟเฟกต์แบบสุ่มไม่จำเป็นต้องใช้จริงในแบบจำลองของคุณ - เช่นความแปรปรวนของเอฟเฟกต์แบบสุ่มคือ 0 เครื่องมือเพิ่มประสิทธิภาพของคุณจะเข้าสู่ขอบเขตนั้นไม่สามารถดำเนินการต่อและหยุดด้วยการไล่ระดับสีที่ไม่เป็นศูนย์ หากการลบการลู่เข้าแบบเอฟเฟกต์แบบสุ่มดีขึ้นคุณจะรู้ว่านั่นเป็นปัญหา

โปรดทราบว่าทฤษฎีความน่าจะเป็นสูงสุดของ asymptotic ถือว่า MLE ถูกพบในจุดภายใน (เช่นไม่ได้อยู่ในขอบเขตของค่าพารามิเตอร์ลิขสิทธิ์) - ดังนั้นการทดสอบอัตราส่วนความน่าจะเป็นสำหรับองค์ประกอบความแปรปรวนอาจไม่ทำงานเมื่อสมมติฐานว่างของศูนย์แปรปรวนเป็นจริง จริง การทดสอบสามารถทำได้โดยใช้การทดสอบจำลองตามที่นำมาใช้ในแพ็คเกจ RLRsim

สำหรับฉันฉันสงสัยว่าเครื่องมือเพิ่มประสิทธิภาพจะประสบปัญหาเมื่อมีข้อมูลน้อยเกินไปสำหรับจำนวนพารามิเตอร์หรือโมเดลที่เสนอนั้นไม่เหมาะสมจริง ๆ คิดว่ารองเท้าแตะแก้วและน้องสาวก้าวน่าเกลียด: คุณไม่สามารถใส่ข้อมูลลงในโมเดลไม่ว่าคุณจะพยายามมากแค่ไหนและมีอะไรให้

แม้ว่าข้อมูลจะเกิดขึ้นเพื่อให้พอดีกับแบบจำลอง แต่อาจไม่มีอำนาจในการประมาณค่าพารามิเตอร์ทั้งหมด มีเรื่องตลกเกิดขึ้นกับฉันในสายเหล่านั้น ฉันจำลองแบบผสมบางอย่างเพื่อตอบคำถามเกี่ยวกับสิ่งที่เกิดขึ้นหากคุณไม่อนุญาตให้มีเอฟเฟกต์แบบสุ่มมีความสัมพันธ์เมื่อติดตั้งแบบจำลองเอฟเฟกต์แบบผสม ฉันจำลองข้อมูลด้วยความสัมพันธ์ที่รุนแรงระหว่างเอฟเฟกต์สุ่มทั้งสองแบบจากนั้นให้พอดีกับโมเดลทั้งสองแบบด้วย lmer: วางตำแหน่งความสัมพันธ์ 0 และความสัมพันธ์อิสระ แบบจำลองสหสัมพันธ์นั้นดีกว่าแบบจำลองที่ไม่เกี่ยวข้อง แต่ที่น่าสนใจในการจำลอง 1,000 ครั้งฉันมีข้อผิดพลาด 13 ข้อเมื่อทำการปรับแบบจำลองที่แท้จริงและข้อผิดพลาด 0 ข้อเมื่อทำการปรับแบบจำลองที่ง่ายขึ้น ฉันไม่เข้าใจว่าทำไมสิ่งนี้ถึงเกิดขึ้น (และฉันก็ซิมส์ซ้ำกับผลลัพธ์ที่คล้ายกัน) ฉันสงสัยว่าพารามิเตอร์ความสัมพันธ์นั้นค่อนข้างไร้ประโยชน์และเครื่องมือเพิ่มประสิทธิภาพไม่สามารถหาค่าได้ (เพราะมันไม่สำคัญ)

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

หากเครื่องมือเพิ่มประสิทธิภาพสองตัวให้พารามิเตอร์เดียวกัน แต่การวินิจฉัยที่แตกต่างกัน - และพารามิเตอร์เหล่านั้นเหมาะสมกับโลกแห่งความเป็นจริง - จากนั้นฉันจะโน้มน้าวให้เชื่อใจค่าพารามิเตอร์ ความยากลำบากอาจอยู่กับการวินิจฉัยซึ่งไม่ใช่ข้อพิสูจน์ที่โง่เขลา หากคุณยังไม่ได้ระบุฟังก์ชันการไล่ระดับสีและ / หรือ Hessian matrix อย่างชัดเจนเครื่องมือเพิ่มประสิทธิภาพจะต้องประเมินสิ่งเหล่านี้จากฟังก์ชันการสูญเสียและข้อมูลซึ่งเป็นสิ่งอื่นที่ผิดพลาดได้

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


3
Ahhh! ฉันเพิ่งเปิดคำถามนี้เพื่อให้ "กลัวกลัวมาก" เรื่องตลก. ดีสำหรับคุณ. ยังดีในการรวมมันเป็นคำตอบจริงซึ่งฉันไม่ได้ตั้งใจทำ
Alexis

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

18

ฉันแค่ต้องการเสริมคำตอบที่ดีของ @ Placidia คุณอาจต้องการตรวจสอบ "โมเดลเชิงเส้นเชิงพารามิเตอร์: ตัวเติม, อนุกรมเวลาและโมเดลเชิงพื้นที่โดยใช้เอฟเฟกต์แบบสุ่ม" โดย James Hodges (2014) มันจะแยกแยะสิ่งที่เราไม่ทราบเกี่ยวกับตัวแบบผสมและในเวลาเดียวกันก็พยายามที่จะเสนอทฤษฎีแบบกว้างรวมถึงเคล็ดลับการปฏิบัติสำหรับแบบจำลองที่ซับซ้อนที่เหมาะสม

ผู้สร้างแบบจำลองที่กลัวตัวเองบ่อยครั้งฉันพบว่าการพูดคุยเรื่อง "ปริศนา" ไม่มีค่า เขาอธิบายกรณีแปลก ๆ ที่เกิดขึ้นจากการสร้างแบบจำลองเอฟเฟกต์แบบผสมรวมถึง "เอฟเฟกต์แบบสุ่มแข่งขันกับเอฟเฟกต์คงที่" และ "การแข่งขันระหว่างเอฟเฟ็กต์แบบสุ่ม" เสียงที่คุ้นเคย?

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