← All posts

หนึ่งค่าต่อหนึ่งคน: คู่มืออ่านซีรีส์ Mixed Model ฉบับเข้าใจง่ายสำหรับแพทย์

Clinical Epidemiology ResearchMethodology and Research Design THUniqcret doctor knowledges TH
หนึ่งค่าต่อหนึ่งคน: คู่มืออ่านซีรีส์ Mixed Model ฉบับเข้าใจง่ายสำหรับแพทย์
On this page

บทคัดย่อ

การวัดซ้ำในผู้ป่วยคนเดียวกันทำให้ ordinary regression ใช้ไม่ได้ เพราะมันสมมติว่าทุกแถวมาจากคนละคน คู่มือนี้เล่าซีรีส์ mixed model ทั้งแปดตอนเป็นเรื่องเดียวด้วยภาษาง่าย และแทบไม่มีการคำนวณ เริ่มจากแนวคิดเดียวที่แก้ปัญหานี้ คือผู้ป่วยแต่ละคนพกตัวเลขประจำตัวเข้าไปในทุกแถวของตัวเอง correlation ระหว่างการวัดซ้ำจึงเป็นผลจากโครงสร้างข้อมูล ไม่ใช่ตัวเลือกในซอฟต์แวร์ จากนั้นเดินผ่านแปดจุดแวะ ตั้งแต่ค่าชดเชยในข้อมูลดิบ compound symmetry กับ ICC คำถาม conditional เทียบ marginal แผนที่สองจุดเบื้องหลังทุกโมเดล random slopes variance ที่ไม่เท่ากัน ทางเลือก population-averaged และการปกป้อง standard error สี่ค่าที่เท่ากัน พร้อมลิงก์ไปตอนที่อธิบายเต็ม


One Number Per Person: Linear Mixed Models from the Ground Up — คู่มือประจำซีรีส์

ถ้าคุณเข้ามาจาก search engine หรือหลุดเข้ามากลางซีรีส์ ให้อ่านโพสต์นี้ก่อน อีกแปดตอนที่เหลือแต่ละตอนจะค่อย ๆ แกะแนวคิดทีละเรื่องอย่างละเอียด แต่โพสต์นี้เล่าเรื่องทั้งหมดรวดเดียวด้วยภาษาที่ใช้กันจริงในคลินิก และปิดท้ายทุกจุดแวะด้วยลิงก์ เพื่อให้คุณกระโดดเข้าไปตรงจุดที่ตรงกับปัญหาของตัวเองได้เลย ไม่มีตรงไหนที่สมมติว่าคุณเคย fit mixed model มาก่อน และแทบไม่มีการคำนวณเลย

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

ปัญหาเริ่มต้นจากคลินิกธรรมดา ๆ

คุณวัดค่าจากผู้ป่วยคนเดียวกันมากกว่าหนึ่งครั้ง ตาสองข้าง ผิวหนังสี่ตำแหน่ง ความดันโลหิตสามครั้ง หรือการนัดที่ baseline สัปดาห์ที่ 4 และสัปดาห์ที่ 12 สเปรดชีตค่อย ๆ เต็มขึ้น และการวัดแต่ละครั้งก็ได้แถวเป็นของตัวเอง

Ordinary linear regression อ่านสเปรดชีตแผ่นนั้นแล้วตั้งสมมติฐานเงียบ ๆ ไว้หนึ่งข้อ คือทุกแถวเป็นผู้ป่วยคนใหม่ที่ไม่เกี่ยวข้องกันเลย สองแถวจากคนเดียวกันจึงถูกนับว่าให้ข้อมูลอิสระเท่ากับสองแถวจากคนสองคนที่ไม่เคยเจอกัน ในการศึกษาที่มีการวัดซ้ำ สมมติฐานนี้ไม่จริง และมันไม่จริงในแบบที่คุณมองเห็นได้ด้วยตาเปล่า คนที่ค่าสูงมักจะสูงทุกตำแหน่ง และคนที่ค่าต่ำก็มักจะต่ำทุกตำแหน่ง

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

