วิธีการจำลองผลลัพธ์หลายตัวแปรใน R?


10

ส่วนของสถานการณ์เราจะจัดการกับผลตอบสนอง / ตัวแปรเช่น+ อย่างไรก็ตามในบางสถานการณ์โดยเฉพาะอย่างยิ่งในข้อมูลทางคลินิกตัวแปรผลลัพธ์อาจเป็นมิติสูง / หลายตัวแปร เช่นโดยที่มีตัวแปร Y_1 , Y_2และY_3และผลลัพธ์เหล่านี้ล้วนมีความสัมพันธ์กัน หากxแทนการรับการรักษา (ใช่ / ไม่ใช่) ฉันจะจำลองข้อมูลประเภทนี้ใน R ได้อย่างไร?y=a+bx+ϵY=βx+ϵYY1Y2Y3x

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


มีการกระจายแบบใด หากเป็นหลายตัวแปรปกติให้ดูที่ไลบรารี mnormt ใน RY
Macro

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

ฉันแค่เพิ่มตัวอย่างจริงซึ่งน่าจะมีประโยชน์ ขอบคุณ
Tu.2

คำตอบ:


9

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

ตัวอย่างเช่นพิจารณาโมเดล

E(y1,y2,y3)=(1+x,2x,13x)

ที่ไหน y มีการแจกแจงปกติหลายตัวแปรและ Var(yi)=1, Cov(Y1,Y2)=Cov(Y2,Y3)=0.5และ Cov(Y1,Y3)=0. ลองระบุเมทริกซ์ความแปรปรวนร่วมนี้ใน R:

sigma <- matrix(c(1,   0.5, 0,  
                  0.5, 1,   0.5,
                  0,   0.5, 1  ), 3, 3)

เพื่อทำการทดลองมาสร้างข้อมูลสำหรับรุ่นนี้โดยการปล่อย x แตกต่างจาก 1 ตลอด 10มีสามซ้ำทุกครั้ง เราต้องรวมเงื่อนไขที่คงที่เช่นกัน:

data <- cbind(rep(1,10*3), rep(1:10,3))

รูปแบบกำหนดวิธีการ:

beta <- matrix(c(-1,1,  0,2,  1,-3), 2, 3)
means <- data %*% beta

วิธีแก้ปัญหาสำหรับการสร้างผลลัพธ์หลายตัวแปรคือการใช้apply:

library(mvtnorm) # Contains rmvnorm
sample <- t(apply(means, 1, function(m) rmvnorm(1, mean=m, sigma=sigma)))

2

เครือข่ายแบบเบย์ (BNs) มักใช้ในบริบทที่คุณอธิบาย ในฐานะที่เป็นแบบจำลองการกำเนิด BN จะอนุญาตให้คุณแสดงการพึ่งพาทางสถิติระหว่างตัวแปรโดเมนของคุณซึ่งในกรณีของคุณสามารถจัดกลุ่มย่อยเป็น 1) การบำบัดก่อน 2) การรักษาและ 3) ตัวแปรหลังการรักษา คุณสามารถฝึกรูปแบบของคุณกับข้อมูลผู้ป่วยที่มีอยู่ของคุณแล้วป้อนหลักฐาน (กรอกค่าที่สังเกต) สำหรับผู้ป่วยเฉพาะเพื่อตรวจสอบว่าค่าที่สังเกตมีผลต่อตัวแปรอื่น ๆ อย่างไร (รวมถึงสิ่งที่คุณระบุว่าเป็นผลลัพธ์เช่นหลังการรักษา)

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

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