Marginal vs Conditional Models: Repeated measures is a subset of Correlation

Clinical Epidemiology ResearchUniqcret doctor knowledgesData Analytics or StatisticsStata [Data Analytics]Methodology and Research Design
Marginal vs Conditional Models: Repeated measures is a subset of Correlation
On this page

🧠 บริบทของปัญหา: ข้อมูลแบบ "วัดซ้ำ" หรือ "สัมพันธ์กัน"

ข้อมูลที่เรามักเจอในงานวิจัยคลินิกมีลักษณะ ไม่เป็นอิสระ (non-independent) เช่น:

  • คนไข้คนเดียววัด FBS หลายครั้ง
  • คนไข้ที่อยู่ในโรงพยาบาลเดียวกัน
  • วัดค่าซ้าย-ขวาของตา หรือหู
  • เด็กในห้องเรียนเดียวกัน

ถ้าใช้สถิติทั่วไป (Naïve model) ที่ สมมุติว่าแต่ละข้อมูลเป็นอิสระ ผลจะ ผิด ทันที (เช่น SE ต่ำไป สูงไป, 95% Ci ผิด, p-value ผิด)

📌 เป้าหมายของโมเดล: รับมือกับ "correlation"

เราต้องเลือกว่าจะวิเคราะห์ด้วย:

  1. Marginal model → คำนวณค่าเฉลี่ยของทั้งกลุ่ม (Population-Averaged)
  2. Conditional model → สนใจแต่ละรายหรือกลุ่ม (Subject-Specific)

ดูแผนภาพด้านล่าง:

Markmap

🔹 ครึ่งบน: Marginal Model (โมเดลค่าเฉลี่ยประชากร)

📍 คำอธิบาย

  • เป็น โมเดลชั้นเดียว (Single-level) ไม่สนว่าใครเป็นใคร
  • คิดแบบ “ทุกคนรวมกัน เฉลี่ยว่าเกิดอะไรขึ้น”
  • ไม่สร้างตัวแปรเฉพาะคนไข้

🔧 วิธีจัดการความสัมพันธ์ในข้อมูล

แบ่งเป็น 2 แบบตามการคำนวณ ความแปรปรวน (Variance):

ประเภทวิธีคิดจุดเด่น
Empirical-basedใช้ข้อมูลจริงมาคำนวณ SE (เรียก robust SE หรือ sandwich estimator)ไม่ต้องเดาว่าความสัมพันธ์เป็นแบบไหน
Model-based varianceสมมุติว่าโครงสร้างความสัมพันธ์เป็นแบบหนึ่ง เช่น AR(1), exchangeableแม่นยำกว่าเมื่อสมมุติถูกรูปแบบ

✅ ใช้ใน GEE (Generalized Estimating Equations)


🔸 ครึ่งล่าง: Conditional Model (โมเดลเฉพาะราย/กลุ่ม) 📍 คำอธิบาย

  • เป็น โมเดลหลายชั้น (Multilevel model) หรือ Hierarchical model
  • คิดว่า “คนไข้แต่ละคนเริ่มต้นไม่เหมือนกัน” → ใส่ความแปรปรวนระดับกลุ่มเข้าไป
  • เหมาะกับข้อมูลที่มี คลัสเตอร์ เช่น คนไข้ในแพทย์ต่างคน, โรงพยาบาลต่างกัน

🔧 มี 2 ทางเลือก:

ประเภทรายละเอียดใช้เมื่อ
Fixed effectใส่ตัวแปร "ชื่อกลุ่ม" เช่น แพทย์ A, B, Cถ้ากลุ่มมีน้อย
Random effectไม่ใส่ชื่อกลุ่ม แต่บอกให้โมเดล "เรียนรู้ว่ากลุ่มต่างกันแค่ไหน"ถ้ากลุ่มมีจำนวนมาก

✅ ใช้ใน Mixed-effects model เช่นใน Stata: ใช้คำสั่ง mixed WSSMAXaorta i.section##i.group_bin sex Age || id:


📊 คำทับศัพท์ที่ควรรู้:

ศัพท์ความหมาย
Random interceptจุดเริ่มต้นเฉพาะของแต่ละกลุ่ม (baseline ต่างกัน) จุดตัดแกน Y
Random slopeความชันของแนวโน้มต่างกันในแต่ละกลุ่ม
Fixed effectใส่ชื่อกลุ่มชัด ๆ ลงในโมเดล
Marginal modelโมเดลที่คิดเฉลี่ยภาพรวมของทุกคน
Conditional modelโมเดลที่แยกเฉพาะกลุ่ม/รายบุคคล
GEEวิธีวิเคราะห์แบบ Marginal model โดยใช้ correlation
Mixed-effect modelวิธีวิเคราะห์แบบ Conditional model โดยใช้ random effect

