見出し画像

R言語で多変量正規乱数を生成する

指定した相関係数をもった多変量正規乱数に従うデータをR言語で生成するコードです。あると便利だと言われることが多いので載せておきます。
1行目のn=1000でデータの件数を、3行目のr=0.0で変数間の相関係数を指定しています。サンプルは2次元ですが、平均muと分散共分散行列Sigmaの次元を増やせば、3次元以上にも拡張できます。

library(MASS)
n=1000
r=0.0
mu=c(0,0)
Sigma=matrix(c(1,r,r,1),ncol=2) 
X=mvrnorm(n=n, mu=mu,Sigma=Sigma)
X=as.data.frame(X)

ggplot2を使って散布図を描画してみます。

library(ggplot2)
g=ggplot(X,aes(x=V1,y=V2))
g=g+geom_point(color="darkgreen")
g=g+labs(title=paste0("cor=",r)) 
g=g+theme(plot.title=element_text(face="bold",size=15))
plot(g)

相関係数が-.9、-.75、0、0.5、.9などいくつかのパターンについて、散布図を描画した結果を掲載します(タイトルの値は母相関係数です)。


この記事が気に入ったらサポートをしてみませんか?