理学療法士がまとめたノート

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

2変量の正規分布をグラフでイメージ(scatterplot3d)

ここで勉強させていただきました.
http://cse.naro.affrc.go.jp/minaka/R/R-binormal.html
忘れないように要点のみ転記させていただます.

必要なパッケージをインストールします

install.packages("mvtnorm")
library(mvtnorm)
install.packages("scatterplot3d")
library(scatterplot3d)

パッケージmvtnormは以下を参照
yoshida931.hatenablog.com

次に散布図を描きます

#共分散が0なので2変数には相関がありません
sigma.zero <- matrix(c(1,0,0,1), ncol=2)

     [,1] [,2]
[1,]    1    0
[2,]    0    1

#ともに平均=0,共分散=0となる2変数(乱数)を3組生成(n=100, n=1000, n=10000)
x100 <- rmvnorm(n=100, mean=c(0,0), sigma=sigma.zero)  
x1000 <- rmvnorm(n=1000, mean=c(0,0), sigma=sigma.zero)  
x10000 <- rmvnorm(n=10000, mean=c(0,0), sigma=sigma.zero)  

#3組並べて散布図
par(mfrow = c(1,3))
plot(x100)  
plot(x1000) 
plot(x10000)  

f:id:yoshida931:20180511164429p:plain:w500
確かに共分散はゼロです.

3Dで2変量の正規分布の同時確率密度関数を描いてみましょう

par(mfrow = c(1,3))
scatterplot3d(x100[,1], x100[,2], dmvnorm(x100, mean=c(0,0), sigma=sigma.zero), highlight=TRUE)
scatterplot3d(x1000[,1], x1000[,2], dmvnorm(x1000, mean=c(0,0), sigma=sigma.zero), highlight=TRUE)
scatterplot3d(x10000[,1], x10000[,2], dmvnorm(x10000, mean=c(0,0), sigma=sigma.zero), highlight=TRUE)

f:id:yoshida931:20180511165033p:plain:w600