Random intercept ทุกตัวมี model ของตัวเอง แต่ ความชันเท่า

Random intercept with Random slope ทุกตัวมี model ของตัวเอง และ ความชันต่าง

Fixed effect เอา Random intercept with Random slope แต่ละคนมาคิดเลย


📊 ลำดับโมเดลวิเคราะห์ข้อมูลวัดซ้ำ: ดีที่สุด → ถอยตามข้อมูล

อันดับโมเดลคำอธิบาย
🥇 1Conditional Model — Multi-level — Random Effectโมเดลเฉพาะราย รองรับผลแตกต่างทั้ง intercept และ slope
🥈 2Conditional Model — Multi-level — Fixed Effectเฉพาะกลุ่มที่มีในข้อมูล ใช้ dummy ไม่สามารถทำนายกลุ่มใหม่
🥉 3Marginal Model — Single-level — Model-Based Varianceค่าเฉลี่ยประชากร สมมุติโครงสร้างความสัมพันธ์
🪙 4Marginal Model — Single-level — Empirical (Robust SE)ใช้ sandwich SE ไม่ต้องสมมุติโครงสร้างใดๆ


Conditional Model = “Subject-Specific”

  • เราไม่ได้สนใจแค่ “คนโดยเฉลี่ย”
  • แต่เราบอกว่า: “คนแต่ละคนไม่เหมือนกัน”
  • จึงต้อง model intercepts and/or slope เฉพาะราย

➡️ เพื่อให้ทำเช่นนี้ได้ เราต้อง มีหลายระดับ (Multi-level) ที่ซ้อนอยู่ในข้อมูล

Multi-level

แนวทางระบุ Cluster หลัก vs ย่อย (Nested Structure)

ถ้ามีหลายระดับ เช่น:ตาซ้าย-ขวา ในแต่ละช่วง follow-up ของแต่ละคน

ให้ดูตามนี้:

ระดับ 1 (หลัก): คน (id)
ระดับ 2: ดวงตา (eye)
ระดับ 3: เวลา (visit/month)

→ Stata syntax:

mixed outcome predictors || id: || eye: || month:

หรือถ้า "eye" เป็น within-subject factor (ไม่ใช่คลัสเตอร์), ก็จัดแบบนี้:

mixed outcome i.eye i.month || id:

📌 Tips: ระบุ Cluster

