Rを学びたい Step22 一致推定量と不偏推定量

## はじめに
Rを学びたい Step22です。今回は一致推定量と不偏推定量に関して学びます。

## 一致推定量とは
一致推定量は、標本を使って母集団のパラメータ（例えば母平均や母分散）を推定するための方法で、標本サイズを大きくすると真の値に近づく性質を持つものです。

例：標本平均
	•	標本平均（sample mean,  \bar{X} ）は、母平均  \mu  の一致推定量です。
	•	袋からランダムに10個、50個、100個と標本を増やしていくと、その標本平均は母平均に近づいていきます。

```math
標本平均：
\bar{X} = \frac{1}{n} \sum_{i=1}^n X_i
```
```math
標本分散：
\tilde{s}^2 = \frac{1}{n} \sum_{i=1}^n (X_i - \bar{X})^2

```



 ## 不偏推定量とは 
 不偏推定量は、「平均するとちょうど正しい値を教えてくれる方法」です。

例
	•	あなたがお菓子を袋にたくさん入れました。その袋の中身を少しだけ取り出して「1つの重さ」を調べるとします。
	•	何度か繰り返して調べた「1つの重さの平均」を計算すると、それは「お菓子1つの本当の重さ」にちょうど一致します。

つまり、不偏推定量は「平均的にはいつも正しい」という性質を持っています！


```math
標本平均 : \\
\bar{X} = \frac{1}{n} \sum_{i=1}^n X_i
```

```math
不偏分散の定義: \\
s^2 = \frac{1}{n-1} \sum_{i=1}^n (X_i - \bar{X})^2

```


### 一致推定量と不偏推定量の違い

| **性質**            | **一致推定量**                                             | **不偏推定量**                                             |
|---------------------|----------------------------------------------------------|----------------------------------------------------------|
| **定義**            | 標本サイズが無限に大きくなると、推定量が真の母数に確率的に収束。              | 推定量の期待値が真の母数に一致。                                     |
| **標本サイズ依存**    | 標本サイズが大きいほど精度が向上。                                   | 標本サイズに関わらず、期待値が母数と一致。                              |
| **小さい標本での精度** | 小さい標本では母数から外れることがある。                              | 小さい標本でも平均的に正しい推定値を提供。                               |


:::note info
一致推定量も不偏推定量も点推定です。**点推定（Point Estimation）** とは、母集団のパラメータを単一の値（点）で推定する方法のことです。一致推定量や不偏推定量は、その推定値を計算する手法の性質を表しています。
:::


## 一致推定量をRで学ぶ

```r
# 一致推定量: 標本平均が母平均に収束することを確認

set.seed(123) # 再現性のため
true_mean <- 50  # 母平均
true_sd <- 10    # 母標準偏差

# 標本サイズを徐々に増やす
sample_sizes <- seq(10, 1000, by = 10)

# 標本平均を計算
sample_means <- sapply(sample_sizes, function(n) {
  sample_data <- rnorm(n, mean = true_mean, sd = true_sd) # 標本を生成
  mean(sample_data) # 標本平均を計算
})

# 結果のプロット
plot(sample_sizes, sample_means, type = "o", col = "blue",
     main = "Sample Mean Converging to True Mean",
     xlab = "Sample Size", ylab = "Sample Mean")
abline(h = true_mean, col = "red", lty = 2, lwd = 2) # 真の母平均
legend("topright", legend = c("Sample Mean", "True Mean"), 
       col = c("blue", "red"), lty = c(1, 2), lwd = c(1, 2))
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/d9bc2fd1-f9e1-6b35-0217-227f8fd7e2a8.png)

## 不偏推定量をRで学ぶ

```r
# 不偏推定量: 標本分散が母分散に対応することを確認

set.seed(123) # 再現性のため
true_variance <- 100  # 母分散 (標準偏差^2)

# 標本サイズを徐々に増やす
sample_sizes <- seq(10, 1000, by = 10)

# 標本分散（不偏分散）を計算
sample_variances <- sapply(sample_sizes, function(n) {
  sample_data <- rnorm(n, mean = 0, sd = sqrt(true_variance)) # 標本を生成
  var(sample_data) # 標本分散 (不偏分散)
})

# 結果のプロット
plot(sample_sizes, sample_variances, type = "o", col = "blue",
     main = "Unbiased Variance Estimation",
     xlab = "Sample Size", ylab = "Sample Variance")
abline(h = true_variance, col = "red", lty = 2, lwd = 2) # 真の母分散
legend("topright", legend = c("Sample Variance", "True Variance"), 
       col = c("blue", "red"), lty = c(1, 2), lwd = c(1, 2))
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/dc398589-2633-9a53-d9b6-022033f0bd00.png)