第8講 - いろいろな離散分布と連続分布
(Press ?
for help, n
and p
for next and previous slide)
村田 昇
区間 [Math Processing Error] [Math Processing Error] に [Math Processing Error] が含まれる確率
[Math Processing Error]
定義
[Math Processing Error] 個の確率変数 [Math Processing Error] が 独立 であるとは, [Math Processing Error] [Math Processing Error] なる 任意の実数 [Math Processing Error] に対して
[Math Processing Error]が成り立つことをいう.
定義
[Math Processing Error] 個の確率変数 [Math Processing Error] が 同分布 であるとは, [Math Processing Error] なる任意の実数 [Math Processing Error] に対して
[Math Processing Error]が成り立つことをいう.
定義
以下の右辺が定義できる(絶対収束する)とき 離散型の確率変数 [Math Processing Error] の 平均 (または 期待値 )を
[Math Processing Error]で定義する.
ただし [Math Processing Error] は [Math Processing Error] の取りうる値(無限個も可)の集合
確率変数の変換 [Math Processing Error] の期待値
[Math Processing Error]
[Math Processing Error] 次の モーメント (あるいは 積率 )
[Math Processing Error]
定義
[Math Processing Error]
集合 [Math Processing Error] 上の離散一様分布
相異なる実数 [Math Processing Error] を壺から無作為に取り出す試行
確率質量関数
[Math Processing Error]
平均
[Math Processing Error]
分散
[Math Processing Error]
sample()
が利用できる
復元抽出はオプション replace=TRUE
を指定
a <- 1:6 # サンプリング対象の集合をベクトルとして定義(文字列でも構わない) sample(a, size=20, replace=TRUE) # 離散一様分布(20個)
試行回数 [Math Processing Error] , 成功確率 [Math Processing Error] の二項分布
確率 [Math Processing Error] で成功する試行を [Math Processing Error] 回行った総成功回数
確率質量関数
[Math Processing Error]
平均
[Math Processing Error]
2次モーメント
[Math Processing Error]
分散
[Math Processing Error]
乱数の発生は関数 rbinom()
を用いる
rbinom(10, size=1, prob=0.2) # Bernoulli分布(10個)
rbinom(20, size=5, prob=0.6) # 二項分布(20個)
[1] 1 0 1 0 1 1 1 0 0 0 [1] 1 4 4 3 5 2 3 4 4 4 1 4 4 1 3 3 4 1 3 3
dbinom()
で計算できる数値実験の雛形は以下のようになる
mc <- 10000 # 実験回数を指定
my_random <- function(){...} # 乱数生成のプログラム
my_dist <- function(){...} # 必要であれば理論曲線を定義
#' ただし多くの場合 d"乱数名"で定義されているのでそれらを用いればよい
my_data <- replicate(mc, my_random()) # Monte-Carlo実験
my_table <- table(my_data)/mc # 同じ値の頻度から確率を計算
tibble(count = as.numeric(names(my_table)),
observation = as.numeric(my_table),
theory = dbinom(値, size = n, prob = p)) |>
pivot_longer(!count, values_to = "probability") |>
ggplot(aes(x = count, y = probability, fill = name)) +
geom_bar(stat = "identity", width = 0.8, position = "dodge")
強度 [Math Processing Error] の Poisson 分布 [Math Processing Error] ([Math Processing Error])
少数の法則に現れた滅多に起こらない事象の起こる回数の分布
確率質量関数
[Math Processing Error]
平均
[Math Processing Error]
2次モーメント
[Math Processing Error]
分散
[Math Processing Error]
乱数の発生は関数 rpois()
を用いる
rpois(15, lambda=1) # 強度1の Poisson 分布(15個)
rpois(15, lambda=10) # 強度10の Poisson 分布(15個)
[1] 1 1 0 0 2 1 3 1 2 2 0 2 0 1 0 [1] 5 5 7 14 12 9 15 13 11 12 15 9 11 11 12
dpois()
で計算できる成功確率 [Math Processing Error] の幾何分布 [Math Processing Error]
成功するまでの失敗の回数の分布
確率質量関数
[Math Processing Error]
平均
[Math Processing Error]
2次モーメント
[Math Processing Error]
分散
[Math Processing Error]
乱数の発生は関数 rgeom()
を用いる
rgeom(15, prob=0.1) # 成功確率0.1の幾何分布(15個)
[1] 10 8 0 14 4 4 7 1 17 0 12 4 18 6 7
dgeom()
で計算できる非負の値をとる実数上の関数 [Math Processing Error] の積分で表される
[Math Processing Error]
連続型の確率変数 [Math Processing Error] の平均
積分 [Math Processing Error] が絶対収束するとき [Math Processing Error] の 平均 (または 期待値)を
[Math Processing Error]で定義する.
確率変数の変換 [Math Processing Error] の期待値
[Math Processing Error]
[Math Processing Error] 次の モーメント (あるいは 積率 )
[Math Processing Error]
分散
[Math Processing Error]
区間 [Math Processing Error] 上の一様分布 [Math Processing Error]
区間 [Math Processing Error] のランダムな値の選択を表す分布
確率密度関数
[Math Processing Error]
平均
[Math Processing Error]
2次モーメント
[Math Processing Error]
分散
[Math Processing Error]
乱数の発生は関数 runif()
を用いる
runif(8) # 区間(0,1)上の一様乱数(8個)
runif(8,min=-1,max=1) # 区間(-1,1)上の一様乱数(8個)
[1] 0.49946704 0.71491110 0.95495568 0.82934889 0.90071176 0.72491703 [7] 0.95460709 0.05374135 [1] 0.4250631 -0.2691035 0.2848561 -0.8230214 -0.6001004 0.2108312 [7] 0.4485277 0.1194693
dunif()
で計算できる確率密度関数
[Math Processing Error]
中心極限定理により
[Math Processing Error]
の分布は標準正規分布で近似できる
乱数の発生は関数 rnorm()
を用いる
rnorm(8) # 標準正規乱数(8個)
rnorm(8,mean=1,sd=2) # 平均1分散4=2^2の正規乱数
[1] -1.0415610 0.4890693 -0.3832103 0.5305454 0.8067650 -0.4723838 [7] 0.5588717 -0.9576539 [1] 0.3379030 0.9060437 -0.9385253 1.9152042 1.7616494 -0.3043127 [7] -0.1051255 -2.2703849
dnorm()
で計算できる数値実験の雛形は以下のようになる
mc <- 10000 # 実験回数を指定
my_random <- function(){...} # 乱数生成のプログラム
my_dist <- function(){...} # 必要であれば理論曲線を定義
#' ただし多くの場合 d"乱数名"で定義されているのでそれらを用いればよい
my_data <- replicate(mc, my_random()) # Monte-Carlo実験
tibble(x = my_data) |>
ggplot(aes(x = x)) +
geom_histogram(aes(y = after_stat(density))) + # 乱数の分布(密度)の表示
geom_function(fun = my_dist) # 理論曲線(確率密度)
[Math Processing Error] を [Math Processing Error] 上の 一様分布に従う独立な確率変数とする. このとき
とおくと,
[Math Processing Error] は独立かつともに標準正規分布に従う.
これをグラフに描画して確認せよ.
(この変換を Box-Muller 変換と呼ぶ)
確率密度関数
[Math Processing Error]
ただしガンマ関数 [Math Processing Error] は以下で定義される :
[Math Processing Error]
乱数の発生は rgamma()
を用いる
rgamma(8, shape=3, rate=1) # ガンマ分布(8個)
rgamma(8, shape=1, rate=3) # 異なるパラメタのガンマ分布(8個)
[1] 6.481296 1.101669 1.789558 2.721562 1.867393 3.929603 3.716059 1.619351 [1] 0.12705345 0.29010919 0.13539477 0.65610965 0.65454715 0.45005740 [7] 0.06506521 0.24201427
dgamma()
で計算できるパラメータ [Math Processing Error] の指数分布 [Math Processing Error] ([Math Processing Error])
[Math Processing Error]
乱数の発生は関数 rexp()
を用いる
rexp(8) # レート1の指数分布(8個)
rexp(8, rate=0.5) # レート0.5の指数分布(8個)
[1] 0.2971141 0.8282641 0.1062713 1.0470949 0.4686237 0.1370634 0.8208445 [8] 0.5895637 [1] 6.0392029 0.3504312 3.8923789 3.1656723 7.1144343 2.3956082 1.7845715 [8] 8.6433869
自由度 [Math Processing Error] の [Math Processing Error] 分布 [Math Processing Error] ([Math Processing Error])
[Math Processing Error]
平均
[Math Processing Error]
分散
[Math Processing Error]
乱数の発生は関数 rchisq()
を用いる
rchisq(8, df=1) # 自由度1のカイ二乗分布(8個)
rchisq(8, df=4) # 自由度4のカイ二乗分布(8個)
[1] 0.256273815 0.133892084 0.744504122 0.423792840 1.820522910 0.008746049 [7] 0.100833057 0.004118928 [1] 3.9615463 3.9434070 3.3170712 5.1062313 2.1834806 8.2690229 0.9530277 [8] 6.7029781
dchisq()
で計算できる確率密度関数
[Math Processing Error]
平均
[Math Processing Error]
分散
[Math Processing Error]
[Math Processing Error] を標準正規分布に従う確率変数, [Math Processing Error] を自由度 [Math Processing Error] の [Math Processing Error] 分布に従う確率変数とし, [Math Processing Error] は独立であるとする. このとき確率変数
[Math Processing Error]
は自由度 [Math Processing Error] の [Math Processing Error] 分布に従う
乱数の発生は関数 rt()
を用いる
rt(8, df=1) # 自由度1のt分布(8個)
rt(8, df=4) # 自由度4のt分布(8個)
[1] -0.8603049 1.3303186 1.3934689 1.1588687 -0.9532670 0.2008022 [7] -2.2803641 8.1541092 [1] -1.061210317 0.271303888 0.599451883 0.511474812 -1.099819378 [6] 2.175315413 -0.792157105 0.003551097
dt()
で計算できる[Math Processing Error] を標準正規分布に従う確率変数, [Math Processing Error] を自由度 [Math Processing Error] の [Math Processing Error] 分布に従う確率変数とし, [Math Processing Error] は独立であるとする. このとき確率変数
[Math Processing Error]
は自由度 [Math Processing Error] の [Math Processing Error] 分布に従うことを確認しなさい.
確率密度関数
[Math Processing Error]
平均
[Math Processing Error]
分散
[Math Processing Error]
[Math Processing Error] をそれぞれ自由度 [Math Processing Error] の [Math Processing Error] 分布に従う独立な 確率変数とする.このとき, 確率変数
[Math Processing Error]
は自由度 [Math Processing Error] の [Math Processing Error] 分布に従う
乱数の発生は関数 rf()
を用いる
rf(10, df1=4, df2=7) # 自由度4,7のF分布(10個)
rf(10, df1=7, df2=12) # 自由度7,12のF分布(10個)
[1] 0.76077219 0.96795866 1.51164425 0.04859897 0.77748127 2.31010908 [7] 2.26888359 2.54313649 0.32709178 0.54686465 [1] 0.4621440 0.7729189 0.5492382 6.5475659 1.4143816 0.8721753 1.4613714 [8] 0.3499648 0.9492275 1.1487631
df()
で計算できる[Math Processing Error] をそれぞれ 自由度 [Math Processing Error] の [Math Processing Error] 分布に従う 独立な確率変数とする. このとき, 確率変数
は自由度 [Math Processing Error] の [Math Processing Error] 分布に従うことを確認しなさい.