1.調査の過程
調査票を用いた研究は以下のようなプロセスで進められます.
- 問題意識(Research Question)の明確化
- 調査項目の作成
- 予備調査
- 本調査
- データ分析
- 論文・報告書作成
この実習では本調査から後のプロセスを行います.
「学生生活調査」では,学習時間と,それに関連する変数について測定を行います. これにより,学習を中心とした学生生活の実態を明らかにすることと, これら変数が学部への満足とどの程度関連しているかを検討することです.
2.R の起動とデータの読み込み
CoursePower で配布している,執筆中書籍の第1章を参照して, R をインストールしてください. インストール後,1.3節を学習してください.
R を起動してください.第2章を参照して, 「学生生活調査」のデータファイル(slife2019.csv)のある場所を作業ディレクトリとしてください.
データを読み込みます.第2章の2.2.2節を参照してください.
data <- read.csv("slife2019.csv")
と入力して [Enter / Return] キーを押すと, data という名前の箱にデータが読み込まれます. 箱の名前はいくつかの例外を除いて任意ですが,わかりやすい名前にしてください. 読み込んだデータを確認するには,
head(data)
tail(data)
とします.
データファイルの先頭行は変数名です.睡眠時間(sleep),アルバイト時間(job), サークル・部活動時間(club),平日の学習時間(wday_work,wday_self), 水曜日の学習時間(wed_work,wed_self),週末の学習時間(end_work,end_self), 満足度1(total1),満足度2(total2),の順に並んでいます. 調査票での具体的な項目は, 論文「青山学院大学社会情報学部1年生の学習時間に関する調査」の表1を参照してください. 学習時間の work は授業に関連した学習を,self は授業と関係のない学習を意味します. 水曜日を他の平日と区別しているのは, 青山学院大学では水曜日に配置されている授業が少ないためです.
データファイルの先頭行にある変数名を使えるようにするために, データを attach します.R コンソールで
attach(data)
としてください.括弧の中はデータが保存された箱の名前です.
3.ヒストグラムの作成
データ分析の第一歩はデータを視覚化してよく観察することです. ここではヒストグラムを作成して分布を観察しましょう. ヒストグラムを描く関数は hist です. たとえば,睡眠時間のヒストグラムを描きたいのならば,
hist(sleep)
とします.しかし,これではヒストグラムが不完全なので, いくつかの属性を指定します.たとえば,R エディタで
hist(sleep,
breaks = seq(from = 2.5, to = 10.5, by = 1), # 階級の設定
xlim = c(0, 12), ylim = c(0, 100), # 横軸と縦軸の範囲
xlab = "睡眠時間(hour)", ylab = "度数", # 横軸と縦軸のラベル
main = "", # タイトルは不要
col = "grey" # 灰色で塗りつぶし
)
というコードを書いて実行します.# に続く記述は注釈です(無視されます).
ヒストグラムについての解説は,執筆中書籍第2章の2.3節を参照してください.
4.要約統計量の計算
平均値や分散など, データの特徴を要約するためにデータから計算される値を 要約統計量(summary statistic)と呼びます. 執筆中書籍の第3章を参照してください.
平均値を計算するには mean 関数を用います.
mean(sleep)
とすれば,睡眠時間の平均値が得られます.
NA と記録された欠損値がある場合には,
mean(sleep, na.rm = TRUE)
とします.中央値は median 関数で求められます.
median(sleep)
とします.
分散および標準偏差はそれぞれ var 関数と sd 関数で得られます.
var(sleep)
sd(sleep)
とします.
四分位数(3つあります)、最小値、最大値の, 5つの数値でデータを要約することを 5数要約(5-number summary)と呼びます. 5数要約を行う関数は summary です.
summary(sleep)
平均値もあわせて表示されます.
第3四分位数と第1四分位数の差は 四分位範囲(interquartile range)と呼ばれます. これは IQR 関数で求められます.
IQR(sleep)
とします.この値を2で割ると 四分位偏差(semi-interquartile rage)が得られます.
5.散布図(バブルチャート)の作成
2変数の関係を視覚的に検討するためには散布図を描きます. たとえば,満足度1(「社会情報学部に入学してよかったと思う」)と 満足度2(「後輩に社会情報学部の受験を勧めたい」)の散布図を描くには,
plot(total1, total2,
xlab = "満足度(1)", # 横軸ラベル
ylab = "満足度(2)", # 縦軸ラベル
main = "" # タイトル不要
)
とします.Mac では軸ラベルに日本語を入れるとうまく表示されないので, plot 関数を実行する前に
par(family = "HiraKakuProN-W3")
としてください.
満足度は,「まったくそう思わない」を1点,以下1点刻みで, 「非常にそう思う」を6点としています.
得られた散布図を見ると,200人ほどのデータのはずなのに, プロットされている点はごく少ないですね. これは2変数がそれぞれ1から6の整数値しかとらないため. 点が重なってプロットされてしまっているからです.
そこで,点が重なったらその文だけ面積を大きくしていく, バブルチャートを描くことにします. バブルチャートを描く標準の関数は R に用意されていませんが, plot 関数を使って描くことができます. しかし,R の初心者にとって少し難しいので, ここでは 大津起夫先生 が作成して公開してくれている twowayhist という関数を使いましょう. R では関数を自由に定義して使うことができます. この関数を CoursePower で配布していますので, 作業ディレクトリに保存してください. 保存したら,R コンソールで
source("twowayhist.R")
とします.これで twowayhist 関数が使えるようになります.
この関数の使い方は plot 関数とほとんど同じです.
twowayhist(total1, total2,
xlab = "満足度(1)",
ylab = "満足度(2)",
main = ""
)
としてください.バブルチャートが描かれます.
6.相関係数
散布図で2変数の関係を視覚的に把握し, 直線的な関係が読み取れたら,相関係数を計算してみましょう. 相関係数は cor 関数で求めることができます.たとえば, 満足度1と満足度2の相関係数を求めるには,
cor(total1, total2)
とします.NA と記録される欠損値が含まれる場合には,
cor(total1, total2, use = "complete.obs")
としてください.
7.レポート
2020年度の「学生生活調査」データを使用して, 参考論文 青山学院大学社会情報学部1年生の学習時間に関する調査 をまねたレポートを作成してください. この論文にある分析をそのままなぞってもいいですし,興味ある分析を行ってもいいです. 分析には R を使用してください.このウェブページでの解説に使用した, 2019年度のデータと比較してみると面白いかもしれません.ぜひやってみてください. レポートの書き方は第1回のレポートで学習しました.- 目的
- 方法
- 結果
- 考察
- (引用文献)
という構成にしてください.参考論文での記述はコピーして使ってかまいません.