統計検定2級 コレログラム

# はじめに
今回は統計検定2級を勉強する中で、コレログラムという単語が出てきたので、学んでいきます！

# 🔍 コレログラム（correlogram）とは？

## 📝 一言でいうと？
<strong>「相関関係を見える化した図」</strong>です！

---

## 🧭 コレログラムの2つのタイプ

### ① 時系列のコレログラム

**「過去のデータ」と「今のデータ」の関係（相関）を調べる図。**

たとえば…

- 「昨日の気温」と「今日の気温」が似ていたら → 相関が強い ✅
- こういう関係を**棒グラフ**で見える化するのが「時系列コレログラム」

#### ✅ こんなときに使う
- データに**繰り返しパターン（周期性）**があるかを知りたいとき
- ARIMAなどの時系列モデルを作るときの事前チェック

#### 📌 よく使う関数
- `acf()`（自己相関）
- `pacf()`（偏自己相関）

---

### ② 多変量のコレログラム（相関行列ヒートマップ）

**いろんな変数同士の相関をまとめて見られる図。**

たとえば、次のような関係を調べたいとき：

| 変数A | 変数B | 相関 |
|--------|--------|------|
| 身長   | 体重   | 強い |
| 血液型 | 身長   | 弱い |

📊 こういった相関を**色で見せる図**がコレログラム（ヒートマップ）です。

#### ✅ こんなときに使う
- 変数同士の関係をざっくり把握したいとき
- モデルに使う変数を選びたいとき
- 多重共線性のチェック


## ✅ サンプル問題①：基本的な意味の理解

**問題：**  
ある商品の1週間分の売上データが次のように与えられています（単位：個）：[20, 22, 21, 19, 24, 25, 20]


このデータの<strong>自己相関（lag=1）</strong>を求めたところ、正の値となりました。

この結果から言えることとして、最も適切なのはどれか。

**選択肢：**

A. 毎日の売上は完全に独立である  
B. 前日の売上が高いと、今日の売上も高くなる傾向がある  
C. 売上は季節的要因で動いている  
D. 売上は週の後半に向けて必ず増加している

**正解：**  
👉 **B**

**解説：**  
「lag=1 の自己相関が正」＝「前日と今日で似た動きをしている」という意味です。  
つまり、「前日が高いと今日も高い」傾向があるといえます。

```python:
# 📌 Google Colab専用：日本語フォントのインストール（初回のみ必要）
!apt-get -y install fonts-ipafont-gothic > /dev/null

# 📦 ライブラリのインポート
import matplotlib.pyplot as plt
import pandas as pd
from statsmodels.graphics.tsaplots import plot_acf
from matplotlib.font_manager import FontProperties

# 🎌 日本語フォントの設定（Colab用）
jp_font = FontProperties(fname="/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf")
plt.rcParams['font.family'] = jp_font.get_name()

# 📊 1問目のサンプルデータ（売上データ）
sales = [20, 22, 21, 19, 24, 25, 20]
ts = pd.Series(sales)

# 📈 ACFプロット
plt.figure(figsize=(8, 4))
plot_acf(ts, lags=5, zero=False)
plt.title("自己相関関数（ACF） - 売上データ", fontproperties=jp_font)
plt.xlabel("ラグ（遅れ）", fontproperties=jp_font)
plt.ylabel("相関係数", fontproperties=jp_font)
plt.grid(True)
plt.tight_layout()
plt.show()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/a7388f93-2d69-4589-a62f-e95bf7117908.png)




## ✅ サンプル問題②：ACF・PACFの解釈

**問題：**  
ある時系列データについて ACF と PACF を調べたところ、以下のような結果となった：

- **ACF**：lag=1 で大きな正の相関、それ以降は急激に減衰  
- **PACF**：lag=1 でのみ有意、lag=2 以降はほぼ 0

このとき、適したモデルとして最も適切なのはどれか。

**選択肢：**

A. MA(1) モデル  
B. AR(1) モデル  
C. AR(2) モデル  
D. ランダムウォークモデル

**正解：**  
👉 **B**

**解説：**  
PACF が lag=1 で急に0になる（= 有意なのは1だけ）ときは、**AR(1)** モデルの特徴です。

# 📊 ACFとPACFの違いまとめ（表）

| 項目 | ACF（自己相関関数） | PACF（偏自己相関関数） |
|------|----------------------|---------------------------|
| 日本語名 | 自己相関関数 | 偏自己相関関数 |
| 意味 | 今と過去の相関（全体的な関係） | 今と過去の**直接的な**相関（他のラグの影響を除く） |
| 例（lag=2） | 今日と一昨日の相関をそのまま見る | 昨日を除いた上で、今日と一昨日の関係だけを見る |
| 主な用途 | MAモデル（移動平均）の次数推定 | ARモデル（自己回帰）の次数推定 |
| グラフの特徴 | ゆるやかに減衰することが多い | 特定のlagで急に0になることが多い |
| 見た目 | 棒グラフ（lagが進むごとに高さが変わる） | 同様だが、意味合いが異なる |
| 関数例（Python） | `plot_acf()` | `plot_pacf()` |
| よくある使い方 | 時系列に周期性があるか調べる | ARモデルのラグ数を決める |


```python:
# 📌 Google Colab専用：日本語フォントのインストール
!apt-get -y install fonts-ipafont-gothic > /dev/null

# 📦 ライブラリ
import matplotlib.pyplot as plt
import pandas as pd
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from matplotlib.font_manager import FontProperties

# 🎌 日本語フォント設定
jp_font = FontProperties(fname="/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf")
plt.rcParams['font.family'] = jp_font.get_name()

# 📊 AR(1)モデルっぽい時系列データ（手作業で作成）
data = [10, 12, 13, 14, 15, 15, 16, 17, 18, 18, 17, 18, 19]
ts = pd.Series(data)

# 🎨 ACFプロット（lags=6に設定）
plt.figure(figsize=(8, 4))
plot_acf(ts, lags=6, zero=False)
plt.title("自己相関関数（ACF）", fontproperties=jp_font)
plt.xlabel("ラグ（遅れ）", fontproperties=jp_font)
plt.ylabel("相関係数", fontproperties=jp_font)
plt.grid(True)
plt.tight_layout()
plt.show()

# 🎨 PACFプロット（lags=5に修正してエラー回避）
plt.figure(figsize=(8, 4))
plot_pacf(ts, lags=5, zero=False, method="ywm")
plt.title("偏自己相関関数（PACF）", fontproperties=jp_font)
plt.xlabel("ラグ（遅れ）", fontproperties=jp_font)
plt.ylabel("偏相関係数", fontproperties=jp_font)
plt.grid(True)
plt.tight_layout()
plt.show()
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/a641aab5-66b7-4c25-9d1a-5c264113045a.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599049/47c7f707-072e-4165-b4fe-ce09d3109342.png)