แนวคิดเดียวที่แก้ปัญหานี้ได้

ให้ผู้ป่วยแต่ละคนมี "ค่าประจำตัว" ของตัวเอง

ไม่ใช่ค่าที่โปรแกรมคิดขึ้นมาเอง และไม่ใช่การปรับที่ทำกับแต่ละแถว แต่เป็นค่าเดียวที่เป็นของ คน คนนั้น และถูกบวกเข้าไปแบบไม่เปลี่ยนแปลงในทุกแถวที่คนคนนั้นให้ข้อมูล ถ้าผิวของผู้ป่วยคนหนึ่งกั้นน้ำได้แย่กว่าคนอื่น เขาจะอยู่สูงกว่าค่าเฉลี่ยประชากรเป็นระยะคงที่ ทั้งที่ forearm, hand, shin และ back ค่าพื้นฐานประจำตัวของเขาเดินทางไปกับเขาในทุกการวัด

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

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

ทุกอย่างที่เหลือในซีรีส์นี้เป็นผลพวงของประโยคเดียวข้างบน

จุดแวะที่หนึ่ง — คุณเห็นค่าประจำตัวได้ก่อนจะ fit อะไรทั้งนั้น

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

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

ค่าชดเชยส่วนตัวที่ถูกแชร์: Random Intercept คืออะไรกันแน่

จุดแวะที่สอง — รูปแบบนี้มีชื่อที่คุณใช้อยู่แล้ว

ถ้าค่าที่แชร์กันค่าเดียวสร้าง covariance เท่ากันให้ทุกคู่ของการวัด ตารางของ covariance ทั้งหมดในผู้ป่วยหนึ่งคนก็จะน่าเบื่อในแบบที่มีประโยชน์มาก คือมีค่าเดียวกันหมดนอกเส้นทแยงมุม รูปร่างแบบนี้มีชื่อว่า compound symmetry และอัตราส่วนที่มันสร้างขึ้นก็มีชื่อที่คุณรู้จักอยู่แล้วจากงาน reliability

ลองถามว่าความแปรปรวนทั้งหมดมีสัดส่วนเท่าไรที่เป็นของคำถาม "นี่คือผู้ป่วยคนไหน" แทนที่จะเป็นของคำถาม "นี่คือการวัดครั้งไหน" สัดส่วนนั้นคือ intraclass correlation หรือเขียนเป็นสัญลักษณ์ว่า $\rho = \tau^2/(\tau^2+\sigma^2)$ โดยพจน์แรกคือคนต่างกันมากแค่ไหน และพจน์ที่สองคือการวัดหนึ่งครั้งแกว่งรอบโปรไฟล์ของคนคนนั้นมากแค่ไหน มันคือเลขคณิตชุดเดียวกับที่ reliability study ใช้ เพียงแต่ทำคนละหน้าที่ ตรงนี้มันอธิบาย clustering ไม่ใช่คุณสมบัติการวัดของเครื่องมือคุณ

ผลในทางปฏิบัติคือสิ่งที่นักระบาดวิทยาคลินิกทุกคนสนใจ แถวที่วัดซ้ำไม่ได้มาฟรี ชุดข้อมูลหลายร้อยแถวให้ข้อมูลเทียบเท่ากับ observation อิสระจำนวนน้อยกว่านั้นมาก และการวางแผน sample size ที่ละเลยเรื่องนี้อาจมองโลกในแง่ดีเกินไปอย่างมาก

Compound Symmetry กับ ICC: ออฟเซ็ตเดียว correlation เดียว

จุดแวะที่สาม — โมเดลตัวเดียวตอบคำถามทางคลินิกสองคำถาม

ตรงนี้คือจุดที่คนสับสนมากที่สุด mixed model พูดได้ทั้งสองประโยคโดยไม่ขัดแย้งกันเอง คือ "การวัดทั้งสี่ครั้งนี้เป็นอิสระต่อกัน" และ "การวัดทั้งสี่ครั้งนี้ correlate กัน" เพราะสองประโยคนี้ตอบคนละคำถาม

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

