R によるデータ分析

Report
「社会情報学部への
満足度調査」の分析
寺尾 敦
青山学院大学社会情報学部
atsushi [at] si.aoyama.ac.jp
Twitter: @aterao
問題意識
• 2013年度新入生は,青山学院大学社会情報
学部での生活に満足しているのか?
• 社会情報学部での満足感は,どのような要素
から構成されているのか?
• 要素間の関係は?
• 社会情報学部の総合的な満足は,これらの
要素から説明できるか?
分析を始める前に
• データの CSV ファイル(satisfy.csv)と,大津起
夫先生自作の関数 twowayhist.R のファイル
を ,「ドキュメント」の中に入れる.
– ドキュメントの中に,授業用のフォルダを作って,
その中に入れてもよい.
– CSV ファイルの1行目に変数名が示されている
– 各行は1人のデータ
– twowayhist.R は開かない(ダブルクリックしても中
は見えない).
– CSV から xlsx に形式を変更しないように!
R の起動
• [スタートボタン] から,
[すべてのプログラム]
を選択する.
[スタート] ボタン
• R 2.15.1 を選択する
(2.15.1 は R のバージョ
ンです)
作業ディレクトリの変更
• R は,どこか特定のフォルダで仕事をしている.
– working directory と呼ぶ
• 目の前に見えているのは,そのフォルダにあ
るファイルのみ.
• そこで,仕事場所を変更する.
• [ファイル] メニューから
[ディレクトリの変更] を
選択する.
• Z ドライブの下にある,
[マイ ドキュメント] を選
択して,[OK] ボタンを押
す.
• データの CSV ファイル
を他の場所(たとえば,
授業用のフォルダ)に
保存した場合は,その
場所(フォルダ)を選択
する.
getwd() と入力して [Enter] キーを
押したとき,移動先のディレクトリ
が表示されれば OK.「マイ ドキュ
メント」の場合,
"Z:/My Documents"
と表示される.
twowayhist 関数を使う準備
• [ファイル] メニューから,
[スクリプトを開く] を選
択する.
twowayhist.R
マイ ドキュメント,あるいは,授業用フォルダ(上図でのXP)に保存
した,twowayhist.R というファイルを選択して [開く] ボタンを押す.
twowayhist.R (twowayhist という関数を定義したスクリプト)が開かれる.
スクリプトを開いているウィンドウがアクティブになっている状態で,[編
集] メニューから [全て実行] を選択する.
R Console のウィンドウでスクリプトが実行される.エラーがなく終了すれ
ば,twowayhist 関数が使用可能になっている.
スクリプトを開いているウィンドウを閉じる.
データの読み込みと確認
> data <- read.csv("satisfy.csv")
> head(data)
データの先頭6行が表示される
> tail(data)
データを読み込み,
data という名前の
箱を用意して,し
まっておく.
データの末尾6行が表示される
> attach(data)
おまじない
データ分析
1. データをよく見る
– まずは各変数ごと.次に2変数の組み合わせ.
– データを図示する
– 数値でデータを要約・記述する
2. 問題意識にそって,必要な分析を行う
データの図示(1変数・ヒストグラム)
> hist(sleep)
ヒストグラムを描く.
( )の中は,関数に与える引数(ひきすう)である.
上の入力では,sleep という変数(睡眠時間のデータ
が入っている)のヒストグラムを描く.
引数を変えて,各変数についてのヒストグラムを描く.
グラフの x 軸範囲,y 軸範囲,タイトルなどを調整するには,
オプションを指定する.
データを分類する階級の指定.
2.5 から 10.5 までを1きざみ
hist(sleep, breaks=seq(2.5, 8.5, by=1), xlim=c(0,10),ylim=c(0,25),
xlab="睡眠時間(hour)", ylab="度数", main="1日の睡眠時間")
x 軸の範囲を 0 から 10にする.
xlab は x 軸のラベル.main は図のタイトル
改行すると自動的に + が表示される
[ファイル]  [新しいスクリプト] でエディタを開き,
そこにスクリプトを書いて実行することもできる.
実行したい部分をマウスで選択する
データの図示(1変数・箱ひげ図)
> boxplot(data[,c(11:26)])
コンマを忘れずに.c は小文字.
箱ひげ図を描く.
各変数の分布が大まかに把握できる.
data[,c(11:26)]
は,data の11列目から26列目の変数(社会情報
学部への満足感を測定するために,みんなで考
えた項目)を意味する.必要に応じて変更する.
箱ひげ図はデータの分布を
図示している.
それぞれの変数において,
箱の中には全体の 1/2 の
データが入っている.
箱の中にひかれている線は
中央値(データを大きさの順
に並べたときの中央の値)の
位置を表す.
直観的には,「ひげ」は上位
1/4 および下位 1/4 のデータ
が入っている範囲を表す.
はずれ値(他とはかなり異
なっている値)は,○で示さ
れている.
データの図示(2変数・散布図)
• 2変数間の関係を把握するためには,散布図
を描く.散布図を描くために R に用意されてい
る関数は plot である.
• 今回のデータでは,plot 関数を使うと少し
困ったことが生じる.そこで,twowayhist 関数
を使って散布図を描く.
> plot(wday_work, sleep)
plot 関数で描いた散布図.
sleep は1日の睡眠時間,
wday_work は,平日(水曜
日以外)1日平均での,授業
に関連した学習時間.
2つの変数の値が同じ人に
ついては,○は重ねて描画
されている.これでは2変数
の関係がつかみづらいので,
twowayhist 関数を用いる.
> twowayhist(wday_work, sleep)
データポイントが重なっ
たところは,円を大きくし
て描画している.
• 2変数すべての組み合わせについて散布図
を描いてみることが望ましい.
• 変数が多くてそれが大変なときには,いくつ
かの興味ある組み合わせについて描く.
• plot 関数は,引数(関数への入力)にデータ
セット全体,あるいはその一部を指定すること
が可能.
– 指定された変数の組み合わせすべてについて散
布図が描かれる.
> plot(data[,c(2:10)])
数値によるデータの記述(1変数)
• データを図示して,分布の確認を行ったら,
データを数値で要約する.
– 平均値
– 中央値:測定値を大きさの順に並べて中央の値.
– 第1四分位数:測定値を大きさの順に並べて,下
から ¼ に位置する値.
– 第3四分位数:測定値を大きさの順に並べて,上
から ¼ に位置する値.
– 最小値,最大値
> summary(sleep)
Min. 1st Qu. Median Mean 3rd Qu. Max.
3.000 6.000 6.000 6.167 7.000 8.000
連続型の変数(ある範囲の実数すべてを取りうる変数)の変数
名を summary 関数への入力として指定すると,最小値,第1四
分位数,中央値,平均値,第3四分位数,最大値が返される.
最小値,第1四分位数,中央値,第3四分位数,最大値の5つの
数値でデータを要約することを,5数要約(5-number summary)
と呼ぶ.
• 第3四分位数から第1四分位数を引き算して
2で割った値は,四分位偏差(quartile
deviation)と呼ばれ,データの散らばり具合を
表す統計量となる.
• データの散らばり具合を表す統計量としては,
分散(variance)あるいは標準偏差(standard
deviation)がよく用いられる.標準偏差は,分
散の正の平方根である.
• 睡眠時間の分散の計算
> var(sleep)
[1] 1.084906
• 睡眠時間の標準偏差の計算
> sd(sleep)
[1] 1.041588
データが正規分布に従ってい
ると見なせる場合,
平均±(標準偏差×2)
の範囲に,おおよそすべての
データが収まる.
数値によるデータの記述(2変数)
• 2変数の間の関係は散布図で把握した.
• 2変数間の関係を数値で記述するには,相関
係数を計算する.
– 散布図ですべての点が右上がりの直線上に乗れ
ば,相関係数は+1.
– すべての点が右下がり直線上に乗れば,相関係
数は -1.
– 2つの変数に直線的な関係がまったくないときに
は,相関係数は 0.
> cor(wday_work, sleep)
[1] -0.03569063
睡眠時間と,学習時間(水曜日以外,授業関連)の相関.
> cor(data)
とすると,data に格納されている,すべての変数間の相関係
数の一覧(相関行列)が得られる.
> cor(data[ ,c(2:10)])
というように,一部の列(ここでは1列目から9列目の,時間
データ)を指定することも可能.
> cor(data[,c(2:10)])
sleep
work
club
wday_work
wday_self
wed_work
wed_self
end_work
end_self
sleep
work
club
wday_work
wday_self
wed_work
wed_self
end_work
end_self
sleep
1.000000000
-0.245190754
0.181810703
-0.035690634
0.062269421
-0.007550614
-0.018530802
0.038438066
0.119271482
wed_work
-0.007550614
-0.159588354
-0.293070546
0.346235465
-0.018419389
1.000000000
-0.017431567
0.818702147
-0.012403995
work
-0.24519075
1.00000000
-0.26352796
0.01799971
0.24325893
-0.15958835
0.30800199
-0.22880508
0.24816133
wed_self
-0.01853080
0.30800199
-0.13540597
0.11981612
0.84723058
-0.01743157
1.00000000
0.13145109
0.94801232
club
0.18181070
-0.26352796
1.00000000
-0.05221075
-0.16846853
-0.29307055
-0.13540597
-0.25139595
-0.12985260
end_work
0.03843807
-0.22880508
-0.25139595
0.52207280
0.15547334
0.81870215
0.13145109
1.00000000
0.19278328
wday_work
-0.03569063
0.01799971
-0.05221075
1.00000000
0.08015232
0.34623546
0.11981612
0.52207280
0.12019800
end_self
0.11927148
0.24816133
-0.12985260
0.12019800
0.83021016
-0.01240399
0.94801232
0.19278328
1.00000000
wday_self
0.06226942
0.24325893
-0.16846853
0.08015232
1.00000000
-0.01841939
0.84723058
0.15547334
0.83021016
問題意識1
• 2012年度新入生は,青山学院大学社会情報
学部での生活に満足しているのか?
• 社会情報学部での満足感は,どのような要素
から構成されているのか?
• 要素間の関係は?
• 社会情報学部の総合的な満足は,これらの
要素から説明できるか?
• 総合的満足度を測定することを意図して用意
した,2つの変数を検討する.
– 「社会情報学部に入学してよかったと思う」(変数
名:total1)
– 「後輩に青山学院大学社会情報学部の受験を勧
めたい」(変数名:total2)
• 社会情報学部への総合的満足度を測定する
ための2項目のうち,「社会情報学部に入学
してよかったと思う」という項目への回答を分
析してみる.
• 最初に,データをヒストグラムで図示する.以
下のようにスクリプトを書いて実行する.
hist(total1, breaks=seq(0.5, 6.5, by=1.0),
xlab="満足度", ylim=c(0,30), main="社会情報学部への
総合的満足度(1)")
項目:社会情報学部に入学してよかったと思う
1:まったくそう思わない
2:そう思わない
3:あまりそう思わない
4:ややそう思う
5:そう思う
6:非常にそう思う
• データを数値で要約・記述する.
> summary(total1)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 4.000 4.000 4.093 5.000 6.000
> var(total1)
[1] 1.104472
> sd(total1)
[1] 1.050939
分析からわかること
• 分布は左右対称から少し右側に頂上がずれ
た形をしている.
• 6段階評定の中央値が4.0,平均値が 4.1,標
準偏差が 1.1 であった.
• 個人差はあるが,全体としては,社会情報学
部に入学したことに満足感を抱いている人が
多い.
• 社会情報学部への総合的満足度を測定する
ための2項目のうち,「後輩に青山学院大学
社会情報学部への入学を勧めたい」という項
目への回答も,分析してみよ.
• これら2項目を比較してみよ.
• 総合的満足度を測定する2変数の相関を検
討してみよう.
– まずは,散布図を描く
– 次に,相関係数を計算する.相関係数は直線的
関係の強さを表す.
> twowayhist(total1, total2)
> cor(total1,total2)
[1] 0.6341197
2変数の相関係数は正の値で,かなり高い.つまり,
第1の項目で評定値の高い人ほど,第2の項目でも評
定値が高い傾向が認められる.
問題意識2
• 2012年度新入生は,青山学院大学社会情報
学部での生活に満足しているのか?
• 社会情報学部での満足感は,どのような要素
から構成されているのか?
• 要素間の関係は?
• 社会情報学部の総合的な満足は,これらの
要素から説明できるか?
因子分析とは
• いくつかの変数が相互に(ある程度)高い相
関をもつとき,それらの変数は何か共通のも
のを測定していると考えられる.
• それぞれの変数でのスコアは,この共通部分
と,それぞれの変数に独自の部分からできて
いると考えられる.
– 共通因子(common factor):共通部分
– 独自因子(unique factor):独自の部分
• 因子分析の目的
– 共通因子を用いて変数間の相関関係を説明する.
– 共通因子との関係によって,各変数の性質をコン
パクトな形で記述する.
– 変数や個体を分類する.
国語
国語
独自
社会
社会
独自
英語
英語
独自
数学
数学
独自
理科
理科
独自
文系能力
理系能力
満足感調査の因子分析
• 社会情報学部の満足感調査での項目(総合
的な満足度の項目を除く)の背後に,どのよう
な因子があるかを探索する.
• これらの因子は,社会情報学部の満足感を
構成する要素であると考えられる.
• いくつの因子があるのかは不明のため,因子
数も探索的に決める.
– 「授業への満足」のように,あらかじめ3つあるい
は4つの因子を想定していたが,因子分析を行っ
てみないと,この想定が妥当であったかどうかは
わからない.
• 注意:この実習では60人程度のデータで因子
分析を行うが,因子分析を行うためのデータ
としてはやや小さい.
因子分析の実行
> factanal(data[,c(11:26)], factors=4, rotation="promax")
factanal 関数で因子分析を実行する.
因子数(factorsで指定)は,2から5ぐらいまでを
変えて実行してみる.
回転方法として promax 回転を指定する.これについて
は,体験演習では解説を行わない.
因子の解釈(2因子)
Loadings:
Factor1
item11 0.395
item12 0.868
item13 0.378
item14 0.205
item15 0.238
item16 0.894
item17 -0.311
item18 -0.276
item19 0.647
item20 0.861
item21 0.163
item22 0.589
item23 -0.222
item24
item25
item26 0.293
Factor2
0.275
-0.141
-0.153
0.349
0.617
-0.189
0.710
0.745
0.291
0.477
0.787
0.245
0.489
それぞれの因子に
関係の深い項目
(因子負荷量の高
い項目)がどのよう
な項目であったか,
質問票に戻って調
べる.それぞれの
因子が何を意味し
ているか,解釈を
試みる.
• 因子1に負荷の高い(因子1をよく表す)項目
– 12:社会情報学部の,授業の内容・難易度に満足し
ている.(.868)
– 16:社会情報学部の授業はわかりやすいと思う.
(.894)
– 19:社会情報学部にはよい先生がたくさんいると思う.
(.647)
– 20:この学部の授業に興味を持って参加している.
(.861)
– 22:この学部で学んだことは、自分の将来に役立つと
思う.(.589)
• 因子2に負荷の高い項目
– 15:社会情報学部の先生とは,気軽にかかわること
ができる.(.617)
– 17:社会情報学部では,よい友人と出会える機会が
多いと思う.(.710)
– 18:社会情報学部には,一生付き合えるような友人
が多くいる.(.745)
– 23:社会情報学部には,よい友達がたくさんいる.
(.787)
– 26:社会情報学部の先生は,ユーモアセンスのある
人が多い.(.489)
• 何因子のときの結果が最も解釈しやすいだろ
うか?
• 2因子構造だとして,第1因子はなんだろう
か?
問題意識3
• 2012年度新入生は,青山学院大学社会情報
学部での生活に満足しているのか?
• 社会情報学部での満足感は,どのような要素
から構成されているのか?
• 要素間の関係は?
• 社会情報学部の総合的な満足は,これらの
要素から説明できるか?
• 2つの因子を,以下のように解釈してみる.
– 第1因子:社会情報学部カリキュラムへの満足
– 第2因子:社会情報学部での居心地の良さ
• 2変数の相関係数を計算したように,これら2
つの因子関の相関を計算することができる.
因子関相関
Factor Correlations:
Factor1 Factor2
Factor1 1.000 0.513
Factor2 0.513 1.000
最近のバージョンの R では,因
子間相関が出力される.出力
されないバージョンでは,以下
のようにすればよい.
> result <- factanal(data[,c(10:24)], factors = 2, rotation="promax")
> solve(t(result$rotmat) %*% result$rotmat)
[,1] [,2]
[1,] 1.0000000 0.5133203
[2,] 0.5133203 1.0000000
t は転置行列,solve は逆行列を求める関数.
%*% は行列の積を計算する演算.
• 因子関相関は比較的高い正の値になった.
「社会情報学部での居心地の良さ」と「社会情
報学部カリキュラムへの満足」は,異なる概
念であるが,関連がある.
問題意識4
• 2012年度新入生は,青山学院大学社会情報
学部での生活に満足しているのか?
• 社会情報学部での満足感は,どのような要素
から構成されているのか?
• 要素間の関係は?
• 社会情報学部の総合的な満足は,これらの
要素から説明できるか?
重回帰分析
• 総合的な満足度は,他の変数(項目)の値の
線形結合によって決まると考える.
– 従属変数(結果側):総合的満足度
– 独立変数(原因側):他の測定項目
Yi  1 X i1  2 X i 2    p X ip  
• 原因側の変数として,因子分析で抽出された
次元(たとえば,「カリキュラムへの満足」)ご
とに,個人に得点を付与する.
– 因子を構成する項目の合計得点(逆転項目に注
意)
– 因子得点
分析例
• 2因子モデルでの,2つの因子を構成する項
目へのスコアを個人ごとに合計して, 「社会
情報学部カリキュラムへの満足」と 「社会情
報学部での居心地の良さ」のスコアとする.
• 社会情報学部への総合的満足度を測定する
2項目のスコアを合計して,「社会情報学部へ
の総合的な満足度」のスコアとする.
• 社会情報学部での居心地の良さ
> curriculum <- item12 + item16 + item19 + item20 +
item22
• 社会情報学部カリキュラムへの満足
> comfort <- item15 + item17 + item18 + item23 + item26
• 社会情報学部への総合的な満足度
> total <- total1 + total2
• 重回帰分析を行う
– 独立変数1:社会情報学部での居心地の良さ
(comfort)
– 独立変数2:社会情報学部カリキュラムへの満足
(curriculum)
– 従属変数:総合的満足(total)
> result <- lm(total ~ curriculum + comfort)
> summary(result)
重回帰分析の結果の出力
Call:
lm(formula = total ~ curriculum + comfort)
Residuals:
Min
1Q
-3.2674 -1.0694
Median
0.0271
3Q
0.7153
Max
3.4315
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.35697
1.14683
1.183
0.2422
curriculum
0.41291
0.04215
9.796 2.59e-13 ***
comfort
-0.09142
0.05032 -1.817
0.0751 .
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.298 on 51 degrees of freedom
Multiple R-squared: 0.6545,
Adjusted R-squared: 0.6409
F-statistic: 48.3 on 2 and 51 DF, p-value: 1.702e-12
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.35697
1.14683
1.183
0.2422
curriculum
0.41291
0.04215
9.796 2.59e-13 ***
comfort
-0.09142
0.05032 -1.817
0.0751 .
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
カリキュラムへの満足を一定とすると,カリキュラムへの満
足が 1 ポイント上昇したとき,社会情報学部への総合的な
満足度は 0.41 ポイント上昇する.
この上昇は統計的に有意である.
2つの独立変数の比較では,相対的に,カリキュラムへの
満足の方が総合的な満足に関与が強い.
Residual standard error: 1.298 on 51 degrees of freedom
Multiple R-squared: 0.6545, Adjusted R-squared: 0.6409
F-statistic: 48.3 on 2 and 51 DF, p-value: 1.702e-12
2つの独立変数で,従属変数の分散(個人差)のうち,およ
そ 65% が説明できる.
レポート
• 実習で行った質問紙調査を,レポートにまと
める.配布した論文を参考にする.
– 目的
– 方法
– 結果
– 考察
– (引用文献)
• すべての分析を行う必要はないが,レポート
としてまとまりのあるものを作成すること.
社会調査士
• 2012年度入学生からは,社会調査士の資格
が取得できる予定です.
– 統計入門(科目認定済)
– 社会統計(科目認定済)
– 社会統計演習(科目認定済)
– 社会調査法I(科目認定済)
– 社会調査法II (科目認定済)
– 社会調査実習,および,社会・人間特別講義A

similar documents