Mark White'dan gelen yararlı geri bildirimlerden sonra düzenlendi (teşekkür ederim!)
Bir seçenek, aralarındaki farkı da tahmin eden tek bir modelde her iki ilişkiyi (A ile B1 ve A ile B2) hesaplamaktır. Bunu çoklu regresyon ile başarmak kolaydır . Bağımlı değişken olarak A ile bir model ve daha sonra B1 ve B2 için tüm puanları içeren bir sürekli değişken, hangi değişken olduğunu (B1 veya B2) ve aralarındaki etkileşimi gösteren kategorik bir değişken çalıştırırsınız. R cinsinden:
> 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
Oluşturduğum verilerden korelasyonlar:
> 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
>
Verilerin biçimini modelin gereksinimlerini karşılayacak şekilde değiştirme ("uzun" olarak yeniden biçimlendirme):
> mydata <- as.data.frame(mydata) %>%
+ gather("var", "value", B1, B2)
>
İşte model:
özet (lm (A ~ değer * var, veri = verilerim))
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
Buradaki sonuçlar (yapılanma verilerimden), B1 ve A ("değer" katsayısının testi, çünkü B1 "var" katsayısı için referans grubu olduğundan) arasında anlamlı bir ilişki olduğunu, ancak farkın A ile B1 ilişkisi ve A ile B2 ilişkisi önemli değildir ("değer: varB2" katsayısının testi).
Regresyon katsayıları yerine korelasyon açısından düşünmeyi seviyorsanız, modeli çalıştırmadan önce tüm değişkenlerinizi (A, B1 ve B2) standartlaştırmanız yeterlidir ve alacağınız regresyon katsayıları standartlaştırılacaktır ( sıfır mertebe korelasyon, ancak yorumlama açısından çok daha yakın).
Ayrıca, bunun analizinizi yalnızca hem B1 hem de B2'ye sahip olanlarla ( listwise silme ) sınırlandıracağını unutmayın . Bu, size yetersiz güç verilmemesi için yeterli veri bıraktığı sürece ve eksik veriler rasgele eksik olduğu sürece (veya rasgele eksik olsalar bile toplam verilerin yeterince küçük bir kısmı) önemli değil.
Analizinizi hem B1 hem de B2 için etkileri tahmin etmek için aynı veri kümesiyle sınırlandırmış olmanız (farklı eksiklik modellerine dayalı olarak biraz farklı veri kümeleri kullanmak yerine), korelasyonlar arasındaki farkın biraz yorumlanması avantajına sahiptir. daha basit. Eğer varsa her biri için ayrı ayrı korelasyonları hesaplamak ve sonra aralarındaki farkı test etmek , temeldeki veri her durumda biraz farklı olduğunu sorun çıkıyor --- nedeniyle farklılıkların olduğu kadar örneklerin farklılıklardan olabileceğin gördüğünüz herhangi bir fark değişkenler arasındaki gerçek ilişkilerde.