โพสต์นี้คำนวณทั้งสองเวอร์ชันทีละช่องบนผู้เข้าร่วมจำลองชุดเดียวกัน และแสดงว่าค่าประจำตัวขยับ covariance แต่ไม่ขยับค่าเฉลี่ย ส่วนคำถามที่ว่าโปรโตคอลของคุณกำลังถามข้อไหนในสองข้อนี้ เป็นการตัดสินใจที่ควรทำก่อน fit ไม่ใช่หลังจากอ่าน output แล้ว

Conditional หรือ Marginal? สองคำถามในโมเดลเดียว

จุดแวะที่สี่ — สมการเดียวที่บรรจุทุกอย่างไว้

ถึงตรงนี้ซีรีส์หยุดเพิ่มแนวคิดใหม่ แล้วหันมาวาดแผนที่แทน linear mixed model ทุกตัวที่เคยถูก fit ไม่ว่าซับซ้อนแค่ไหน ล้วนพูดเรื่องเดียวกันเป็นสองก้อน คือสิ่งที่ ตัวคน พกมา กับสิ่งที่เหลือหลังจากนั้น เขียนสั้น ๆ ได้ว่า covariance ระหว่างการวัดของคนหนึ่งคนคือ $ZGZ' + R$ โดยพจน์แรกคือทุกอย่างที่เกิดจากสิ่งที่คนคนนั้นพกมา และพจน์ที่สองคือทุกอย่างที่เกิดจาก measurement noise ตามปกติ

คุณค่าของแผนที่นี้ไม่ได้อยู่ที่สัญลักษณ์ แต่อยู่ที่ว่ามีเพียง สอง ที่เท่านั้นที่การตัดสินใจใด ๆ ในการสร้างโมเดลจะไปลงมือได้ คุณเพิ่มความรวยให้สิ่งที่คนพกมา หรือเพิ่มความรวยให้สิ่งที่เหลือ เมื่อคุณชี้ได้ว่าการเปลี่ยนแปลงที่มีคนเสนอมาแตะก้อนไหนในสองก้อน output ของ mixed model ก็จะเลิกให้ความรู้สึกว่าเป็นเมนูตัวเลือกที่ไม่เกี่ยวกัน

V = ZGZ′ + R: สมการเดียวที่อยู่เบื้องหลัง mixed model ทุกตัว

จุดแวะที่ห้า — บางคนต่างกันที่ "ทิศทางการเดินทาง" ไม่ใช่แค่ระดับ

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

สองอย่างตามมาทันที และควรรู้ทั้งคู่ก่อนจะพิมพ์ syntax อย่างแรก การกระจายของ outcome จะเลิกคงที่ตามเวลา มันจะแคบลงแล้วกว้างขึ้นอีกครั้งเมื่อเส้นทางของแต่ละคนแผ่ออก อย่างที่สอง correlation ระหว่างการนัดสองครั้งจะเริ่มขึ้นกับว่าคุณหยิบ คู่ไหน มา แทนที่จะเป็นค่าเดียวสำหรับทุกคู่ รูปร่างเรียบร้อยจากจุดแวะที่สองจึงหายไปทันทีที่ random slope เข้ามา

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

Random Slope: เมื่อแต่ละคนพก "เส้นทาง" ของตัวเองมาด้วย

จุดแวะที่หก — เมื่อค่าพื้นฐานที่แชร์กันค่าเดียวยังไม่ใช่เรื่องทั้งหมด

การสอนส่วนใหญ่หยุดอยู่ที่ประโยคว่า "random intercept แปลว่าทุกคู่ของการวัด correlate กันเท่ากัน" ประโยคนั้นถูกครึ่งเดียว และครึ่งที่หายไปคือจุดที่ข้อมูลจริงอาศัยอยู่

