IPTW แบบ stabilized หรือ unstabilized: สมดุลเท่ากันใน pseudo-population 200 คน หรือ 100 คน

On this page
Read the English version
บทคัดย่อ
การถ่วงน้ำหนักด้วยส่วนกลับของความน่าจะเป็นในการได้รับการรักษา (inverse probability of treatment weighting, IPTW) ให้น้ำหนักผู้ป่วยแต่ละคนเท่ากับหนึ่งหารด้วยความน่าจะเป็นของการรักษาที่ได้รับ เมื่อกำหนดลักษณะที่วัดไว้ น้ำหนักแบบไม่ปรับเสถียร (unstabilised weight) สำหรับผลเฉลี่ยของการรักษาในประชากรทั้งหมด (average treatment effect, ATE) สร้างประชากรที่ถ่วงน้ำหนักแล้ว หรือประชากรเสมือน (pseudo-population) ที่มีขนาดประมาณสองเท่าของขนาดตัวอย่าง การทำ stabilization คูณน้ำหนักทุกตัวในกลุ่มการรักษาด้วยสัดส่วนผู้ป่วยของกลุ่มนั้น ผลรวมจึงมีค่าประมาณขนาดตัวอย่าง ในตัวอย่างคำนวณด้วยมือที่มีผู้ป่วย 100 คนซึ่งการรักษาขึ้นกับความรุนแรงของโรค น้ำหนักแบบไม่ปรับเสถียรสร้างประชากรเสมือน 200 คน และน้ำหนักแบบปรับเสถียรสร้าง 100 คน ไม่ว่าแบบใด 50% ของแต่ละกลุ่มมีความรุนแรงสูง เทียบกับ 57.1% ของกลุ่มที่ได้รับการรักษาและ 33.3% ของกลุ่มที่ไม่ได้รับก่อนถ่วงน้ำหนัก เพราะตัวคูณนั้นคงที่ภายในกลุ่ม สมดุลจึงเปลี่ยนไม่ได้ สำหรับการรักษาแบบสองค่า เมื่อความเสี่ยงของแต่ละกลุ่มเป็นค่าเฉลี่ยถ่วงน้ำหนักที่หารด้วยผลรวมน้ำหนัก (normalised weighted mean) และน้ำหนักไม่ถูกตัดปลายหรือเปลี่ยนแปลงด้วยวิธีอื่น ความเสี่ยงที่ถ่วงน้ำหนักแล้วและผลต่างของความเสี่ยงจะเท่ากันทุกประการ บทความนี้คำนวณด้วยมือ ตรวจซ้ำในข้อมูลจำลอง และสรุปสิ่งที่ควรรายงาน
ตารางถ่วงน้ำหนักที่มีผู้ป่วย 200 คน
นักวิเคราะห์ของทะเบียนผู้ป่วยแห่งหนึ่งนำเสนอการวิเคราะห์ถ่วงน้ำหนักของการรักษาที่ผู้ป่วยบางส่วนจาก 100 คนได้รับ โดยปรับด้วยความรุนแรงของโรค ผู้ทบทวนหยุดที่ตารางลักษณะพื้นฐานแบบถ่วงน้ำหนัก ซึ่งแสดงผู้ป่วย 200 คน ทั้งที่ทะเบียนมีผู้ป่วย 100 คน มีผู้ป่วยถูกนับซ้ำหรือไม่ ทะเบียนนี้เป็นของสมมติ และจำนวนผู้ป่วยของมันคือตัวอย่างคำนวณด้วยมือด้านล่าง
เพื่อนร่วมงานเสนอให้ใช้น้ำหนักแบบปรับเสถียร "เพื่อแก้จำนวน" ทีมอยากทราบว่าวิธีนั้นเปลี่ยนการปรับตัวกวนจริง หรือเปลี่ยนเพียงการนับ บทความนี้คำนวณคำตอบบนกระดาษ แล้วทำซ้ำในข้อมูลจำลองด้วย Stata และ R
ตัวอย่างคำนวณด้วยมือ: ผู้ป่วย 100 คน และความรุนแรงสองระดับ
ตัวอย่างคำนวณด้วยมือ ผู้ป่วย 100 คนแบ่งเป็นความรุนแรงของโรคสูง 50 คนและต่ำ 50 คน ซึ่งบันทึกก่อนการรักษา แพทย์ให้การรักษาผู้ป่วยความรุนแรงสูง 40 จาก 50 คน และผู้ป่วยความรุนแรงต่ำ 30 จาก 50 คน จึงมีผู้ได้รับการรักษา 70 คนและไม่ได้รับ 30 คน ความรุนแรงยังส่งผลต่อผลลัพธ์ด้วย จึงเป็นตัวกวนของการเปรียบเทียบดิบระหว่างสองกลุ่ม
ในที่นี้ $X$ คือความรุนแรง และคะแนนแนวโน้มคือสัดส่วนผู้ได้รับการรักษาในแต่ละระดับ คือ $e = 40/50 = 0.80$ สำหรับความรุนแรงสูง และ $e = 30/50 = 0.60$ สำหรับความรุนแรงต่ำ ก่อนถ่วงน้ำหนัก ผู้ได้รับการรักษา 70 คนมีความรุนแรงสูง 40 คน (57.1%) เทียบกับผู้ไม่ได้รับ 30 คนที่มีความรุนแรงสูง 10 คน (33.3%) กลุ่มที่ได้รับการรักษาป่วยหนักกว่า และนั่นคือความไม่สมดุลที่น้ำหนักต้องขจัด
ตัวอย่างคำนวณด้วยมือ: น้ำหนักแบบไม่ปรับเสถียร ประชากรเสมือน 200 คน
ตัวอย่างคำนวณด้วยมือ ต่อจากข้างต้น น้ำหนักแบบไม่ปรับเสถียร (unstabilised weight) คือหนึ่งหารด้วยความน่าจะเป็นของการรักษาที่ผู้ป่วยได้รับจริง ได้แก่ $w = 1/e$ ถ้าได้รับการรักษา และ $w = 1/(1 - e)$ ถ้าไม่ได้รับ ความน่าจะเป็นที่จะไม่ได้รับการรักษาคือ $1 - e = 0.20$ สำหรับความรุนแรงสูง และ $0.40$ สำหรับความรุนแรงต่ำ ขนาดของประชากรเสมือน (pseudo-population size) คือผลรวมของน้ำหนักทั้งหมด
-
ความรุนแรงสูง ได้รับการรักษา: 40 คน
\[ 40 \times \frac{1}{0.80} = 40 \times 1.25 = 50 \]
ผู้ป่วยความรุนแรงสูงที่ได้รับการรักษา 40 คนเป็นตัวแทนของผู้ป่วยความรุนแรงสูงทั้ง 50 คน
-
ความรุนแรงสูง ไม่ได้รับการรักษา: 10 คน
\[ 10 \times \frac{1}{0.20} = 10 \times 5.00 = 50 \]
ผู้ป่วยความรุนแรงสูงที่ไม่ได้รับการรักษามีเพียง 10 คน จึงนับคนละ 5.00
-
ความรุนแรงต่ำ ได้รับการรักษา: 30 คน
\[ \frac{30}{0.60} = 50 \]
น้ำหนักคือ $1/0.60 = 1.667$ เมื่อปัดเศษ ส่วนการหารโดยตรงให้ 50 พอดี
-
ความรุนแรงต่ำ ไม่ได้รับการรักษา: 20 คน
\[ 20 \times \frac{1}{0.40} = 20 \times 2.50 = 50 \]
ผู้ป่วยความรุนแรงต่ำที่ไม่ได้รับการรักษาแต่ละคนนับเป็น 2.50
-
ผลรวมของแต่ละกลุ่มและขนาดของประชากรเสมือน
\[ 100 + 100 = 200 \]
แต่ละกลุ่มมีผู้ป่วยถ่วงน้ำหนัก 50 + 50 = 100 คน น้ำหนักของผู้ป่วย 100 คนจึงรวมเป็น 200
ผลลัพธ์: แต่ละกลุ่มกลายเป็นสำเนาของตัวอย่างทั้งหมด มีความรุนแรงสูง 50% และประชากรเสมือนรวมเป็น 200 ไม่มีผู้ป่วยคนใดถูกนับซ้ำ น้ำหนักแต่ละตัวคือจำนวนผู้ป่วยที่ผู้ป่วยคนนั้นเป็นตัวแทน
ตัวอย่างคำนวณด้วยมือ: น้ำหนักแบบปรับเสถียร ประชากรเสมือน 100 คน
ตัวอย่างคำนวณด้วยมือ ต่อจากข้างต้น สัดส่วนผู้ได้รับการรักษาในภาพรวม (marginal probability of treatment) คือสัดส่วนของผู้ป่วยทั้งหมดที่ได้รับการรักษาแต่ละแบบ ได้แก่ $P(A = 1) = 70/100 = 0.70$ และ $P(A = 0) = 0.30$ น้ำหนักแบบปรับเสถียร (stabilised weight) ใส่สัดส่วนนั้นไว้ที่ตัวตั้งแทน 1 [1, 2]:
$$sw_i = \frac{P(A = a_i)}{P(A = a_i \mid X_i)}$$ในสูตรนี้ $a_i$ คือการรักษาที่ผู้ป่วยคนที่ $i$ ได้รับ และ $X_i$ คือความรุนแรงของผู้ป่วยคนนั้น ผู้ได้รับการรักษาจึงมีน้ำหนัก $0.70/e$ และผู้ไม่ได้รับมีน้ำหนัก $0.30/(1 - e)$
-
ความรุนแรงสูง ได้รับการรักษา: 40 คน
\[ 40 \times \frac{0.70}{0.80} = 40 \times 0.875 = 35 \]
ผู้ป่วยความรุนแรงสูงที่ได้รับการรักษาแต่ละคนนับเป็น 0.875
-
ความรุนแรงสูง ไม่ได้รับการรักษา: 10 คน
\[ 10 \times \frac{0.30}{0.20} = 10 \times 1.500 = 15 \]
ผู้ป่วยความรุนแรงสูงที่ไม่ได้รับการรักษาแต่ละคนนับเป็น 1.500
-
ความรุนแรงต่ำ ได้รับการรักษา: 30 คน
\[ 0.70 \times \frac{30}{0.60} = 0.70 \times 50 = 35 \]
น้ำหนักคือ $0.70/0.60 = 1.167$ เมื่อปัดเศษ ส่วนผลรวมของกลุ่มย่อยนี้เท่ากับ 0.70 เท่าของผลรวมแบบไม่ปรับเสถียร
-
ความรุนแรงต่ำ ไม่ได้รับการรักษา: 20 คน
\[ 20 \times \frac{0.30}{0.40} = 20 \times 0.750 = 15 \]
ผู้ป่วยความรุนแรงต่ำที่ไม่ได้รับการรักษาแต่ละคนนับเป็น 0.750
-
ผลรวมของแต่ละกลุ่มและขนาดของประชากรเสมือน
\[ 70 + 30 = 100 \]
กลุ่มที่ได้รับการรักษามีผู้ป่วยถ่วงน้ำหนัก 35 + 35 = 70 คน และกลุ่มที่ไม่ได้รับมี 15 + 15 = 30 คน ซึ่งเท่ากับขนาดจริงของสองกลุ่ม
ผลลัพธ์: น้ำหนักแบบปรับเสถียรคงขนาดของแต่ละกลุ่มไว้ที่ขนาดจริง และคงประชากรเสมือนไว้ที่ 100 ทั้งสองกลุ่มยังมีความรุนแรงสูง 50% คือ 35 จาก 70 และ 15 จาก 30
| กลุ่มย่อยหรือกลุ่มการรักษา | ผู้ป่วย (คน) | น้ำหนัก w | ผู้ป่วยถ่วงน้ำหนัก, w | น้ำหนัก sw | ผู้ป่วยถ่วงน้ำหนัก, sw |
|---|---|---|---|---|---|
| ความรุนแรงสูง ได้รับการรักษา | 40 | 1.25 | 50 | 0.875 | 35 |
| ความรุนแรงสูง ไม่ได้รับการรักษา | 10 | 5.00 | 50 | 1.500 | 15 |
| ความรุนแรงต่ำ ได้รับการรักษา | 30 | 1.667 | 50 | 1.167 | 35 |
| ความรุนแรงต่ำ ไม่ได้รับการรักษา | 20 | 2.50 | 50 | 0.750 | 15 |
| กลุ่มที่ได้รับการรักษา | 70 | 100 | 70 | ||
| กลุ่มที่ไม่ได้รับการรักษา | 30 | 100 | 30 | ||
| ผู้ป่วยทั้งหมด | 100 | 200 | 100 |
ทำไมการทำ stabilization จึงเปลี่ยนสมดุลไม่ได้
เปรียบเทียบน้ำหนักสองตัวภายในกลุ่มเดียวกัน ในกลุ่มที่ไม่ได้รับการรักษา ผู้ป่วยความรุนแรงสูงมีน้ำหนักมากกว่าผู้ป่วยความรุนแรงต่ำเป็นตัวคูณเท่ากันในการถ่วงน้ำหนักทั้งสองแบบ คือ $5/2.5 = 2$ และ $1.5/0.75 = 2$ ในกลุ่มที่ได้รับการรักษาก็เป็นเช่นเดียวกัน
เหตุผลอยู่ที่นิยาม คือ stabilization คูณน้ำหนักทุกตัวในกลุ่มการรักษาเดียวกันด้วยค่าคงที่ค่าเดียว ได้แก่ 0.70 สำหรับกลุ่มที่ได้รับการรักษา และ 0.30 สำหรับกลุ่มที่ไม่ได้รับ สัดส่วนที่คำนวณภายในกลุ่ม เช่นสัดส่วนความรุนแรงสูง มีน้ำหนักของกลุ่มนั้นทั้งที่ตัวตั้งและตัวหาร ค่าคงที่จึงหักล้างกัน สมดุลคือการเปรียบเทียบสัดส่วนเช่นนี้ระหว่างกลุ่ม จึงอยู่ที่เดิมตามที่น้ำหนักแบบไม่ปรับเสถียรทำไว้
การรักษาในที่นี้ตัดสินครั้งเดียว จึงเป็นการวิเคราะห์การรักษา ณ จุดเวลาเดียว (point-treatment analysis) ส่วนแบบจำลองโครงสร้างระดับประชากร (marginal structural model) ใช้กับการรักษาที่เปลี่ยนไปตามเวลา โดยมีน้ำหนักทุกจุดเวลาที่คูณสะสมกัน กล่องด้านล่างระบุว่า stabilization หมายถึงอะไรสำหรับน้ำหนักที่สูงผิดปกติ สำหรับการกำหนดเพดานให้น้ำหนัก (truncation) และสำหรับการตัดผู้ป่วยออก (trimming) ตอนว่าด้วยน้ำหนักที่สูงผิดปกติของชุดบทความนี้อธิบายทั้งสามอย่างโดยละเอียด
ผลเดียวกันจากกฎของความน่าจะเป็น
การคำนวณด้วยมือข้างต้นมาจากกฎของความน่าจะเป็นข้อเดียว สำหรับระดับความรุนแรง $X$ และการรักษา $a$ ความน่าจะเป็นร่วมแยกตัวประกอบได้ดังนี้:
$$P(X, A = a) = P(A = a \mid X)\,P(X)$$ในสูตรนี้ $P(X)$ คือสัดส่วนของตัวอย่างทั้งหมดที่มีความรุนแรงระดับนั้น และ $P(A = a \mid X)$ คือความน่าจะเป็นของการรักษา $a$ ที่ความรุนแรงระดับนั้น จำนวนผู้ป่วยที่ความรุนแรง $X$ ในกลุ่ม $a$ เป็นสัดส่วนกับ $P(X, A = a)$ ซึ่งยังมีการพึ่งพาของการรักษาต่อความรุนแรงอยู่ น้ำหนักแบบไม่ปรับเสถียรหารความน่าจะเป็นนั้นออก:
$$\frac{P(X, A = a)}{P(A = a \mid X)} = P(X)$$แต่ละกลุ่มจึงเป็นไปตาม $P(X)$ คือสัดส่วนความรุนแรงของตัวอย่างทั้งหมด การรักษาจึงไม่ขึ้นกับความรุนแรงอีกต่อไป น้ำหนักแบบปรับเสถียรหารด้วยความน่าจะเป็นเดียวกัน และคูณด้วย $P(A = a)$ ด้วย:
$$\frac{P(X, A = a)\,P(A = a)}{P(A = a \mid X)}$$การหักล้างแบบเดียวกันเหลือ $P(A = a)\,P(X)$ คือสัดส่วนความรุนแรงเป็น $P(X)$ อีกครั้ง คูณด้วยค่าคงที่ที่กำหนดเพียงขนาดของกลุ่ม $a$ ในตัวอย่างคำนวณด้วยมือ ค่าคงที่นั้นเปลี่ยนสองกลุ่มขนาด 100 ให้เป็นกลุ่มขนาด 70 และ 30 ผลทั้งสองนี้เกี่ยวกับตัวแปรร่วมที่วัดไว้เท่านั้น และต้องมีแบบจำลองคะแนนแนวโน้มที่ถูกต้อง รวมทั้งโอกาสจริงที่ผู้ป่วยทุกคนจะได้รับการรักษาแต่ละแบบ การเปรียบเทียบที่ถ่วงน้ำหนักแล้วประมาณ ATE ได้ก็ต่อเมื่อตัวแปรร่วมเหล่านั้นครอบคลุมตัวกวนทุกตัว [3]
สิ่งที่เหมือนกันและสิ่งที่ต่างได้
โดยทั่วไป ผลรวมเป็นค่าคาดหมาย ไม่ใช่จำนวนที่แน่นอน น้ำหนัก ATE แบบไม่ปรับเสถียรรวมกันได้ประมาณสองเท่าของขนาดตัวอย่าง และน้ำหนักแบบปรับเสถียรได้ประมาณขนาดตัวอย่าง [3] ตัวอย่างคำนวณด้วยมือได้ 200 และ 100 พอดี เพราะคะแนนแต่ละค่าเท่ากับสัดส่วนผู้ได้รับการรักษาที่สังเกตได้ในระดับความรุนแรงนั้นเท่านั้น เมื่อมีตัวแปรร่วมต่อเนื่องหรือแบบจำลองคะแนนแนวโน้มที่เรียบกว่า ผลรวมมักอยู่ใกล้ค่าเหล่านั้น ถ้าห่างมากควรตรวจดู
ค่าประมาณจุดไม่ขึ้นกับการเลือกชนิดของน้ำหนัก เมื่อความเสี่ยงของแต่ละกลุ่มเป็นค่าเฉลี่ยถ่วงน้ำหนักที่หารด้วยผลรวมน้ำหนัก (normalised weighted mean) ค่าเฉลี่ยนั้นหารผลรวมของน้ำหนักคูณผลลัพธ์ด้วยผลรวมของน้ำหนัก ตัวคูณคงที่จึงหักล้างกัน ตอนว่าด้วยน้ำหนักที่สูงผิดปกติของชุดบทความนี้ให้สูตรของมันไว้ สำหรับการรักษาแบบสองค่าที่น้ำหนักไม่ถูกตัดปลายหรือเปลี่ยนแปลงด้วยวิธีอื่น การถ่วงน้ำหนักทั้งสองแบบจึงให้ความเสี่ยงที่ถ่วงน้ำหนักแล้ว ผลต่างของความเสี่ยง และอัตราส่วนความเสี่ยงเท่ากัน [3] การกำหนดเพดานเดียวกันกับน้ำหนักทั้งสองชุดจะทำลายสิ่งนี้ เพราะเพดานตัดผู้ป่วยคนละกลุ่มบนสองมาตราส่วน
สิ่งที่ต่างได้คือสิ่งใดก็ตามที่อ่านน้ำหนักเป็นจำนวนนับ ซอฟต์แวร์ที่ถือว่าน้ำหนักเป็นน้ำหนักความถี่ (frequency weight) คือจำนวนผู้ป่วยที่เหมือนกันทุกประการซึ่งแถวนั้นเป็นตัวแทน จะรายงานผู้ป่วย 200 คนสำหรับน้ำหนักแบบไม่ปรับเสถียร ซึ่งก็คือตารางของผู้ทบทวน ค่าคลาดเคลื่อนมาตรฐานที่สร้างจากจำนวนนับเหล่านั้นทำเหมือนสังเกตผู้ป่วย 200 คน จึงเล็กเกินจริง น้ำหนักแบบปรับเสถียรลดปัญหานี้ด้วยการคงขนาดตัวอย่าง [4]
ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิช (robust standard error) อ่านจากการกระจายของข้อมูลที่ถ่วงน้ำหนักแล้ว ไม่ใช่จากจำนวนนับ จึงไม่ขึ้นกับมาตราส่วนของน้ำหนักในกรณีนี้ น้ำหนักแบบปรับเสถียรมักทำให้ช่วงแคบลงเฉพาะเมื่อแบบจำลองผลลัพธ์ที่ถ่วงน้ำหนักไม่เป็นแบบจำลองอิ่มตัว (saturated model) คือมีพารามิเตอร์น้อยกว่าจำนวนการรวมกันของระดับการรักษาและรูปแบบตัวแปรร่วมในแบบจำลองนั้นเอง [3] เส้นตรงที่พาดผ่านการรักษาหลายขนาดยาไม่อิ่มตัว ส่วนแบบจำลองที่มีเฉพาะการรักษา ดังในข้อมูลจำลองด้านล่าง เป็นแบบอิ่มตัวสำหรับการรักษาแบบสองค่า
ข้อมูลจำลอง: ผู้ป่วย 100 คนชุดเดิมพร้อมผลลัพธ์
ชุดข้อมูลจำลองพิมพ์ผู้ป่วย 100 คนชุดเดิม ด้วยจำนวนตามความรุนแรงและการรักษาเท่าเดิม และเพิ่มผลลัพธ์หนึ่งตัวคือการเสียชีวิต ตามที่สร้าง ความรุนแรงเป็นตัวกวนเพียงตัวเดียวในข้อมูลนี้ ภายในแต่ละระดับความรุนแรง ผู้ที่ได้รับการรักษามีความเสี่ยงเสียชีวิตเป็นครึ่งหนึ่ง คือ 0.250 เทียบกับ 0.500 ในผู้ป่วยความรุนแรงสูง และ 0.100 เทียบกับ 0.200 ในผู้ป่วยความรุนแรงต่ำ การเปรียบเทียบดิบผสมความต่างนั้นเข้ากับความรุนแรง คือ 0.186 ในผู้ที่ได้รับการรักษา เทียบกับ 0.300 ในผู้ที่ไม่ได้รับ ผลต่างความเสี่ยงเท่ากับ -0.114
การถดถอยโลจิสติกของการรักษาบนความรุนแรงประมาณคะแนนแนวโน้ม เมื่อมีตัวแปรร่วมสองค่าเพียงตัวเดียว คะแนนที่ได้คือสัดส่วนที่สังเกตได้ คือ 0.80 และ 0.60 น้ำหนักจึงเป็นน้ำหนักเดียวกับตัวอย่างคำนวณด้วยมือ สมดุลสรุปด้วยผลต่างค่าเฉลี่ยมาตรฐาน (standardised mean difference, SMD) คือผลต่างของค่าเฉลี่ยตัวแปรร่วมระหว่างกลุ่มหารด้วยส่วนเบี่ยงเบนมาตรฐานรวม ตอนว่าด้วยสมดุลของชุดบทความนี้อธิบายวิธีอ่านค่านี้
| ปริมาณ | ไม่ถ่วงน้ำหนัก | แบบไม่ปรับเสถียร w | แบบปรับเสถียร sw |
|---|---|---|---|
| กลุ่มที่ได้รับการรักษา ผลรวมของน้ำหนัก (คน) | 70 | 100 | 70 |
| กลุ่มที่ไม่ได้รับการรักษา ผลรวมของน้ำหนัก (คน) | 30 | 100 | 30 |
| ผู้ป่วยทั้งหมด ผลรวมของน้ำหนัก | 100 | 200 | 100 |
| สัดส่วนความรุนแรงสูง กลุ่มที่ได้รับการรักษา | 0.571 | 0.500 | 0.500 |
| สัดส่วนความรุนแรงสูง กลุ่มที่ไม่ได้รับการรักษา | 0.333 | 0.500 | 0.500 |
| SMD ของความรุนแรง | 0.49 | 0.00 | 0.00 |
| ความเสี่ยงเสียชีวิต กลุ่มที่ได้รับการรักษา | 0.186 | 0.175 | 0.175 |
| ความเสี่ยงเสียชีวิต กลุ่มที่ไม่ได้รับการรักษา | 0.300 | 0.350 | 0.350 |
| ผลต่างความเสี่ยง | -0.114 | -0.175 | -0.175 |
| SE แบบอิงจำนวนนับของผลต่างความเสี่ยง | ไม่ได้คำนวณ | 0.061 | 0.098 |
| SE แบบแซนด์วิชของผลต่างความเสี่ยง (ถือว่าน้ำหนักเป็นค่าที่ทราบ) | ไม่ได้คำนวณ | 0.106 | 0.106 |
อ่านผลจากข้อมูลจำลอง
การถ่วงน้ำหนักทั้งสองแบบขจัดความไม่สมดุลของความรุนแรง โดย SMD ลดจาก 0.49 เป็น 0.00 ทั้งสองแบบให้ความเสี่ยงเสียชีวิตที่ถ่วงน้ำหนักแล้วเท่ากับ 0.175 ในกลุ่มที่ได้รับการรักษา เทียบกับ 0.350 ในกลุ่มที่ไม่ได้รับ ผลต่างความเสี่ยง -0.175 คือค่าเฉลี่ยของผลต่างภายในแต่ละระดับ คือ -0.250 และ -0.100 ถ่วงด้วยสัดส่วนความรุนแรงของตัวอย่างทั้งหมด และอัตราส่วนความเสี่ยงเท่ากับ 0.50 เช่นเดียวกับภายในแต่ละระดับ
ผลต่างความเสี่ยงนั้นคือ ATE ซึ่งเป็นผลระดับประชากรสำหรับผู้ป่วยทั้ง 100 คน การอ่านว่าเป็นผลเชิงเหตุผลต้องให้ความรุนแรงเป็นตัวกวนเพียงตัวเดียว ซึ่งเป็นจริงในที่นี้ตามที่สร้างข้อมูล และต้องมีโอกาสที่ผู้ป่วยทุกคนจะได้รับการรักษาแต่ละแบบ รวมทั้งแบบจำลองคะแนนแนวโน้มที่ถูกต้อง [3]
ระหว่างการถ่วงน้ำหนักสองแบบ ค่าคลาดเคลื่อนมาตรฐานต่างกันเฉพาะเมื่ออ่านน้ำหนักเป็นจำนวนนับ คือ 0.061 กับน้ำหนักแบบไม่ปรับเสถียร และ 0.098 กับน้ำหนักแบบปรับเสถียร ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิชเท่ากับ 0.106 ทั้งสองแบบ เพราะแบบจำลองที่มีเฉพาะการรักษาเป็นแบบอิ่มตัว คำสั่ง teffects ipw ของ Stata และ glm_weightit() จากแพ็กเกจ WeightIt ของ R คำนึงถึงการประมาณคะแนนแนวโน้มด้วย และให้ผลต่างความเสี่ยงเท่ากัน คือ -0.175 ค่าคลาดเคลื่อนมาตรฐานของทั้งสองคือ 0.101 โดยช่วงเชื่อมั่น 95% คือ -0.373 ถึง 0.023
ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิชถือว่าน้ำหนักเป็นค่าที่ทราบ สำหรับ ATE จึงใช้ได้ แต่มักจะอนุรักษ์นิยม (conservative) หมายถึงช่วงของมันครอบคลุมค่าจริงมากกว่า 95% ของครั้ง [3] ค่าคลาดเคลื่อนมาตรฐานที่คำนึงถึงคะแนนที่ประมาณได้เล็กลงเล็กน้อยในที่นี้ ตามที่คาด คือ 0.101 เทียบกับ 0.106 ค่า 0.098 แบบอิงจำนวนนับอยู่ใกล้ 0.101 แต่ไม่คำนึงถึงน้ำหนักที่ไม่เท่ากันและคะแนนที่ประมาณได้ จึงไม่มีหลักประกันเช่นนั้น
Stata: แบบจำลองคะแนนแนวโน้มและน้ำหนักทั้งสองแบบ
logit treated high, nolog
predict double ps, pr
quietly summarize treated
scalar sc_pa = r(mean)
canon p_treated 4 scalar(sc_pa)
canon p_untreated 4 1 - scalar(sc_pa)
generate double w = cond(treated == 1, 1/ps, 1/(1 - ps))
generate double sw = cond(treated == 1, scalar(sc_pa)/ps, (1 - scalar(sc_pa))/(1 - ps))
. logit treated high, nolog
Logistic regression Number of obs = 100
LR chi2(1) = 4.83
Prob > chi2 = 0.0279
Log likelihood = -58.670705 Pseudo R2 = 0.0395
------------------------------------------------------------------------------
treated | Coefficient Std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
high | .9808289 .4564354 2.15 0.032 .0862319 1.875426
_cons | .4054651 .2886751 1.40 0.160 -.1603278 .971258
------------------------------------------------------------------------------
. predict double ps, pr
. quietly summarize treated
. scalar sc_pa = r(mean)
. canon p_treated 4 scalar(sc_pa)
CANON a6.p_treated 0.7000
. canon p_untreated 4 1 - scalar(sc_pa)
CANON a6.p_untreated 0.3000
. generate double w = cond(treated == 1, 1/ps, 1/(1 - ps))
. generate double sw = cond(treated == 1, scalar(sc_pa)/ps, (1 - scalar(sc_pa))/(1 - ps))
generate สองบรรทัดสร้าง w และ sw บรรทัดที่ขึ้นต้นด้วย CANON ถูกพิมพ์โดยฟังก์ชันช่วยเล็ก ๆ ในสคริปต์ที่สะท้อนผลแต่ละรายการออกมา ให้อ่านตัวเลขที่ท้ายแต่ละบรรทัดและไม่ต้องสนใจคำนำหน้าR: แบบจำลองคะแนนแนวโน้มและน้ำหนักทั้งสองแบบ
psm <- glm(treated ~ high, family = binomial, data = d)
print(summary(psm)$coefficients)
d$ps <- fitted(psm)
pa <- mean(d$treated)
canon("p_treated", pa)
canon("p_untreated", 1 - pa)
d$w <- ifelse(d$treated == 1, 1 / d$ps, 1 / (1 - d$ps))
d$sw <- ifelse(d$treated == 1, pa / d$ps, (1 - pa) / (1 - d$ps))
print(aggregate(cbind(ps, w, sw) ~ high + treated, data = d, FUN = mean))
> psm <- glm(treated ~ high, family = binomial, data = d)
> print(summary(psm)$coefficients)
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.4054651 0.2886751 1.404572 0.16014849
high 0.9808293 0.4564354 2.148890 0.03164316
> d$ps <- fitted(psm)
> pa <- mean(d$treated)
> canon("p_treated", pa)
CANON a6.p_treated 0.7000
> canon("p_untreated", 1 - pa)
CANON a6.p_untreated 0.3000
> d$w <- ifelse(d$treated == 1, 1/d$ps, 1/(1 - d$ps))
> d$sw <- ifelse(d$treated == 1, pa/d$ps, (1 - pa)/(1 -
+ d$ps))
> print(aggregate(cbind(ps, w, sw) ~ high + treated,
+ data = d, FUN = mean))
high treated ps w sw
1 0 0 0.6 2.500000 0.750000
2 1 0 0.8 5.000000 1.500000
3 0 1 0.6 1.666667 1.166667
4 1 1 0.8 1.250000 0.875000
glm() ปรับแบบจำลองคะแนนแนวโน้ม pa คือ $P(A = 1)$ บรรทัด ifelse() สร้าง w และ sw และตารางสุดท้ายแสดงน้ำหนักเหล่านั้นแยกตามกลุ่มย่อย บรรทัดที่ขึ้นต้นด้วย CANON ถูกพิมพ์โดยฟังก์ชันช่วยเล็ก ๆ ในสคริปต์ที่สะท้อนผลแต่ละรายการออกมา ให้อ่านตัวเลขที่ท้ายแต่ละบรรทัดและไม่ต้องสนใจคำนำหน้าStata: ผลรวมของน้ำหนักแต่ละแบบในแต่ละกลุ่ม
* the arm sums of each weight: the pseudo-population in each arm
tabstat w sw, by(treated) statistics(sum)
. * the arm sums of each weight: the pseudo-population in each arm
. tabstat w sw, by(treated) statistics(sum)
Summary statistics: Sum
Group variable: treated
treated | w sw
---------+--------------------
0 | 99.99998 30
1 | 100 70
---------+--------------------
Total | 200 100
------------------------------
99.99998 เพราะการปรับโลจิสติกของ Stata หยุดสั้นกว่าคะแนนที่แน่นอนคือ 0.80 เล็กน้อย ส่วน R พิมพ์ 100R: ผลรวมของน้ำหนักแต่ละแบบในแต่ละกลุ่ม
# the arm sums of each weight: the pseudo-population in each arm
print(tapply(d$w, d$treated, sum))
print(tapply(d$sw, d$treated, sum))
> print(tapply(d$w, d$treated, sum))
0 1
100 100
> print(tapply(d$sw, d$treated, sum))
0 1
30 70
R: WeightIt เมื่อกำหนด stabilize = TRUE
Ws <- weightit(treated ~ high, data = d, method = "glm", estimand = "ATE", stabilize = TRUE)
print(tapply(Ws$weights, d$treated, sum))
print(all.equal(unname(Ws$weights), d$sw))
> Ws <- weightit(treated ~ high, data = d, method = "glm",
+ estimand = "ATE", stabilize = TRUE)
> print(tapply(Ws$weights, d$treated, sum))
0 1
30 70
> print(all.equal(unname(Ws$weights), d$sw))
[1] TRUE
stabilize = TRUE ฟังก์ชัน weightit() ของแพ็กเกจ WeightIt คืนค่าน้ำหนักที่รวมได้ 30 และ 70 ตามกลุ่ม และ all.equal() ยืนยันว่าเท่ากับ sw ที่สร้างเองStata: teffects ipw เป็นการตรวจซ้ำ
teffects ipw (died) (treated high, logit), ate
. teffects ipw (died) (treated high, logit), ate
Iteration 0: EE criterion = 2.649e-17
Iteration 1: EE criterion = 1.126e-32
Treatment-effects estimation Number of obs = 100
Estimator : inverse-probability weights
Outcome model : weighted mean
Treatment model: logit
------------------------------------------------------------------------------
| Robust
died | Coefficient std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
ATE |
treated |
(1 vs 0) | -.175 .1011342 -1.73 0.084 -.3732194 .0232194
-------------+----------------------------------------------------------------
POmean |
treated |
0 | .35 .0920598 3.80 0.000 .1695662 .5304338
------------------------------------------------------------------------------
R: glm_weightit() เป็นการตรวจซ้ำ
W <- weightit(treated ~ high, data = d, method = "glm", estimand = "ATE")
fw <- glm_weightit(died ~ treated, data = d, weightit = W)
print(cbind(estimate = coef(fw), se = sqrt(diag(vcov(fw)))))
> W <- weightit(treated ~ high, data = d, method = "glm",
+ estimand = "ATE")
> fw <- glm_weightit(died ~ treated, data = d, weightit = W)
> print(cbind(estimate = coef(fw), se = sqrt(diag(vcov(fw)))))
estimate se
(Intercept) 0.350 0.09205976
treated -0.175 0.10113419
weightit() ปรับแบบจำลองโลจิสติกของคะแนนแนวโน้มใหม่โดยไม่ทำ stabilization และ glm_weightit() ปรับแบบจำลองผลลัพธ์ที่ถ่วงน้ำหนักด้วยค่าคลาดเคลื่อนมาตรฐานที่คำนึงถึงการประมาณคะแนน แถว treated ให้ -0.175 และ 0.101 เหมือนที่ teffects ipw ให้ใน Stataสิ่งที่ควรรายงาน
สามรายการช่วยให้ผู้อ่านตรวจการวิเคราะห์ที่ถ่วงน้ำหนักได้:
- ชนิดของน้ำหนักและ estimand คือปริมาณเป้าหมายของการประมาณ (estimand) ซึ่งเป็นปริมาณที่การวิเคราะห์ตั้งใจประมาณ เช่น น้ำหนักแบบปรับเสถียรสำหรับ ATE
- ผลรวมของน้ำหนักในแต่ละกลุ่ม ควบคู่กับขนาดจริงของกลุ่ม เพื่อให้ผู้อ่านเห็นว่า 200 จากผู้ป่วย 100 คนเป็นสมบัติของน้ำหนัก น้ำหนักแบบปรับเสถียรควรมีค่าเฉลี่ยใกล้ 1 ค่าเฉลี่ยที่ห่างจาก 1 มากอาจชี้ว่าแบบจำลองคะแนนแนวโน้มระบุผิด หรือมีผู้ป่วยที่แทบไม่มีโอกาสได้รับการรักษาแบบใดแบบหนึ่ง [2]
- ตารางสมดุลหนึ่งตาราง ที่แสดง SMD ของตัวแปรร่วมแต่ละตัวก่อนและหลังถ่วงน้ำหนัก
สำหรับผู้ทบทวนในฉากเปิด คำตอบสั้น ๆ คือ 200 เป็นประชากรเสมือนแบบไม่ปรับเสถียร น้ำหนักแบบปรับเสถียรจะแสดง 100 และการปรับด้วยความรุนแรงเหมือนกัน
ความเข้าใจผิดที่พบบ่อยและวิธีแก้
-
"น้ำหนักแบบปรับเสถียรปรับตัวกวนซ้ำเป็นครั้งที่สอง"
น้ำหนักแบบปรับเสถียรใช้คะแนนแนวโน้มเดียวกับน้ำหนักแบบไม่ปรับเสถียร และไม่ได้เพิ่มข้อมูลเกี่ยวกับตัวกวน
วิธีแก้: การทำ stabilization คือการคูณน้ำหนักทุกตัวในกลุ่มการรักษาเดียวกันด้วยสัดส่วนผู้ป่วยของกลุ่มนั้น จึงเปลี่ยนขนาดของ pseudo-population แต่คงความสมดุลที่น้ำหนักแบบไม่ปรับเสถียรทำได้ไว้เหมือนเดิม
-
"ผลรวมถ่วงน้ำหนัก 200 จากผู้ป่วย 100 คน แปลว่าข้อมูลถูกทำซ้ำ"
น้ำหนัก ATE แบบไม่ปรับเสถียรทำให้แต่ละกลุ่มเป็นตัวแทนของตัวอย่างทั้งหมด ผลรวมของมันจึงเป็นประมาณสองเท่าของขนาดตัวอย่างโดยการออกแบบ
วิธีแก้: รายงานผลรวมของน้ำหนักในแต่ละกลุ่มควบคู่กับขนาดจริงของกลุ่ม
-
"ผลรวมเป็นสองเท่าของขนาดตัวอย่าง หรือเท่ากับขนาดตัวอย่าง พอดีเสมอ"
ในตัวอย่างคำนวณด้วยมือ ผลรวมพอดีเพราะคะแนนแต่ละค่าเท่ากับสัดส่วนผู้ได้รับการรักษาที่สังเกตได้ในรูปแบบตัวแปรร่วมนั้น เมื่อใช้แบบจำลองคะแนนแนวโน้มที่เรียบกว่า ผลรวมมักใกล้เคียงแต่ไม่เท่ากัน
วิธีแก้: อ่านผลรวมเป็นค่าคาดหมาย และตรวจดูเมื่อห่างจากค่านั้นมาก
-
"เพื่อความปลอดภัยเพิ่มเติม ให้ใช้น้ำหนักทั้งสองแบบ"
การคูณน้ำหนักสองแบบเข้าด้วยกันคือการหารด้วยความน่าจะเป็นของการรักษาที่ได้รับสองครั้ง สองกลุ่มจึงไม่มีสัดส่วนตัวแปรร่วมเหมือนตัวอย่างทั้งหมดอีกต่อไป
วิธีแก้: ใช้น้ำหนักหนึ่งแบบต่อหนึ่งการวิเคราะห์ สำหรับการรักษา ณ จุดเวลาเดียว แบบใดก็ให้สมดุลเท่ากัน
-
"ค่าคลาดเคลื่อนมาตรฐานจากจำนวนนับถ่วงน้ำหนักใช้ได้กับน้ำหนักทั้งสองแบบ"
กับน้ำหนักแบบไม่ปรับเสถียร มันทำเหมือนสังเกตผู้ป่วย 200 คน คือ 0.061 ในข้อมูลจำลอง เทียบกับค่าแบบแซนด์วิช 0.106 หรือ 0.101 เมื่อคำนึงถึงคะแนนที่ประมาณได้ กับน้ำหนักแบบปรับเสถียรได้ 0.098 ซึ่งใกล้กว่า แต่ก็ยังมองไม่เห็นว่าน้ำหนักไม่เท่ากันเพียงใด และไม่เห็นการประมาณคะแนน
วิธีแก้: ใช้ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิช หรือค่าที่คำนึงถึงการประมาณคะแนนแนวโน้มด้วย คือ teffects ipw ใน Stata หรือ glm_weightit() ใน R
สิ่งที่ควรทำในการวิเคราะห์ของคุณเอง
- ระบุ estimand ก่อนเลือกน้ำหนัก สำหรับ ATE ของการรักษา ณ จุดเวลาเดียว น้ำหนักทั้งสองแบบตอบคำถามเดียวกัน
- ใส่ผลรวมของน้ำหนักในแต่ละกลุ่มไว้ข้างขนาดจริงของกลุ่มในตารางลักษณะพื้นฐานแบบถ่วงน้ำหนัก
- ตรวจสมดุลด้วย SMD ของตัวแปรร่วมทุกตัว โดยใช้น้ำหนักเดียวกับที่ใช้วิเคราะห์ผลลัพธ์
- พิจารณาใช้ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิช หรือค่าที่คำนึงถึงการประมาณคะแนน (
teffects ipwใน Stata,glm_weightit()ใน R) แทนค่าที่อ่านน้ำหนักเป็นจำนวนนับ - ถ้ากำหนดเพดานให้น้ำหนัก ให้ระบุว่าทำบนมาตราส่วนใด เพราะเพดานเดียวกันตัดผู้ป่วยคนละกลุ่มภายใต้การถ่วงน้ำหนักสองแบบ ตอนว่าด้วยน้ำหนักที่สูงผิดปกติของชุดบทความนี้อธิบาย truncation ไว้
- สำหรับการรักษาที่เปลี่ยนไปตามเวลา ดูตอนว่าด้วย marginal structural model ของชุดบทความนี้
อภิธานศัพท์
- inverse probability of treatment weighting (IPTW) (การถ่วงน้ำหนักด้วยส่วนกลับของความน่าจะเป็นในการได้รับการรักษา)
- การให้น้ำหนักผู้ป่วยแต่ละคนเท่ากับหนึ่งหารด้วยความน่าจะเป็นของการรักษาที่ผู้ป่วยคนนั้นได้รับ
- propensity score (คะแนนแนวโน้มการได้รับการรักษา)
- ความน่าจะเป็นที่จะได้รับการรักษาเมื่อกำหนดตัวแปรร่วมพื้นฐานที่วัดไว้
- pseudo-population (ประชากรเสมือน)
- ประชากรที่ถ่วงน้ำหนักแล้ว ซึ่งผู้ป่วยแต่ละคนนับเท่ากับค่าน้ำหนักของตน
- pseudo-population size (ขนาดของ pseudo-population)
- ผลรวมของน้ำหนัก ได้ประมาณสองเท่าของขนาดตัวอย่างสำหรับน้ำหนัก ATE แบบไม่ปรับเสถียร และประมาณขนาดตัวอย่างสำหรับน้ำหนักแบบปรับเสถียร
- unstabilised weight (น้ำหนักแบบไม่ปรับเสถียร)
- หนึ่งหารด้วยความน่าจะเป็นของการรักษาที่ผู้ป่วยได้รับจริง
- stabilised weight (น้ำหนักแบบปรับเสถียร)
- น้ำหนักแบบไม่ปรับเสถียรคูณสัดส่วนผู้ได้รับการรักษาในภาพรวมของการรักษาที่ได้รับ
- marginal probability of treatment (สัดส่วนผู้ได้รับการรักษาในภาพรวม)
- สัดส่วนของผู้ป่วยทั้งหมดที่ได้รับการรักษาแบบใดแบบหนึ่ง
- standardised mean difference (ผลต่างค่าเฉลี่ยมาตรฐาน)
- ผลต่างของค่าเฉลี่ยตัวแปรร่วมระหว่างกลุ่ม หารด้วยส่วนเบี่ยงเบนมาตรฐานรวม
- normalised weighted mean
- ผลรวมของน้ำหนักคูณค่า หารด้วยผลรวมของน้ำหนัก
- frequency weight
- น้ำหนักที่อ่านเป็นจำนวนผู้ป่วยที่เหมือนกันทุกประการ จึงรายงานผลรวมของมันเป็นขนาดตัวอย่าง
- robust (sandwich) standard error (ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิช)
- ค่าคลาดเคลื่อนมาตรฐานที่ยังใช้ได้เมื่อข้อสมมติเรื่องความแปรปรวนผิด ตราบใดที่แบบจำลองของค่าเฉลี่ยถูกต้อง เมื่อมีน้ำหนัก ค่านี้อ่านจากการกระจายของข้อมูลที่ถ่วงน้ำหนักแล้ว ไม่ใช่จากจำนวนนับที่ถ่วงน้ำหนัก
- saturated model
- แบบจำลองที่มีค่าเฉลี่ยแยกกันสำหรับทุกการรวมกันของตัวแปรที่มันมี เช่นหนึ่งค่าเฉลี่ยต่อหนึ่งกลุ่มสำหรับการรักษาแบบสองค่า
- estimand (ปริมาณเป้าหมายของการประมาณ)
- ปริมาณที่แน่ชัดซึ่งการวิเคราะห์ตั้งใจประมาณ เช่น ATE
เอกสารอ้างอิง
- Robins JM, Hernán MA, Brumback B. Marginal structural models and causal inference in epidemiology. Epidemiology. 2000;11(5):550-560. doi:10.1097/00001648-200009000-00011 https://doi.org/10.1097/00001648-200009000-00011
- Cole SR, Hernán MA. Constructing inverse probability weights for marginal structural models. Am J Epidemiol. 2008;168(6):656-664. doi:10.1093/aje/kwn164 https://doi.org/10.1093/aje/kwn164
- Hernán MA, Robins JM. Causal inference: what if [Internet]. Boca Raton: Chapman & Hall/CRC; 2020. https://miguelhernan.org/whatifbook
- Xu S, Ross C, Raebel MA, Shetterly S, Blanchette C, Smith D. Use of stabilized inverse propensity scores as weights to directly estimate relative risk and its confidence intervals. Value Health. 2010;13(2):273-277. doi:10.1111/j.1524-4733.2009.00671.x https://doi.org/10.1111/j.1524-4733.2009.00671.x
ประเด็นสำคัญ
- น้ำหนัก ATE แบบไม่ปรับเสถียรสร้างประชากรเสมือนขนาดประมาณสองเท่าของขนาดตัวอย่าง และน้ำหนักแบบปรับเสถียรสร้างขนาดประมาณขนาดตัวอย่าง ในตัวอย่างคำนวณด้วยมือที่มีผู้ป่วย 100 คน ผลรวมคือ 200 และ 100 พอดี เพราะคะแนนแต่ละค่าเท่ากับสัดส่วนที่สังเกตได้ในแต่ละระดับความรุนแรง
- stabilization คูณน้ำหนักทุกตัวในกลุ่มการรักษาเดียวกันด้วยสัดส่วนผู้ป่วยของกลุ่มนั้น จึงคงสมดุลที่น้ำหนักแบบไม่ปรับเสถียรทำไว้ คือความรุนแรงสูง 50% ในทั้งสองกลุ่ม
- สำหรับการรักษาแบบสองค่า เมื่อค่าเฉลี่ยถ่วงน้ำหนักที่หารด้วยผลรวมน้ำหนักในแต่ละกลุ่ม และน้ำหนักไม่ถูกตัดปลายหรือเปลี่ยนแปลงด้วยวิธีอื่น การถ่วงน้ำหนักทั้งสองแบบให้ความเสี่ยงที่ถ่วงน้ำหนักแล้วและผลต่างของความเสี่ยงเท่ากัน
- สิ่งที่ต่างได้คือสิ่งใดก็ตามที่อ่านน้ำหนักเป็นจำนวนนับ เช่นจำนวนผู้ป่วยที่ซอฟต์แวร์รายงานและค่าคลาดเคลื่อนมาตรฐานแบบอิงจำนวนนับ ส่วนค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิชของแบบจำลองถ่วงน้ำหนักที่มีเฉพาะการรักษาไม่เปลี่ยนตามมาตราส่วนของน้ำหนัก
- รายงานชนิดของน้ำหนัก ผลรวมของน้ำหนักในแต่ละกลุ่มควบคู่กับขนาดจริงของกลุ่ม และตารางสมดุลหนึ่งตาราง
อ่านต่อในวิกิ: [[extreme-propensity-weights-stabilization-truncation-trimming-th]] [[iptw-guide-th]] [[propensity-weighting-balance-check-and-model-revision-th]]