Çok değişkenli normal dağılımın yoğunluğu

R'de Çok Değişkenli Olasılık Dağılımları

Surajit Ray

Professor, University of Glasgow

Neden bir dağılımın yoğunluğunu hesaplarız?

R'de Çok Değişkenli Olasılık Dağılımları

Neden bir dağılımın yoğunluğunu hesaplarız?

R'de Çok Değişkenli Olasılık Dağılımları

Tek değişkenli normal fonksiyonlar dnorm() normal

R'de Çok Değişkenli Olasılık Dağılımları

İki değişkenli normalin olasılık yoğunluğu

Standart iki değişkenli normal: $$ \mu = \begin{pmatrix} 0 \\ 0 \end{pmatrix} , \Sigma = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} $$ animation

dmvnorm() fonksiyonu

Birçok konumda (xy koordinatları) yoğunluk yükseklikleri hesaplandı

density

R'de Çok Değişkenli Olasılık Dağılımları

dmvnorm ile yoğunluk

library(mvtnorm)
dmvnorm(x, mean, sigma)
  • x bir satır vektörü ya da matris olabilir

 

mu1 <- c(1, 2)
sigma1 <- matrix(c(1, .5, .5, 2), 2)
dmvnorm(x = c(0, 0), mean = mu1, sigma = sigma1)
0.0384
R'de Çok Değişkenli Olasılık Dağılımları

dmvnorm ile birden çok noktada yoğunluk

x <- rbind(c(0, 0), c(1, 1), c(0, 1)); x 
[1,]    0    0
[2,]    1    1
[3,]    0    1

 

dmvnorm(x = x, mean = mu, sigma = sigma)
[1] 0.0384 0.0904 0.0679
R'de Çok Değişkenli Olasılık Dağılımları

Perspektif grafikle iki değişkenli yoğunlukları çizmek

Adımlar:

  • $x$ ve $y$ koordinatlarından bir ızgara oluştur
  • Izgarada yoğunluğu hesapla

R'de Çok Değişkenli Olasılık Dağılımları

Perspektif grafikle iki değişkenli yoğunlukları çizmek

Adımlar:

  • $x$ ve $y$ koordinatlarından bir ızgara oluştur
  • Izgarada yoğunluğu hesapla
  • Yoğunlukları matrise dönüştür
  • persp() fonksiyonuyla perspektif grafik oluştur

R'de Çok Değişkenli Olasılık Dağılımları

İki değişkenli yoğunlukları çizme kodu

# Izgara oluştur
d <- expand.grid(seq(-3, 6, length.out = 50 ), seq(-3,  6, length.out = 50))                   

# Izgarada yoğunluğu hesapla
dens1 <- dmvnorm(as.matrix(d), mean=c(1,2), sigma=matrix(c(1, .5, .5, 2), 2))

# Matrisa dönüştür 
dens1 <-  matrix(dens1, nrow = 50 )

# Perspektif grafik kullan
persp(dens1, theta = 80, phi = 30, expand = 0.6, shade = 0.2, col = "lightblue", xlab = "x", ylab = "y", zlab = "dens")

R'de Çok Değişkenli Olasılık Dağılımları

Perspektif grafikte bakış açısını değiştirme

theta = 30, phi = 30 ile persp()

theta = 80, phi = 10 ile persp()

R'de Çok Değişkenli Olasılık Dağılımları

Hadi pratik yapalım!

R'de Çok Değişkenli Olasılık Dağılımları

Preparing Video For Download...