ค่าพื้นฐานที่แชร์กันบังคับให้ covariance เท่ากันทุกคู่จริง แต่มันไม่ได้บังคับให้ correlation เท่ากัน เพราะ correlation ยังขึ้นกับว่าการวัดแต่ละตำแหน่งมี noise มากแค่ไหนด้วย ถ้าตำแหน่งหนึ่งแปรปรวนกว่าตำแหน่งอื่นมาก ซึ่งในทางปฏิบัติก็เป็นเช่นนั้นจริง covariance จะยังเท่ากันหมด แต่ correlation จะกระจายออกจากกันอย่างเห็นได้ชัด compound symmetry จึงเป็นสมมติฐานเรื่องสองอย่าง ไม่ใช่อย่างเดียว และอย่างที่สองคือสิ่งที่คนมักลืม

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

เมื่อ Compound Symmetry ไม่จริง: variance ไม่เท่ากัน, unstructured correlation และเพดาน identifiability

จุดแวะที่เจ็ด — อีกสำนักหนึ่ง: บอก correlation ไปตรง ๆ แทนที่จะอธิบายมัน

ยังมีโมเดลอีกตระกูลหนึ่งซึ่งน่าเคารพไม่แพ้กัน ที่ปฏิเสธจะสร้างค่าประจำตัวขึ้นมาเลย มันแค่บอกตรง ๆ ว่า correlation ระหว่างการวัดของคนหนึ่งคนเป็นเท่าไร แล้วเดินหน้าประมาณผลของการรักษาหรือของกลุ่มต่อไป GLS และ GEE อยู่ในตระกูลนี้

สำหรับ outcome ต่อเนื่อง สองตระกูลนี้ให้ค่าประมาณที่ตรงกันเป็นส่วนใหญ่ ซึ่งเป็นความบังเอิญทางคณิตศาสตร์ ไม่ใช่กฎทั่วไป แต่สำหรับ outcome แบบ binary ความบังเอิญนั้นพัง และความจริงจำลองชุดเดียวกันให้ odds ratio สองค่า ค่าที่ใหญ่กว่าตอบว่า "สำหรับผู้ป่วยสองคนที่มีแนวโน้มพื้นฐานเหมือนกัน odds ต่างกันเท่าไร" ส่วนค่าที่เล็กกว่าตอบว่า "เมื่อเฉลี่ยทั้งประชากรแล้ว odds ต่างกันเท่าไร" ทั้งสองค่าถูกต้อง เพราะมันตอบคนละคำถาม และการรายงานค่าหนึ่งแต่บรรยายอีกค่าหนึ่งถือเป็นความผิดพลาดในการรายงานอย่างแท้จริง

ทางเลือกแบบ Population-Averaged: GLS, GEE และจุดที่โชคของ linear model หมดลง

จุดแวะที่แปด — พูดออกมาให้ได้ ต่อหน้าอาจารย์ที่กำลังสงสัย

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

SE เท่ากันสี่ค่า: วิธีปกป้อง mixed model ต่อหน้าอาจารย์

คำถามที่พาคนส่วนใหญ่มาที่นี่: ทำไม standard error ถึงเท่ากันหมด

คุณ fit โมเดลใน R หรือ Stata แล้วมองไปที่ output คอลัมน์ standard error แสดงตัวเลข เดียวกัน ในทุกตำแหน่ง ปกติ standard error ควรต่างกันไปในแต่ละแถว อันนี้ดูเหมือนก๊อปแล้ววาง และความคิดแรกที่ผุดขึ้นมาก็คือมีอะไรพังแน่ ๆ

มันไม่ได้พัง และนี่คือคำอธิบายด้วยคำที่ง่ายที่สุดเท่าที่คณิตศาสตร์จะยอมให้พูดได้

เริ่มจากแยกสามปริมาณที่ฟังดูคล้ายกันแต่ไม่ใช่สิ่งเดียวกัน หนึ่ง การวัดดิบที่ตำแหน่งหนึ่งกระจายมากแค่ไหน สอง มันยังกระจายมากแค่ไหนหลังจากโมเดลหักโปรไฟล์ของกลุ่มและค่าพื้นฐานประจำตัวของผู้ป่วยออกไปแล้ว และสาม ค่าเฉลี่ยที่ ประมาณได้ ของตำแหน่งนั้นมีความไม่แน่นอนแค่ไหน มีเพียงข้อสามเท่านั้นที่ปรากฏในคอลัมน์ standard error และตำแหน่งต่าง ๆ ต่างกันในข้อหนึ่งกับข้อสองได้สบาย ๆ โดยไม่ต่างกันในข้อสาม

