แก้ไขหลังจากความคิดเห็นที่เป็นประโยชน์จาก Mark White (ขอบคุณ!)
ทางเลือกหนึ่งคือการคำนวณทั้งความสัมพันธ์ (B1 กับ A และ B2 กับ A) ในรูปแบบเดียวที่ประเมินความแตกต่างระหว่างพวกเขา นี่เป็นเรื่องง่ายที่จะบรรลุด้วยการถดถอยหลายครั้ง คุณจะเรียกใช้โมเดลที่มี A เป็นตัวแปรตามและจากนั้นหนึ่งตัวแปรต่อเนื่องที่มีคะแนนทั้งหมดสำหรับ B1 และ B2 ซึ่งเป็นตัวแปรเด็ดขาดที่ระบุว่าตัวแปรใดคือ (B1 หรือ B2) และการโต้ตอบระหว่างกัน ใน r:
> set.seed(24601)
>
> library(tidyverse)
> library(mvtnorm)
> cov <- matrix(c(1, .4, .16,.4, 1, .4, .16, .4, 1), ncol=3, byrow=TRUE)
> mydata <- rmvnorm(n=100, sigma = cov)
> colnames(mydata) = c("A", "B1", "B2")
> head(mydata)
A B1 B2
[1,] -0.1046382 0.6031253 0.5641158
[2,] -1.9303293 -0.7663828 -0.7921836
[3,] 0.1244192 -0.4413581 -1.2376256
[4,] -3.2822601 -1.2512055 -0.5586773
[5,] -0.9543368 -0.1743740 1.1884185
[6,] -0.4843183 -0.2612668 -0.7161938
นี่คือความสัมพันธ์จากข้อมูลที่ฉันสร้าง:
> cor(mydata)
A B1 B2
A 1.0000000 0.4726093 0.3043496
B1 0.4726093 1.0000000 0.3779376
B2 0.3043496 0.3779376 1.0000000
>
การเปลี่ยนรูปแบบของข้อมูลเพื่อตอบสนองความต้องการของรูปแบบ (การจัดรูปแบบเป็น "ยาว"):
> mydata <- as.data.frame(mydata) %>%
+ gather("var", "value", B1, B2)
>
นี่คือรูปแบบ:
สรุป (lm (ค่า ~ var * data = mydata))
Call:
lm(formula = A ~ value * var, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-2.89310 -0.52638 0.02998 0.64424 2.85747
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.09699 0.09014 -1.076 0.283
value 0.47445 0.09305 5.099 8.03e-07 ***
varB2 -0.10117 0.12711 -0.796 0.427
value:varB2 -0.13256 0.13965 -0.949 0.344
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.891 on 196 degrees of freedom
Multiple R-squared: 0.158, Adjusted R-squared: 0.1451
F-statistic: 12.26 on 3 and 196 DF, p-value: 2.194e-07
ผลลัพธ์ที่นี่ (จากข้อมูลที่สร้างขึ้นของฉัน) แนะนำว่ามีความสัมพันธ์ที่สำคัญระหว่าง B1 และ A (การทดสอบค่าสัมประสิทธิ์ "ค่า" เนื่องจาก B1 เป็นกลุ่มอ้างอิงสำหรับค่าสัมประสิทธิ์ "var") แต่ความแตกต่างนั้น ระหว่างความสัมพันธ์ B1 กับ A และความสัมพันธ์ B2 กับ A ไม่สำคัญ (การทดสอบค่าสัมประสิทธิ์ "value: varB2")
ถ้าคุณชอบคิดในแง่ของความสัมพันธ์มากกว่าสัมประสิทธิ์การถดถอยเพียงแค่สร้างมาตรฐานของตัวแปรทั้งหมด (A, B1 และ B2) ก่อนที่จะเรียกใช้แบบจำลองและสัมประสิทธิ์การถดถอยที่คุณได้รับจะได้มาตรฐาน (ไม่ใช่สิ่งเดียวกัน มีความสัมพันธ์เป็นศูนย์ลำดับ แต่ใกล้เคียงกับการตีความมากขึ้น)
นอกจากนี้โปรดทราบว่าสิ่งนี้จะ จำกัด การวิเคราะห์ของคุณเฉพาะกรณีที่มีทั้ง B1 และ B2 ( การลบตามรายการ ) ตราบใดที่ทำให้คุณมีข้อมูลมากพอที่จะไม่ถูกลดทอนและตราบใดที่ข้อมูลที่ขาดหายไปนั้นหายไปโดยการสุ่ม (หรือสัดส่วนที่น้อยมากของข้อมูลทั้งหมดที่จะไม่สำคัญมากแม้ว่าพวกเขาจะหายไปแบบไม่สุ่ม) ก็ตาม
ความจริงที่ว่าคุณกำลัง จำกัด การวิเคราะห์ของคุณไปยังชุดข้อมูลเดียวกันสำหรับการประเมินผลกระทบสำหรับทั้ง B1 และ B2 (แทนที่จะใช้ชุดข้อมูลที่แตกต่างกันเล็กน้อยตามรูปแบบของการหายไปที่ต่างกัน) มีข้อได้เปรียบในการตีความความแตกต่างระหว่างความสัมพันธ์เล็กน้อย ตรงไปตรงมามากขึ้น หากคุณคำนวณความสัมพันธ์แยกกันสำหรับแต่ละรายการจากนั้นทดสอบความแตกต่างระหว่างปัญหาเหล่านั้นคุณพบปัญหาที่ข้อมูลพื้นฐานแตกต่างกันเล็กน้อยในแต่ละกรณี --- ความแตกต่างใด ๆ ที่คุณเห็นอาจเกิดจากความแตกต่างของกลุ่มตัวอย่าง ในความสัมพันธ์ที่แท้จริงระหว่างตัวแปร