読者です 読者をやめる 読者になる 読者になる

はしくれエンジニアもどきのメモ

情報・Web系技術の勉強メモ・備忘録です。

R言語で多変量解析5(正規分布の和分布, 2変数の標準正規分布, 2次元正規分布)

 正規分布の和分布

  • 2つの互いに独立な確率変数X1X2がなす正規分布N( μ1,σ^2)N( μ2, σ^2)の和は、X1 + Xがなす正規分布となり、N( μμ2, σ^21 σ^22)となる。
  • 例:μ1 = 10, σ^21 = 4^2

                μ20, σ^22 = 3^2 

curve( dnorm( x, m = 10, sd = 4 ), xlim = c( -5, 50 ), ylim = c( 0, 0.15 ), lwd = 3, ann = FALSE ) #N(μ1, σ1^2)
curve( dnorm( x, m = 20, sd = 3 ), xlim = c( -5, 50 ), ylim = c( 0, 0.15 ), lwd = 3, add = TRUE ) #N(μ2, σ2^2)
curve( dnorm( x, m = 10 + 20, sd = sqrt( 4^2 + 3^2 ) ), xlim = c( -5, 50 ), ylim = c( 0, 0.15 ), lwd = 3, col = "red", add = TRUE ) #N(μ1+μ2, σ1^2+σ2^2)

f:id:cartman0:20140910145229p:plain

 

2変数の標準正規分布

gauss2D <- function( x, y ){
#2次元標準正規分布
return ( 1 / ( 2 * pi ) * exp( -( x^2 + y^2 ) / 2 ) )
}

x <- seq( -3, 3, length = 50 )
y <- x
z <- outer( x, y, gauss2D ) #配列の積
z[is.na( z )] <- 1 #欠損値は1で補完
persp( x, y, z, theta = 50, phi = 40, expand = 0.5, col = "lightblue" ) #3次元プロット

   f:id:cartman0:20140910154910p:plain

 

2次元正規分布 

f:id:cartman0:20140910175307p:plain

D^2:マハラノビス距離

f:id:cartman0:20140910175417p:plain

ρxy:母相関係数

 

σx = 2, σy = 1, 母相関係数は、それぞれ変えた場合の2次元正規分布

library( "chemometrics" )

x <- seq( from = -4, to = 4, by = 0.2 ); y <- x; G <- cbind( x, y )
sigma.x <- 2
sigma.y <- 1
rho.xy <- 0.8 #母相関係数population correlation coefficient(正の相関)

mat2 <- matrix( c( sigma.x^2, rho.xy * sigma.x * sigma.y, rho.xy * sigma.x * sigma.y, sigma.y^2 ), 2, 2 )
drawMahal( G, center = c( 0, 0 ), covariance = mat2, quantile = c( 0.975, 0.9, 0.7, 0.5, 0.3, 0.1 ), type = "n" )

 f:id:cartman0:20140910181224p:plain

                                                         ρxy =0.8 > 0 正の相関関係

 

rho.xy <- 0 #無相関

mat2 <- matrix( c( sigma.x^2, rho.xy * sigma.x * sigma.y, rho.xy * sigma.x * sigma.y, sigma.y^2 ), 2, 2 )
drawMahal( G, center = c( 0, 0 ), covariance = mat2, quantile = c( 0.975, 0.9, 0.7, 0.5, 0.3, 0.1 ), type = "n" )

f:id:cartman0:20140910181610p:plain

                                                                     ρxy = 0 無相関

 

rho.xy <- -0.5 #負の相関

mat2 <- matrix( c( sigma.x^2, rho.xy * sigma.x * sigma.y, rho.xy * sigma.x * sigma.y, sigma.y^2 ), 2, 2 )
drawMahal( G, center = c( 0, 0 ), covariance = mat2, quantile = c( 0.975, 0.9, 0.7, 0.5, 0.3, 0.1 ), type = "n" )

f:id:cartman0:20140910182116p:plain

                                                     ρxy =-0.5 < 0 負の相関関係