# 模擬調査データのコードブック

対象ファイル: `mock_survey.csv`

## データの概要

この授業では、成人1,000人が生活や仕事についてのアンケートに答えたと想定した、架空のデータを使います。年齢や年収のほか、周囲の人に頼れると感じているか（社会的サポート）、ストレスをどの程度感じているか（ストレス）、生活に満足しているか（生活満足度）についての回答が入っています。

1,000人分のデータで、1行が1人、1列が1変数です。最初の行には列名が入っています。

## データの内容

### 変数一覧

データの各列には、年齢や年収などの情報が入っています。分析で扱うこうした情報を「変数」と呼びます。下の表では、CSVの列名を「変数名」、その意味を「内容」、記録されている数字や文字の意味を「値・単位」にまとめています。例えば、`income` の値が300なら、その人の年収は300万円という意味です。

すべての変数名を覚える必要はありません。分析で使う列が出てきたときに、この表で意味を確認してください。なお、このデータには未回答などによる値の抜け（欠損値）はありません。

| 変数名 | 内容 | 値・単位 |
|---|---|---|
| `id` | 架空の回答者を区別する番号 | 1〜1,000。1人に1つずつ割り当て、同じ番号の人はいません |
| `region` | 架空の地域 | `A` / `B`。各500人 |
| `age` | 年齢 | 20〜79歳、1歳刻み |
| `education_years` | 修了した課程までの教育年数 | 9年（中学校）/ 12年（高校）/ 14年（短大などの2年課程）/ 16年（4年制大学）/ 18年（修士課程） |
| `income` | 個人の年収 | 万円単位で、0以上の整数。0は年収がないことを表し、未回答ではありません |
| `gender` | 性別 | `female`（女性）/ `male`（男性）/ `other`（その他） |
| `employment_status` | 就業区分 | `regular`（正規雇用）/ `nonregular`（非正規雇用）/ `self_employed`（自営業等）/ `not_employed`（非就業） |
| `marital_status` | 婚姻状況 | `never_married`（未婚）/ `married`（既婚）/ `divorced`（離別）/ `widowed`（死別） |
| `household_size` | 本人を含む世帯人数 | 1〜6人 |
| `weekly_work_hours` | 週労働時間 | 0〜70時間、1時間刻み |
| `support_1`〜`support_5` | 社会的サポートについての5つの質問への回答 | 各質問に1〜5で回答。数字の意味は下の「回答の選択肢」を参照 |
| `stress_1`〜`stress_5` | ストレスについての5つの質問への回答 | 同上 |
| `life_satisfaction_1`〜`life_satisfaction_5` | 生活満足度についての5つの質問への回答 | 同上 |

表の最後の3行は、それぞれ5列分をまとめて書いています。例えば、`support_1`〜`support_5` は、`support_1`、`support_2`、`support_3`、`support_4`、`support_5` の5列です。これらを含めて、CSVには全部で25列あります。

#### 補足：架空のデータを作る際の設定
このデータは授業用に乱数から作成しており、実際の人口構成や就業率を再現するものではありません。このデータから計算した平均値も、実在する集団の平均としては使えません。分析の練習に使うため、次のように設定を簡略化しています。

- 教育年数には留年や休学の年数を加えていません。在学中の人は、修了済みの課程までの年数としています。
- 既婚者は世帯人数を2人以上としています。現実には、既婚者の単身世帯もあります。
- 非就業者の週労働時間は0時間としています。ただし、非就業でも年収がある人は含まれています。
- 若年者の就業確率が高いのは教材上の設定です。在学状況は表していません。
- 性別の「その他」は人数が少ないため、授業では性別による群比較を主な分析例には使いません。

## 質問項目と回答の読み方

### 回答の選択肢

社会的サポート、ストレス、生活満足度については、それぞれ5つ、合計15の質問を用意しています。どの質問も、自分にどの程度あてはまるかを次の5つの選択肢から選ぶ形式です。このような回答形式を「5件法」と呼びます。

CSVには、選択肢の文章に代えて1〜5の数字が入っています。例えば、`support_1` の値が4なら、「困ったときに相談に乗ってくれる人がいる」という質問に「ややあてはまる」と答えたことを表します。

| CSVに入っている値 | 回答の意味 |
|---|---|
| 1 | まったくあてはまらない |
| 2 | あまりあてはまらない |
| 3 | どちらともいえない |
| 4 | ややあてはまる |
| 5 | とてもよくあてはまる |

続いて、それぞれの質問文を確認しましょう。以下の質問と回答は、分析を練習するために用意したものです。

#### 補足：質問文について
質問文は授業用に作成しました。社会的サポートやストレス、生活満足度を適切に測れるかどうかは検証していません。実際の研究で使う尺度として紹介しているものではありません。計算した得点を診断の基準として使うこともできません。

### 社会的サポート

必要なときに頼れる人がいると思えるかを尋ねます。

| 変数名 | 質問文 |
|---|---|
| `support_1` | 困ったときに相談に乗ってくれる人がいる。 |
| `support_2` | つらいときに気持ちを受け止めてくれる人がいる。 |
| `support_3` | 必要なときに助けを頼める人がいる。 |
| `support_4` | 私のことを気にかけてくれる人がいる。 |
| `support_5` | 悩みがあっても、頼れる人がいない。 |

### ストレス

ここ1か月の状態を振り返って回答します。

| 変数名 | 質問文 |
|---|---|
| `stress_1` | やるべきことに追われていると感じる。 |
| `stress_2` | 日々の生活で、気が張りつめている。 |
| `stress_3` | 小さなことでも、いら立ちを感じる。 |
| `stress_4` | 気がかりなことが頭から離れない。 |
| `stress_5` | 気持ちに余裕を持って過ごせている。 |

