LoginSignup
2
0

More than 1 year has passed since last update.

正規分布 : 正規分布 (ベイズ推定)

Last updated at Posted at 2020-11-02

記事の目的

正規分布と、平均が未知の時の共役事前分布である正規分布を使用し、Rを使ってベイズ推定を行います。
20代男性の身長の平均を事後分布で推定します。
参考:ベイズ推論による機械学習入門

目次

1. モデルの説明
2. 推定する分布
3. 事前分布
4. 事後分布
5. 予測分布

1. モデルの説明

IMG_0183.jpeg

2. 推定する分布

20代男性の身長は、平均が170で標準偏差が10の正規分布に従います(適当)。しかし、僕たちはそれを知りません。
この、真の分布の平均の170を事後分布で推定します。

curve(dnorm(x, 170, 10), 100, 250, xlab="20代男性の身長", ylab="確率密度")

image.png

3. 事前分布

事前分布として、正規分布の、平均が未知のときの共役事前分布である正規分布を指定します。
平均が0で分散が10000の正規分布を仮定して、データに適合しやすくしています。

m0 <- 100
lambda.mu0 <- 1/50^2
curve(dnorm(x, m0, 1/sqrt(lambda.mu0)), 0, 250,
      xlab="20代男性の平均身長", ylab="確率密度", ylim=c(0,0.3))

image.png

4. 事後分布

真の分布から50個のサンプルを取って事後分布を推定します。
事後分布は緑の曲線です。170付近が一番出やすいと推定できています。

#データ
N <- 50
X <- rnorm(N, 170, 10)
#事後分布
lambda0 <- 1/(10)^2
lambda <- N*lambda0 + lambda.mu0
m <- (lambda0*sum(X) + lambda.mu0*m0)/lambda
curve(dnorm(x, m, 1/sqrt(lambda)), 100, 250, add=T, col="green")

image.png

5. 予測分布

予測分布が、真の分布をうまく推定できていることが分かります。

curve(dnorm(x, 170, 10), 100, 250, xlab="20代男性の身長", ylab="確率密度")
curve(dnorm(x, m, sqrt(lambda^(-1)+lambda0^(-1))), 100, 250, add=T, col="blue")

image.png

◯SNS
・youtube
https://youtube.com/channel/UCFDyXEywtNhdtwqC3GAkYuA

・Twitter
https://twitter.com/Dken_ta

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0