我想模拟来自多元正态分布的两组数据,其中包含一些均值向量和协方差矩阵。我想要N(= 3000)模拟,每个k(= 100)变量的n(= 30)个数值。因此将有两组100个变量具有30个观察值。然后我想在这两组之间进行测试。我想做同样的过程N次。所以我应该得到每个变量的N p值,即p将是2000X100的矩阵。我怎么能在r?我有一个r代码,但它不起作用。
library('MASS')
N=3000
n=30
k=100
cov <- matrix(.5,ncol=k,nrow=k);diag(cov) <- 1
mu1=rep(0,k)
mu2=rep(0,k)
for (j in 1:N){
x=mvrnorm(n, mu1, cov, tol = 1e-6, empirical = FALSE)
y=mvrnorm(n, mu2, cov, tol = 1e-6, empirical = FALSE)
xm<- apply(x,2,mean)
ym<- apply(y,2,mean)
xv<- apply(x,2,sd)
yv<- apply(y,2,sd)
s=sqrt((xv^2*(n-1)+yv^2*(n-1))/(2*n-2))
t=(xm-ym)/(s*sqrt(2/n))
p=2*(1-pt(abs(t),df=2*n-2))
}