### 生活満足度

現在の生活全体への満足を尋ねます。

| 変数名 | 質問文 |
|---|---|
| `life_satisfaction_1` | 今の生活に満足している。 |
| `life_satisfaction_2` | 今の暮らしは、自分の望む生活に近い。 |
| `life_satisfaction_3` | 生活を全体として見れば、うまくいっていると感じる。 |
| `life_satisfaction_4` | 今の暮らしには、満足できることが多い。 |
| `life_satisfaction_5` | 今の生活には、不満が多い。 |

## 得点の計算方法


社会的サポートについては、頼れる人がいると感じている程度を、5つの質問への回答から1つの点数にまとめます。ストレスと生活満足度も、それぞれの5つの回答をまとめます。このように、複数の質問への回答をまとめて求める点数を「尺度得点」と呼びます。

このデータでは、1人ずつ、尺度ごとに5つの回答の平均を求めます。ただし、そのまま平均を求める前に、5番の回答だけを計算用の点数に置き換える必要があります。社会的サポートを例に、その理由と計算方法を確認しましょう。

### 5番の回答を計算用の点数に置き換える

社会的サポートの1〜4番は、頼れる人がいるかを尋ねています。例えば、1番の「困ったときに相談に乗ってくれる人がいる」に5（とてもよくあてはまる）と答えた人は、頼れる人がいると感じています。

一方、5番は「悩みがあっても、頼れる人がいない」です。この質問に5と答えた人は、頼れる人がいないと感じています。同じ5という回答でも、1〜4番とは意味の向きが逆になっています。このような質問を「逆転項目」と呼びます。

#### 補足：なぜ逆転項目を設けるのか
アンケートでは、質問の内容にかかわらず「あてはまる」を選びやすい人がいます。すべての質問を同じ向きで尋ねると、その人が本当に頼れる人がいると感じているのか、単に「あてはまる」を選びやすいのかを区別しにくくなります。

こうした回答の偏りの影響を抑える目的で、「頼れる人がいる」と「頼れる人がいない」のように、逆向きの質問を組み合わせることがあります。ただし、逆転項目を入れれば必ず偏りを防げるわけではありません。質問の読み違いや混乱を招く場合もあります（[van Sonderenほか, 2013](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0068967)）。

この教材では、逆転処理を練習できるように、各尺度の5番に逆転項目を設けています。

そこで、5番の回答を次のように置き換えます。

| 元の回答 | 計算に使う点数 |
|---|---|
| 1 | 5 |
| 2 | 4 |
| 3 | 3 |
| 4 | 2 |
| 5 | 1 |

この置き換えは、`6 - 元の回答` で計算できます。例えば、5番への回答が2（あまりあてはまらない）なら、計算に使う点数は `6 - 2 = 4` です。これで、5つとも点数が高いほど、頼れる人がいると感じている方向にそろいます。この処理を「逆転処理」と呼びます。

ストレスと生活満足度も、このデータでは5番だけが逆転項目です。`support_5`、`stress_5`、`life_satisfaction_5` の3列に同じ処理を行い、1〜4番は元の回答をそのまま使います。

### 1人分の5つの点数から平均を求める

例えば、ある人の社会的サポートへの回答が、1番から順に4、3、5、4、2だったとします。5番の2を4に置き換えてから、5つの点数を足して5で割ります。

```text
元の回答：       4、3、5、4、2
計算に使う点数： 4、3、5、4、4
社会的サポートの得点 = (4 + 3 + 5 + 4 + 4) / 5 = 4.0
```

この人の社会的サポートの尺度得点は4.0です。同じ計算を1,000人それぞれについて行います。ストレスと生活満足度についても、各尺度の1〜4番と、逆転処理後の5番を足して5で割ります。

### 計算した点数を新しい変数として追加する

先ほどの例では、1人分の回答から社会的サポートの得点4.0を求めました。分析でこの得点を使うには、誰の得点がいくつなのかを、元のデータの各行に対応させて記録しておく必要があります。

CSVに入っているのは元の回答だけなので、Rに読み込んだデータに、計算結果を入れる列を追加します。このように新しい列を作ることが「変数を追加する」という操作です。ここでは、次の2段階で変数を追加します。

1. **逆転処理後の点数を入れる列を作る。** 例えば、`support_5` の回答から `6 - support_5` を計算し、その結果を新しい列 `support_5_r` に入れます。元の回答を確認できるように、`support_5` は残します。ストレスと生活満足度も同様に、`stress_5_r` と `life_satisfaction_5_r` を追加します。末尾の `_r` は、逆転処理後の点数であることを区別するために付けています。
2. **5つの点数の平均を入れる列を作る。** 社会的サポートなら、各行の `support_1`〜`support_4` と、先ほど追加した `support_5_r` を足して5で割り、その結果を新しい列 `support_mean` に入れます。先ほどの例の人なら、この列に4.0が入ります。ストレスと生活満足度も、それぞれ同じ方法で平均を求め、新しい列に入れます。

この操作で、逆転処理後の点数を入れる3列と、尺度得点を入れる3列の、合計6列を追加します。計算と列の追加はRのコードで行うので、手元のCSVを直接編集する必要はありません。

尺度得点を入れる列の名前と、その得点の読み方を下の表にまとめます。変数名の `mean` は平均という意味です。3つの尺度得点はいずれも1〜5の範囲で、小数になることもあります。

| 尺度 | 尺度得点の変数名 | 得点が高い人ほど |
|---|---|---|
| 社会的サポート | `support_mean` | 周囲の人に頼れると感じている |
| ストレス | `stress_mean` | ストレスを強く感じている |
| 生活満足度 | `life_satisfaction_mean` | 生活に満足している |

