※ 全体的に重要なことは書いていないので、軽く目を通す程度で良いと思います。
説明変数および応答変数は、以下のような尺度のいずれかを用いて測定される。
名義・順序尺度はカテゴリー変数や離散変数と呼び、カテゴリーに対する観測値の数、つまりカウントデータや頻度データが記録される。
連続的な測定値については連続変数と呼び、ここの連続データが記録される。
特に、連続変数のことを量的、離散変数のことを質的と呼ぶことがしばしばある。
質的な説明変数を因子(factor)、そのカテゴリーを水準(level)と呼び、量的な説明変数を共変量(covariate)と呼ぶ。
一般的に、確率変数をイタリックのアルファベット大文字、観測値を対応する小文字で表す。
また、ギリシャ文字はパラメータを、それに対応するイタリックのアルファベットの小文字は推定量または推定値を表す。
場合により(こっちの方が多い気がしますが…)、記号\(\hat{}\)を推定量または推定値の表現に使われる。
ベクトルと行列は、ランダムであるかどうかに関わらず、それぞれ太文字を使う。
また、上付き添字の\(^T\)は行列の転置を表し、列ベクトルを行ベクトルで表したい時は、\(\boldsymbol{y} = [Y_1, ..., Y_n]^T\)とする。
連続的な確率変数\(Y\)の確率密度関数(\(Y\)が離散変数の場合、確率関数)を以下のように表記する。
\[f(y; \theta{})\] ここで、\(\theta\)は分布パラメータであり、必ずしも1つとは限らない。 また、和を表すために\(.\)、平均を表すために\(\bar{}\)を用いて、以下のように表現できる。
\[\bar{y} = \frac{1}{N}\sum^N_{i = 1}{y_i} = \frac{1}{N}y.\]
確率変数\(Y\)の期待値(平均値)と分散はそれぞれ、\(E(Y)\)、\(var(Y)\)と表される。
多くの推定量や検定統計量の標本分布は正規分布と関係がある。
それらは、正規分布に従う確率変数として関係するか、中心極限定理を通して漸近的に関係するか。
確率変数\(Y\)が平均\(\mu{}\)、分散\(\sigma^2\)の正規分布に従うとき、その確率密度関数は、 \[f(y; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}}exp[-\frac{1}{2}(\frac{y-\mu}{\sigma})^2]\] であり、\(Y \sim N(\mu, \sigma^2)\)と表す。
確率変数\(Y_1, ..., Y_n\)は独立に正規分布に従い、\(Y_i \sim N(\mu_i, \sigma_i^2), i = 1, ..., n\)であり、 \[W = a_1Y_1+a_2Y_2+...+a_nY_n\] とする(\(a_1, ..., a_n\)は定数)。この時、\(W\)も正規分布に従い(正規分布の和は正規分布)、 \[W = \sum^n_{i=1}{a_iY_i} \sim N(\sum^n_{i=1}a_i\mu_i, \sum^b_{i=1}a_i^2\sigma_i^2)\] である。
set.seed(123)
# 正規乱数を発生させるために平均と標準偏差を定義
mu1 <- 2
sd1 <- 1
mu2 <- -1
sd2 <- 0.4
# それぞれの正規分布からのランダムサンプリング
(data <- tibble(d_norm1 = rnorm(1000, mu1, sd1),
d_norm2 = rnorm(1000, mu2, sd2)))
## # A tibble: 1,000 x 2
## d_norm1 d_norm2
## <dbl> <dbl>
## 1 1.44 -1.40
## 2 1.77 -1.42
## 3 3.56 -1.01
## 4 2.07 -1.05
## 5 2.13 -2.02
## 6 3.72 -0.584
## 7 2.46 -0.900
## 8 0.735 -0.0335
## 9 1.31 -0.726
## 10 1.55 -1.18
## # … with 990 more rows
# それぞれの正規乱数をヒストグラムとして描画
ggplot(data) + geom_histogram(aes(x = d_norm1), fill = "#F8766D", color = "#F8766D", alpha = 0.5) +
geom_histogram(aes(x = d_norm2), fill = "#00BFC4", color = "#00BFC4", alpha = 0.5)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
# それぞれの和のヒストグラムを描画
ggplot(data) +
geom_histogram(aes(x = d_norm1 + d_norm2), fill = "#7CAE00", color = "#7CAE00", alpha = 0.5)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
# 最後に和の正規性の検定
shapiro.test(x = (data$d_norm1 + data$d_norm2))
##
## Shapiro-Wilk normality test
##
## data: (data$d_norm1 + data$d_norm2)
## W = 0.99859, p-value = 0.6164
set.seed(123)
# ポアソン乱数を発生させる
L <- 3.4
d_pois <- rpois(1000, L)
# 負の対数尤度を計算する
logL <- function(lambda) -sum(dpois(d_pois, lambda, log = TRUE))
# 負の対数尤度を最適化する
stats4::mle(logL, start = list(lambda = 1))
##
## Call:
## stats4::mle(minuslogl = logL, start = list(lambda = 1))
##
## Coefficients:
## lambda
## 3.392
# データの平均を計算
mean(d_pois)
## [1] 3.392
特になし
データの作成
(data <- tibble(season = seq(1:13),
cyclone = c(6, 5, 4, 6, 6, 3, 12, 7, 4, 2, 6, 7, 4)))
## # A tibble: 13 x 2
## season cyclone
## <int> <dbl>
## 1 1 6
## 2 2 5
## 3 3 4
## 4 4 6
## 5 5 6
## 6 6 3
## 7 7 12
## 8 8 7
## 9 9 4
## 10 10 2
## 11 11 6
## 12 12 7
## 13 13 4
サイクロン数は0以上無限大の離散値であるため、ポアソン分布に従う確率変数であると言える。
また、ポアソン分布の唯一のパラメータlambdaは、平均値である。
mean(data$cyclone)
## [1] 5.538462
もう1つのアプローチとして、最尤推定がある。
logL <- function(lambda) -sum(dpois(data$cyclone, lambda, log = TRUE))
stats4::mle(logL, start = list(lambda = 1))
## Warning in dpois(data$cyclone, lambda, log = TRUE): 計算結果が NaN になりま
## した
##
## Call:
## stats4::mle(minuslogl = logL, start = list(lambda = 1))
##
## Coefficients:
## lambda
## 5.538548
lambdaが最尤推定値のポアソン分布を描画する。
set.seed(123)
tibble(x = c(1:25), y = dpois(x, mean(data$cyclone))) %>% ggplot() +
geom_line(aes(x = x, y = y)) + theme_bw()