ลักษณะข้อมูลCluster คืออะไร?Model อย่างไร?
วัดซ้ำในคนเดิมคน`mixed y x
วัดตาซ้าย-ขวาคน (eye = within factor)`mixed y i.eye
คนในโรงพยาบาลรพ. > คน`mixed y x
คนในหลายแพทย์แพทย์ > คน`mixed y x
คนก่อน-หลัง COVIDคน (time = covariate)`mixed y i.period

🥇 1. Conditional Model — Random Effects (Mixed-Effects Model)

  • ใช้:mixed outcome predictors || id:
  • รองรับ: • Random intercept • Random slope • Nested/complex structure
  • เหมาะเมื่อ: • มี ID / cluster • กลุ่ม ≥ 5 • สนใจการพยากรณ์เฉพาะรายบุคคล
  • ❌ ถอยเมื่อ: • กลุ่มน้อย • ข้อมูลไม่พอ estimate slope • โมเดลไม่ converge

🥈 2. Conditional Model — Fixed Effects

  • ใช้:xtreg outcome predictors, fe reg outcome i.group
  • เหมาะเมื่อ: • กลุ่มน้อย • ต้องการควบคุมเฉพาะกลุ่มในข้อมูล
  • ❌ ถอยเมื่อ: • ไม่มี ID / cluster • ต้องการผลแบบ population-average

"Mixed" = Fixed + Random

mixed = fixed effects + random effects

📌 ส่วนที่ “Fixed” = ตัวแปรทั่วไป (predictors)

เหมือนใช้ใน regress, xtreg, เช่น:

  • เพศ
  • อายุ
  • ชนิดยา
  • เวลา

📌 ส่วนที่ “Random” = ความแปรปรวนของกลุ่ม (cluster-specific variation)

  • intercept/slope ที่แตกต่างกันในแต่ละ ID
  • nested structure: คนในรพ., เด็กในห้องเรียน, ข้อมูลวัดซ้ำในคนเดียวกัน

📘 ตัวอย่างสมการเบื้องหลัง mixed

สมมุติ: วัด HbA1c หลายครั้งในแต่ละคน

HbA1c_ij = β0 + β1*time_ij + u0j + ε_ij
  • β0, β1 = Fixed effects
  • u0j = Random intercept (แต่ละคน j เริ่มต้นต่างกัน)
  • ε_ij = residual error

→ ใน Stata:

mixed HbA1c i.time || id:

🧪 สาระสำคัญของ mixed

Featureอธิบาย
“Fixed effect”ใช้ตีความทั่วไป (e.g. ยาลด HbA1c)
“Random effect”สะท้อน variation เฉพาะบุคคล/กลุ่ม
ใช้กับ data ซ้ำในคน✔️ รองรับ repeat/reclustered
Prediction เฉพาะคน✔️ ได้ curve รายคน

Marginal Model

เพราะ Marginal Model สนใจ “ผลรวมเฉลี่ย” ของประชากร → ไม่ model กลุ่ม/บุคคล→ จึงไม่ต้อง (และไม่สามารถ) แยกชั้นข้อมูล → ไม่มีโครงสร้าง multilevel

Single-level

📌 Correlation ไม่จำเป็นต้อง Multilevel

🔹 Multilevel = มีชั้น (e.g. รพ. > คน)

  • ใช้ mixed … || hospital: || id:
  • มี structure hierarchy ชัดเจน

🔸 Single-level ก็มี correlation ได้ ถ้า…

  • มี ข้อมูลซ้ำในกลุ่มเดียวกัน เช่น:
    • ตาซ้าย-ขวา → ซ้ำในคน
    • เด็กในห้องเรียนเดียวกัน
    • หลายคนจากคลินิกเดียวกัน
  • ใช้ xtgee … i(cluster), corr(...)

🥉 3. Marginal Model — Model-Based Variance (GEE with correlation)

🎯 เป้าหมาย

  • วิเคราะห์ ผลเฉลี่ยของประชากร (Population-Averaged)
  • สนใจว่า “ในภาพรวม ทุกคนตอบสนองต่อ X อย่างไร”

📦 วิธีคิด

  • Model สมมุติว่า: ข้อมูลมีการวัดซ้ำ → เกิด correlation
  • แต่ ไม่ได้ model แบบ subject-specific (ไม่มี uⱼ เหมือนใน mixed)
  • ใช้ correlation matrix เพื่อระบุว่าข้อมูลใน subject เดียวกันมีความสัมพันธ์กันแค่ไหน

🧩 ต้องระบุ correlation structure (working correlation)

corr()ความหมายเหมาะเมื่อ...
indไม่มีความสัมพันธ์เลย (ρ = 0)❌ ห้ามใช้ถ้าเป็น repeated measures
exchangeableทุกคู่สัมพันธ์เท่ากันเวลาห่างกันไม่เท่ากัน หรือซ้ำไม่เยอะ
ar1ความสัมพันธ์ลดตามเวลา (ρ^lag)เวลาห่างเท่ากัน เช่น 0,3,6 เดือน
sta1มีเฉพาะ lag 1 (neighbor เท่านั้น)ข้อมูลถี่ เช่น hourly
unsไม่สมมุติอะไรเลยN ใหญ่ + วัดหลายรอบ (≥6)

🧪 Clinical Use Case:

ตัวอย่างcorr() ที่ควรใช้
HbA1c วัดทุก 3 เดือนar1
BP วัด admit, discharge, f/uexchangeable
CRP วัดรายวันsta1
Biomarker ทุกสัปดาห์ 8 ครั้งuns

❌ ข้อจำกัด:

  • ถ้า เลือก structure ผิด → SE จะผิด → p-value ไม่แม่น
  • ถ้า กลุ่มน้อย → การประมาณ correlation จะไม่นิ่ง

🔴 corr(independent)

สมมุติว่าไม่มีความสัมพันธ์เลย (ρ = 0)

 T1T2T3T4T5
T11.000.000.000.000.00
T20.001.000.000.000.00
T30.000.001.000.000.00
T40.000.000.001.000.00
T50.000.000.000.001.00

🟢 corr(exchangeable)

สมมุติว่า ทุกคู่สัมพันธ์เท่ากัน (ρ = 0.80)

 T1T2T3T4T5
T11.000.800.800.800.80
T20.801.000.800.800.80
T30.800.801.000.800.80
T40.800.800.801.000.80
T50.800.800.800.801.00

🟡 corr(ar1)

ความสัมพันธ์ลดลงตามระยะเวลา (ρ = 0.90)

 T1T2T3T4T5
T11.000.900.810.730.66
T20.901.000.900.810.73
T30.810.901.000.900.81
T40.730.810.901.000.90
T50.660.730.810.901.00

🔵 corr(sta1)

ความสัมพันธ์เฉพาะระยะติดกัน (lag 1), ρ = 0.80

 T1T2T3T4T5
T11.000.800.000.000.00
T20.801.000.800.000.00
T30.000.801.000.800.00
T40.000.000.801.000.80
T50.000.000.000.801.00

🟣 corr(uns)

ไม่สมมุติใด ๆ → ให้แต่ละค่ามี correlation ของตัวเอง

 T1T2T3T4T5
T11.000.860.740.550.33
T20.861.000.710.490.40
T30.740.711.000.690.50
T40.550.490.691.000.66
T50.330.400.500.661.00

🪙 4. Marginal Model — Empirical (Robust SE)

🎯 เป้าหมาย

  • ปรับ SE ให้ ถูกต้องแม้ model correlation ผิด
  • ตีความแบบ population-average เช่นเดียวกับ GEE ปกติ

📦 วิธีคิด

xtgee y x1 x2, corr(anything) vce(robust)
  • vce(robust) = ใช้ sandwich estimator แทนการพึ่ง working correlation
  • จะ ignore structure ในการหา SE → ใช้ข้อมูลจริงเป็นหลัก

✅ ข้อดี:

  • แม้คุณสมมุติว่า correlation เป็น exchangeable หรือ ar1
  • ถ้า model ผิด → SE ยังคง robust ถูกต้อง

🔐 เหมาะกับ:

  • ข้อมูลไม่สมบูรณ์ (missing visit, spacing ไม่เท่ากัน)
  • กลุ่มน้อย
  • ไม่มั่นใจว่าโครงสร้าง correlation แบบไหน
  • ต้องการ safe fallback ที่ไม่ overstate ความแม่นยำ

🧪 Clinical Use Case:

สถานการณ์ทำไมต้องใช้ vce(robust)?
Visit 0, 3, 9 เดือน (uneven time)ar1 ใช้ไม่ได้ → ต้อง robust
มีคนไข้แค่ 15 คนSE จาก exchangeable จะไม่นิ่ง
ไม่รู้ว่า time spacing สม่ำเสมอไหมStructure uncertain → robust ปลอดภัยสุด

🧭 Marginal Model Decision Tree

START →
→ มีข้อมูลวัดซ้ำหรือกลุ่มที่สัมพันธ์กัน? →
   → ไม่ → regress ปกติ
   → ใช่ →
     → สนใจภาพรวมกลุ่ม (population-avg)? →
         → ใช่ →
             → รู้ structure? →
                 → ใช่ → GEE model-based (xtgee, corr(ar1/exch))
                 → ไม่แน่ใจ → GEE robust (xtgee, vce(robust))
         → ไม่สนใจภาพรวม → ใช้ conditional model (mixed)

✅ หลักการ: Model-Based SE > Empirical SE

  • ถ้าคุณ ระบุ corr() ได้ถูกต้องจริง (เช่น ar1 กับข้อมูล 0-3-6 เดือน)
  • GEE Model-Based จะให้ SE ที่มี efficiency สูงกว่า
  • → แปลว่า พลังทางสถิติดีกว่า (statistical power ↑)

📈 นี่คือเหตุผลที่ textbook บอกว่า Model-based “preferred when structure known”

❌ แต่ในโลกจริง: Structure มัก “ไม่รู้แน่ชัด” → Empirical ในตารางล่างเลยดูดีกว่า 📊 เปรียบเทียบสุดท้าย: GEE แบบ Model-based vs Empirical

FeatureModel-Based (GEE)Empirical (Robust SE)
ต้องกำหนด corr()?✔️ ใช่❌ ไม่จำเป็น
ถ้า structure ผิด → SE ผิดไหม?❌ ใช่✅ SE ยังถูกต้อง
เหมาะกับข้อมูลกลุ่มน้อย?❌ ไม่เหมาะ✅ เหมาะมาก
ใช้ sandwich SE?❌ ไม่ใช้✅ ใช้
เหมาะกับภาพรวมประชากร?✅ ใช่✅ ใช่
ตัวอย่างใน Stataxtgee y x, corr(ar1)xtgee y x, vce(robust)

0
Message for International and Thai ReadersUnderstanding My Medical Context in ThailandRead more →Message for International and Thai ReadersUnderstanding My Broader Content Beyond MedicineRead more →

Comments

No comments yet. Be the first to share your thoughts.

Sign in to comment

Marginal vs Conditional Models: Repeated measures is a subset of Correlation — Uniqcret