---
title: "第8回　データを分析する（1）：相関分析と散布図"
subtitle: "行動計量学（行動科学分析法入門）"
author: "小野原 彩香"
date: "令和8年度"
output:
  html_document:
    toc: true
    toc_float: true
    theme: flatly
    highlight: tango
    df_print: paged
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE,
                      fig.width = 7, fig.height = 5)
library(tidyverse)
```

---

## 本日の目標

1. 相関係数の意味を理解し，2変数の関係を解釈できる
2. Rで相関係数を計算し（`cor()`），有意性検定を実行できる（`cor.test()`）
3. 散布図と相関係数を組み合わせてデータを説明できる

---

## 1. 相関とは

### 2変数の関係を数値で表す

**相関（correlation）**とは，2つの変数の間にある直線的な関係の強さと方向を表す指標です。

| 相関の方向 | 意味 | 例 |
|-----------|------|-----|
| **正の相関** | 一方が増えると他方も増える | 身長と体重 |
| **負の相関** | 一方が増えると他方は減る | 睡眠時間と疲労度 |
| **無相関** | 2変数に直線的関係がない | 誕生月と学力 |

### ピアソンの積率相関係数 *r*

$$r = \frac{\sum(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum(x_i - \bar{x})^2 \cdot \sum(y_i - \bar{y})^2}}$$

- 値の範囲：**-1 ≤ r ≤ 1**
- *r* = +1：完全な正の相関
- *r* = -1：完全な負の相関
- *r* = 0：相関なし

### 相関係数の目安（絶対値）

| |r| の値 | 解釈 |
|----------|------|
| 0.0〜0.2 | ほとんど相関なし |
| 0.2〜0.4 | 弱い相関 |
| 0.4〜0.6 | 中程度の相関 |
| 0.6〜0.8 | 強い相関 |
| 0.8〜1.0 | 非常に強い相関 |

> 目安であり，分野や文脈によって解釈が変わることに注意。

---

## 2. 散布図で関係を「見る」

```{r}
# iris データ：がく片の長さと花びらの長さの散布図
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) +
  geom_point(color = "steelblue", alpha = 0.6) +
  labs(title = "散布図：がく片の長さと花びらの長さ",
       x = "がく片の長さ (cm)", y = "花びらの長さ (cm)") +
  theme_bw()
```

```{r}
# 種ごとに色を分ける
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) +
  geom_point(alpha = 0.6) +
  geom_smooth(method = "lm", se = FALSE) +
  scale_color_brewer(palette = "Set1") +
  labs(title = "種ごとの散布図と回帰直線",
       x = "がく片の長さ (cm)", y = "花びらの長さ (cm)") +
  theme_bw()
```

---

## 3. Rで相関係数を計算する

### cor()：相関係数の計算

```{r}
# 2変数の相関係数
cor(iris$Sepal.Length, iris$Petal.Length)
```

```{r}
# 複数変数の相関行列
iris |>
  select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) |>
  cor()
```

```{r}
# 四捨五入して見やすく
iris |>
  select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) |>
  cor() |>
  round(2)
```

---

## 4. cor.test()：相関の有意性検定

相関係数が「偶然ではなく本当に存在する」かどうかを検定します。

### 仮説の設定

- **帰無仮説 H₀**：母相関係数 ρ = 0（相関はない）
- **対立仮説 H₁**：母相関係数 ρ ≠ 0（相関がある）

```{r}
# 相関の有意性検定
cor.test(iris$Sepal.Length, iris$Petal.Length)
```

### 結果の読み方

```
Pearson's product-moment correlation

t = 21.646, df = 148, p-value < 2.2e-16
95 percent confidence interval:
 0.8270363 0.9055080
sample estimates:
      cor
0.8717538
```

| 項目 | 意味 |
|------|------|
| `t` | t統計量 |
| `df` | 自由度（n - 2） |
| `p-value` | p値（< 0.05 なら有意） |
| `95% CI` | 相関係数の95%信頼区間 |
| `cor` | 標本相関係数 r の推定値 |

---

## 5. 結果の報告

論文・レポートでの記述例：

> がく片の長さと花びらの長さの間には強い正の相関が見られた，*r*(148) = .87，*p* < .001。

**APA形式での相関係数の書き方：**
- イタリック体で `r`
- 括弧内に自由度（= n - 2）
- p 値は .001, .01, .05 の水準で報告

---

## 6. 注意：相関と因果

> **相関関係は因果関係を意味しない！**

相関があっても，それは「一緒に変化する」ことを示すだけで，
「原因と結果」の関係があるとは限りません。

- アイスクリームの売り上げと溺死事故件数の相関 → 第3の変数（気温）
- 「見かけ上の相関」（spurious correlation）に注意

---

## 演習

### 演習1：散布図の作成

`mtcars` データを使って，馬力（`hp`）と燃費（`mpg`）の散布図を作成してください。
- 回帰直線（`geom_smooth(method = "lm")`）を追加する
- 適切なタイトル・軸ラベルをつける

```{r, eval=FALSE}
ggplot(mtcars, aes(x = ___, y = ___)) +
  geom_point(color = "___") +
  geom_smooth(method = "lm", se = TRUE) +
  labs(title = "___", x = "___", y = "___") +
  theme_bw()
```

### 演習2：相関係数の計算と検定

1. `mtcars` の `hp` と `mpg` の相関係数を計算してください
2. `cor.test()` で有意性を検定し，結果を解釈してください

```{r, eval=FALSE}
# 相関係数
cor(mtcars$___, mtcars$___)

# 有意性検定
cor.test(mtcars$___, mtcars$___)
```

### 演習3：相関行列

`mtcars` の `mpg`, `hp`, `wt`, `qsec`（0〜1/4マイルタイム）の相関行列を作成し，
どの変数の組み合わせが最も強い相関を持つか調べてください。

### 演習4：結果の記述

演習2の結果を，論文・レポートの記述として1〜2文でまとめてください。
（例：「〇〇と〇〇の間には，〇〇な相関が見られた，r(〇〇) = .〇〇, p < .〇〇。」）

---

## 本日のまとめ

- 相関係数 *r* は -1〜+1 の範囲で2変数の直線的関係を表す
- `cor()` で相関係数，`cor.test()` で有意性検定
- 散布図と組み合わせてデータを理解する
- **相関関係 ≠ 因果関係**

---

## 宿題・予習

- 演習2・3の結果をスクリプトに保存
- 次回は**カテゴリデータの分析（カイ二乗検定）**を学びます
- 教科書のカイ二乗検定に関する章を読んでおく
