Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 模拟与多个其他向量相关的数据_R_Simulation_Correlation - Fatal编程技术网

R 模拟与多个其他向量相关的数据

R 模拟与多个其他向量相关的数据,r,simulation,correlation,R,Simulation,Correlation,我试图模拟一个与其他几个向量相关的向量。我找到了模拟一个与另一个向量相关的向量的代码,但不知道如何模拟与多个其他向量相关的向量: 这是我的密码: library(faux) p4<-rnorm_pre(data$p1, mu = 0, sd = 10, r = 0.4, empirical = FALSE) 我想添加另一列,称为p4,它是模拟数据的向量,与p1和p3相关 非常感谢您的任何建议。新的向量可以像上面所说的那样创建 数据采用dput格式 data By“与多个其他参数的相关性”

我试图模拟一个与其他几个向量相关的向量。我找到了模拟一个与另一个向量相关的向量的代码,但不知道如何模拟与多个其他向量相关的向量:

这是我的密码:

library(faux)
p4<-rnorm_pre(data$p1, mu = 0, sd = 10, r = 0.4, empirical = FALSE)
我想添加另一列,称为p4,它是模拟数据的向量,与p1和p3相关


非常感谢您的任何建议。

新的向量可以像上面所说的那样创建

数据采用
dput
格式
data By“与多个其他参数的相关性”你是指“与多个其他向量的相关性”吗?你能发布样本数据吗?请使用
dput(数据$p1)
的输出编辑问题。或者,如果使用
dput(head(data$p1,20))
@RuiBarradas的输出太大,我已经使用示例数据(如果非常大,则使用完整的数据集)进行了更新。是的,我指的是矢量。谢谢你的回复!我只想模拟一个向量(p4)。其他向量已经存在。创建数据关联矩阵时,它还创建了所有其他p#向量之间的关联。例如,我希望p4与p1的相关性为-0.3,与p3的相关性为0.2。我认为我不理解代码的过程@芮Barradas@Cae.rich函数
rnorm_pre
创建具有给定平均值、标准差和相关性的新向量。这些是人口统计,因为默认情况下,
emerical=FALSE
。数据相关矩阵仅用于查看函数设法与其他向量生成的向量
p4
的实际相关值。@Cae.rich例如,我要求
cor(p1,p4)==-0.2
并获得
-0.21833687
cor(p2,p4)
甚至与作为参数传递给函数的所需值相差很远。明白了!这是有道理的。所以r=c(-0.2,0.2,0.1)分别表示p4和p1、p2和p3之间的期望相关性?是否有一种方法可以确定某些向量的相关性,而不是所有向量的相关性。例如,p1和p3,但没有p2的特定相关性?谢谢你所有的帮助help@Cae.rich如果将data.frame作为子集,则可以指定某些向量的相关性。frame将使用示例进行编辑。
 ID  p1  p2  p3 
 1 0.25 0.30 0.02
 2 0.05 0.67 0.18
 3 0.09 0.31 0.38
 4 0.55 0.87 0.21
 5 0.25 0.64 0.01
library(faux)

data$p4 <- rnorm_pre(
  data[-1],             # remove 1st column ID
  mu = 0, 
  sd = 4, 
  r = c(-0.2, 0.2, 0.1)
)

cor(data[-1])
#           p1         p2          p3          p4
#p1  1.0000000  0.5695821 -0.20120754 -0.21833687
#p2  0.5695821  1.0000000 -0.08533300  0.60506386
#p3 -0.2012075 -0.0853330  1.00000000  0.06803646
#p4 -0.2183369  0.6050639  0.06803646  1.00000000
data$p5 <- rnorm_pre(
  data[c("p1", "p3")],  # only columns p1 and p3
  mu = 0,
  sd = 1,
  r = c(0.5, -0.2)
)

cor(data[c("p1", "p3", "p5")])
#           p1         p3         p5
#p1  1.0000000 -0.2012075  0.5772403
#p3 -0.2012075  1.0000000 -0.0806465
#p5  0.5772403 -0.0806465  1.0000000
data <-
structure(list(ID = 1:5, p1 = c(0.25, 0.05, 0.09, 0.55, 0.25), 
    p2 = c(0.3, 0.67, 0.31, 0.87, 0.64), p3 = c(0.02, 0.18, 0.38, 
    0.21, 0.01)), class = "data.frame", row.names = c(NA, -5L))