在 R 中模拟对多个响应的不一致影响

问题描述

我想在 R 中模拟以下内容。设 X 是一个随机变量,取值为 {0,1,2} 和​​ Y,Z 两个任意连续分布的随机变量:

  1. 如何生成 X、Y 和 Z,使 Y 和 Z 之间的 Pearson 相关性非常高(例如 r = 0.8),而它们各自与 X 的相关性却大不相同?.

  2. 换句话说,假设 cor(Y,Z) = r,r 相对较大,哪些 X、Y 和 Z 使 cor(X,Y) 和 cor(X,Z) 最小?

  3. 如何不仅生成两个 (Y,Z) 而且生成 k 个变量 (Y_1,Y_2,...,Y_k) 来满足前面的要求(它们具有非对角元素 = r 的相关矩阵,其中r 非常高),但它们与 X 的相关性非常不同))?

解决方法

1-2。 Y~N(0,1),Z~N(Y,0),X = [Z

Y <- rnorm(100)
Z <- rnorm(100,Y)
X = I(Z<Y) + I(Y<0)
cbind(Y,Z,X) %>% 
    cor()

       Y          Z          X
Y  1.0000000  0.7545677 -0.6593067
Z  0.7545677  1.0000000 -0.8240605
X -0.6593067 -0.8240605  1.0000000

我将离开 3. 作为练习。