ทีนี้ลองถามว่าความไม่แน่นอนของค่าเฉลี่ยรายตำแหน่งขึ้นกับอะไรบ้าง มีเพียงสองส่วนประกอบเท่านั้น คือการวัดหนึ่งครั้งพาความแปรปรวนมาเท่าไร และมีผู้ป่วยกี่คนที่ให้ค่าที่ตำแหน่งนั้น ชื่อของตำแหน่งไม่ใช่ส่วนประกอบ มันไม่เคยเข้าไปอยู่ในการคำนวณเลย

ในตัวอย่างการวัดผิวหนังแบบจำลองของเรา ผู้ป่วยทุกคนถูกวัดครบทุกตำแหน่ง ค่าเฉลี่ยของแต่ละตำแหน่งจึงตั้งอยู่บนจำนวนผู้ป่วยเท่ากันเป๊ะ และเราขอให้โมเดลใช้ระดับ noise ร่วมค่าเดียวครอบคลุมทุกตำแหน่ง ค่าเฉลี่ยของแต่ละตำแหน่งจึงตั้งอยู่บนค่าประมาณความแปรปรวนของการวัดเดียวกันเป๊ะด้วย ข้อมูลเท่ากัน สูตรเดียวกัน คำตอบก็เท่ากัน standard error ที่เท่ากันจึงไม่ใช่ช่องที่ถูกก๊อปมา แต่คือสิ่งที่เลขคณิตบังคับให้เป็น

ลองนึกถึงโพลสี่ครั้งที่ขนาดตัวอย่างเท่ากัน สุ่มจากประชากรเดียวกันในวันเดียวกัน คุณย่อมคาดหวังว่าจะได้ margin of error เท่ากันสี่ค่า และคงไม่มีใครบอกว่าโปรแกรมพัง

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

มีคำเตือนหนึ่งข้อที่ต้องอยู่ตรงนี้ และเป็นส่วนที่คำแก้ต่างส่วนใหญ่พลาด standard error ที่เท่ากันไม่ใช่ bug ก็จริง แต่มันก็ไม่ใช่หลักฐานว่าสมมติฐานเรื่อง noise ร่วมค่าเดียวนั้นถูกต้อง โปรแกรมคำนวณความไม่แน่นอนภายใต้สมมติฐานที่เรายื่นให้มัน และ output ที่ถูกต้องตามหลักการไม่เคยยืนยันความถูกต้องของสมมติฐานที่ผลิตมันขึ้นมา วิธีปิดคำถามนี้จึงไม่ใช่วาทศิลป์ แต่คือ sensitivity analysis ที่ระบุไว้ล่วงหน้า โดย fit โมเดลใหม่ให้แต่ละตำแหน่งมีระดับ noise ของตัวเอง แล้วรายงานให้ชัดว่าอะไรเปลี่ยนและอะไรไม่เปลี่ยน

คำแก้ต่างฉบับเต็ม พร้อมบทพูดสี่ขั้นตอนที่ใช้พูดได้จริง

สิ่งที่คู่มือนี้ยังไม่อนุญาตให้คุณสรุป

ข้อควรระวังสี่ข้อ เพราะเรื่องเล่าสั้น ๆ ถูกอ่านเกินได้ง่าย ข้อแรก การเห็นค่าประจำตัวชัด ๆ ในข้อมูลไม่ได้พิสูจน์ว่า random intercept เป็นโครงสร้างที่ถูกต้องสำหรับข้อมูลของคุณ มันบอกได้เพียงว่ามีบางอย่างระดับบุคคลอยู่จริง ข้อที่สอง ค่าประจำตัวไม่ใช่การวัดทางชีววิทยาของผู้ป่วยคุณ มันดูดซับทุกอย่างระดับบุคคลที่โมเดลไม่ได้ใส่ไว้ และการอ่านมันเป็นปริมาณทางคลินิกจะกลายเป็นข้อสรุปเชิงสาเหตุที่ดีไซน์ของคุณรองรับไม่ได้ ข้อที่สาม ไม่มี random effect ตัวใดซ่อม mean structure ที่ผิดได้ ถ้า interaction ควรอยู่ในโมเดลแล้วคุณไม่ใส่ ไม่มีอะไรในส่วน random ที่จะกู้มันกลับมา ข้อสุดท้าย คู่มือนี้เป็นแผนที่ ไม่ใช่คำแก้ต่าง ข้อโต้แย้งที่คุณจะใช้จริงกับ reviewer อยู่ในโพสต์ทั้งแปดที่มันชี้ไป

ประเด็นสำคัญที่ควรจำ

จะเริ่มอ่านตรงไหนดี

เลือกทางเข้าที่ตรงกับสถานการณ์ของคุณ ถ้าคุณไม่เคย fit mixed model มาก่อน ให้อ่านจุดแวะที่หนึ่ง สอง และสามตามลำดับ แล้วหยุดไว้เท่านั้นก่อน ถ้าคุณมาจากการค้นหาเรื่อง standard error ที่เท่ากัน ให้อ่านจุดแวะที่แปดก่อนแล้วค่อยย้อนไปจุดแวะที่หนึ่ง เพราะจุดแวะที่แปดพิงอยู่บนมัน ถ้าคุณกำลังวางแผนการวิเคราะห์ข้อมูลที่วัดซ้ำ ให้อ่านจุดแวะที่สี่เพื่อเอาแผนที่ แล้วเลือกจุดแวะที่ห้าหรือหกตามดีไซน์ของคุณ และถ้าปัญหาของคุณคือ reviewer ตั้งคำถามเรื่อง estimand ให้ตรงไปที่จุดแวะที่เจ็ดได้เลย

จากนั้นทำสิ่งที่เป็นรูปธรรมหนึ่งอย่างก่อน fit โมเดลครั้งต่อไป คือ plot โปรไฟล์ของผู้ป่วยแต่ละคนตามการวัดซ้ำของเขา และระบุชื่อ contrast ที่คำถามวิจัยของคุณต้องการจริง ๆ สองขั้นตอนนี้ใช้เวลาไม่กี่นาที และเป็นตัวตัดสินเกือบทุกอย่างที่ตามมา

ซีรีส์ทั้งหมด เรียงตามลำดับ

  1. ค่าชดเชยส่วนตัวที่ถูกแชร์: Random Intercept คืออะไรกันแน่
  2. Compound Symmetry กับ ICC: ออฟเซ็ตเดียว correlation เดียว
  3. Conditional หรือ Marginal? สองคำถามในโมเดลเดียว
  4. V = ZGZ′ + R: สมการเดียวที่อยู่เบื้องหลัง mixed model ทุกตัว
  5. Random Slope: เมื่อแต่ละคนพก "เส้นทาง" ของตัวเองมาด้วย
  6. เมื่อ Compound Symmetry ไม่จริง: variance ไม่เท่ากัน, unstructured correlation และเพดาน identifiability
  7. ทางเลือกแบบ Population-Averaged: GLS, GEE และจุดที่โชคของ linear model หมดลง
  8. SE เท่ากันสี่ค่า: วิธีปกป้อง mixed model ต่อหน้าอาจารย์
0
ถึงนักอ่านชาวไทยและต่างชาติทำความเข้าใจบริบททางการแพทย์ของผมอ่านต่อ →ถึงนักอ่านชาวไทยและต่างชาติทำความเข้าใจเนื้อหาของผมที่นอกเหนือจากการแพทย์อ่านต่อ →

ความคิดเห็น

ยังไม่มีความคิดเห็น มาเป็นคนแรกกันเลย

เข้าสู่ระบบเพื่อแสดงความคิดเห็น