SlideShare a Scribd company logo
Rによる教育データ分析入門


          小林雄一郎
  (大阪大学大学院/日本学術振興会)

外国語教育メディア学会 (LET) 2011年大会 WS
       於 名古屋学院大学
      2011年8月6日(土)             1
Agenda

• 1. 自己紹介
• 2. 統計処理言語R(講義)
• 3. Rを使った成績データの視覚化(実習)
  –   基本操作
  –   データの読み込み
  –   統計処理(記述統計)
  –   グラフ作成(ヒストグラム、箱ひげ図)
• 4. Rを使った成績データの統計処理(実習)
  – グラフ作成(散布図)
  – 統計処理(回帰、相関、検定)
• 5. Rを使った成績データの多変量解析(デモ)
• 6. Rを学ぶための参考文献とウェブサイト

                            2
Agenda

• 1. 自己紹介
• 2. 統計処理言語R(講義)
• 3. Rを使った成績データの視覚化(実習)
  –   基本操作
  –   データの読み込み
  –   統計処理(記述統計)
  –   グラフ作成(ヒストグラム、箱ひげ図)
• 4. Rを使った成績データの統計処理(実習)
  – グラフ作成(散布図)
  – 統計処理(回帰、相関、検定)
• 5. Rを使った成績データの多変量解析(デモ)
• 6. Rを学ぶための参考文献とウェブサイト

                            3
自己紹介

• 小林 雄一郎 (こばやし ゆういちろう)
 – 大阪大学大学院言語文化研究科言語文化専攻(D3)
 – 日本学術振興会特別研究員(DC2)
 – http://www.geocities.jp/langstat/


• 関心領域
 • テキストマイニング、コーパス言語学、自然言語処理、言語統計




                                       4
78/5        1/3          5/0          0/7
      SN        SNN           SN          SNN
5
                                                       3/0         4/58
                                                        SN          SNN
997.5=>DEH   997.5 <DEH 76.21 <MES     76.21=>MES
             31.22 <OOB   31.22=>OOB                345.4 <MRF   345.4=>MRF
                               56.83 <MES   56.83=>MES
                                       – 様々な母語を持つ学習者のクラスタリング etc. etc.
                                       – 日本人英語と母語話者英語の差異の分析
                                       – 機械学習を用いた英語習熟度の自動推定
                                                    • 日本人英語学習者の英作文をマイニング
                                                                              最近の主な研究テーマ
Rと統計とわたし

•   R・統計(2005年~)
•   統計数理研究所共同利用研究員(2008年~)
•   Osaka.R 運営委員(2010年~)
•   Rに関するワークショップ
    –   JACET九州・沖縄支部ESP研究会 Corpus Workshop (2007年10月)
    –   英語コーパス学会 (2009年4月)
    –   Osaka Workshop on Digital Humanities 2010 (2010年3月)
    –   LETメソドロジー研究部会(2011月7日)
    –   etc.
• 共著書『言語研究のための統計入門』
  (くろしお出版、2010年)


                                                          6
Agenda

• 1. 自己紹介
• 2. 統計処理言語R(講義)
• 3. Rを使った成績データの視覚化(実習)
  –   基本操作
  –   データの読み込み
  –   統計処理(記述統計)
  –   グラフ作成(ヒストグラム、箱ひげ図)
• 4. Rを使った成績データの統計処理(実習)
  – グラフ作成(散布図)
  – 統計処理(回帰、相関、検定)
• 5. Rを使った成績データの多変量解析(デモ)
• 6. Rを学ぶための参考文献とウェブサイト

                            7
統計処理言語R

• Rとは何か?
 – 1990年代前半、オークランド大学のRobert Ihaka氏とRobert
   Gentleman氏が開発
 – 1997年以降、R Development Core Teamによって、継続的に開発
 – 「統計処理」と「グラフィックス」のためのソフトウェア
 – フリーで公開
 – 追加パッケージも充実
 – Windows、Mac、Linuxといった様々なOSで動作可能




                                                8
• Rで何ができるのか?
 – 様々な数値計算(四則計算から数学関数を使った複雑な計算まで)
 – 大量のデータを「ベクトル」として扱うことが可能
 – 様々なグラフィック機能を搭載
 – 外部ファイル(テキストファイルやExcelファイル)からのデータ読み込み
   が可能
 – SPSS以上に高度な統計処理(多変量解析、データマイニングなど)
   → 何より、計算速度が速い


• Rはどのように操作するのか?
 – 基本的な操作は、コンソール画面にコマンドを入力しなくても、GUI画面
   のメニュー・バーから実行できるため、ある程度は直感で操作可能
 – 複数行にわたるコマンドを入力する際は、R Editorを起動し、右クリック
   から「カーソル行または選択中のRコードを実行」を選択
                                           9
• Rはどこから入手できるのか?
 – R-project (http://www.r-project.org/) からダウンロード可能


• Rはどうやってインストールするのか?
 –   ダウンロードしたインストーラ(Windowsの場合、exeファイル)を起動
 –   「契約書」に同意し、ひたすら「次へ」
 –   設定によっても異なるが、30~50MBくらいの容量が必要
 –   舟尾・高浪 (2005)、ジュールほか (2010) などを参照




                                                      10
• 今日のWSで行うこと
 – Rの基本操作
 – Excelファイルなどで保存されている成績データの視覚化
 – 基本的な統計処理
        ↓
   教育データ(成積データ etc.)の処理に特化した内容


• 今日のWSで行わないこと
 – Rに関する体系的な説明
 – 高度なプログラミング(行列計算、ループ etc.)に関する説明
 – 高度な統計処理(多変量解析、ネットワーク分析 etc.)の実習
      ↓
 – たとえRにとって大事なことでも、(今日扱う)教育データ処理に関係しな
   いものは対象外
                                    11
教育データ処理の一般的な流れ


データ収集
データ収集   テキスト処理   統計処理     質的分析




定期試験    語彙表の作成     検定     結果の解釈
英作文     用例の抽出    多変量解析    教育的な考察
 etc.     etc.     etc.     etc.




                                 12
Agenda

• 1. 自己紹介
• 2. 統計処理言語R(講義)
• 3. Rを使った成績データの視覚化(実習)
  –   基本操作
  –   データの読み込み
  –   統計処理(記述統計)
  –   グラフ作成(ヒストグラム、箱ひげ図)
• 4. Rを使った成績データの統計処理(実習)
  – グラフ作成(散布図)
  – 統計処理(回帰、相関、検定)
• 5. Rを使った成績データの多変量解析(デモ)
• 6. Rを学ぶための参考文献とウェブサイト

                            13
Rの基本操作

• Rの起動
  – スタートメニューのプログラム(or デスクトップのアイコン)をクリック


• Rの基本操作
# 四則計算
# 命令(赤字)を入力し、「Enter」を押すと、答え(青字)を返す
# 全て半角で入力すること!
# 行頭の > は入力しないこと!
> 1+2
[1] 3
> (2+3)*4/5
[1] 4




                                          14
• データを読み込む(手入力)
# 関数「c」を用いたベクトルの生成
# 「Eng」という名前の変数(=データを入れる箱)に、5人分の英語の点数を入れる
> Eng <- c(76, 90, 84, 65, 70)
# 変数「Eng」の中身を確認
> Eng
[1] 76 90 84 65 70

# 【練習問題 1】
# 関数「c」を用いて、以下の10人の点数を、「Math」という名前の変数に入れなさい
# 76点、85点、63点、100点、72点、54点、80点、66点、92点、77点
# そして、Mathの中身を画面に表示しなさい

 – 関数「c」の名前は、concatenate(鎖状につなぐ)に由来




                                            15
• 記述統計
# 平均
> mean(Math)
[1] 76.5
# 最大値
> max(Math)
[1] 100
# 最小値
> min(Math)
[1] 54
# 標準偏差
> sd(Math)
[1] 13.72953
# 要約統計量(最小値、下側25%点、中央値(50%点)、平均値、上側25%点、最大値)
> summary(Math)
  Min. 1st Qu. Median Mean 3rd Qu. Max.
  54.00 67.50 76.50 76.50 83.75 100.00
# その他、sum(総和)、var(不偏分散)など                 16
Rを使った成績データの視覚化

• データを読み込む(Excelファイルから)
  – たくさんのデータ(あるいは、その一部だけ)を簡単に読み込むには?
  – 例として、「得点サンプルA」を使用
  – 800人分の成績データ(クラス、性別、学部の情報つき)

# クリップボード経由で読み込む(Windowsのみ)
# 読み込みたい範囲をマウスで指定し、キーボードの「Ctrl」+「C」でコピーしてから
> dat001 <- read.delim("clipboard")
# (大きいデータなので)データの最初の部分だけを表示
> head(dat001)
 student class sex faculty score
1 S001 1 M A                72
2 S002 1 F           A      94               Macでは、
3 S003 1 M A                90      read.delim(pipe(“pbpaste”))
4 S004 1 F           A      88
5 S005 1 F           A      70
6 S006 1 M A                82
                                                                  17
• データの全体像をざっくりと把握する
# 要約統計量(データの5列目、つまりは、scoreだけを対象にする)
> summary(dat001[,5])
  Min. 1st Qu. Median Mean 3rd Qu. Max.
 32.00 54.00 65.00 64.06 73.00 98.00
# ヒストグラム
> hist(dat001[,5])
# ヒストグラムのデザインやラベルを指定
> hist(dat001[,5], col="red", xlab="students",
  ylab="score", main="Test", xlim=c(0, 100))
    【引数(ひきすう)】
      col: グラフの色
      xlab: X軸(横軸)のラベル
      ylab: Y軸(縦軸)のラベル
      main: グラフのタイトル
      xlim: X軸の目盛の範囲


  * 画像を保存するには、Graphic windowの「ファイル」→「別名で保存」      18
• 一部のデータだけを分析する
   – 例として、1組だけを対象とする

# 元のファイルを見ると、最初の28人( S001~S028 )が1組であることに注目
# 要約統計量(1組 (1~28行目)のscore (5列目)だけを対象とする)
# Rでは、[行, 列]という形式でデータを指定(指定しなければ、全データが対象)

# 1組の平均
> mean(dat001[1:28,5])
[1] 81.39286
# ヒストグラム
> hist(dat001[1:28,5], col="blue", xlab="students",
  ylab="score", main="Class 1", xlim=c(0, 100))

# 【練習問題 2】同様の手順で、2組の点数を
 ヒストグラムにしなさい。また、2組の点数の
 最大値を求めなさい。

                                                      19
• クラス間の差を視覚化する
   – 箱ひげ図 (boxplot) を用いる
# 関数「split」を使って、成績をクラス別に集計
# split(元のデータ名[[点数の入った列数]], 元のデータ名[[調べたい項目の列数]])
> class.dat <- split(dat001[[5]], dat001[[2]])
# クラス別に集計した結果を表示
> class.dat
  (省略)
# 箱ひげ図で視覚化
> boxplot(class.dat)
# 箱ひげ図のデザインを修正
> boxplot(class.dat, col="green", ylim=c(0, 100), xlab="class", ylab="score")

【引数】
  col: グラフの色
  ylim: Y軸の目盛の範囲
  xlab: X軸(横軸)のラベル
  ylab: Y軸(縦軸)のラベル
                                                                                20
• クラス間の差を視覚化する(続き)




                     21
# 【練習問題 3】同様の手順で、成績を学部別に集計しなさい
# splitした結果は、class.datに上書きせずに、faculty.datという変数に入れること
# ヒント:学部は、元のデータの何列目にあるか?


• 【補足】箱ひげ図の見方

             箱ひげ図 (boxplot)




                                                       22
• 【発展編】箱ひげ図を並びかえる
    – 中央値の順に、クラスを並びかえたい
# 箱ひげ図の並びかえ(中央値で)
# 「sort.list」は、リストを並べかえる関数
# 「sapply」は、複数のデータに対して関数を適用する関数
> boxplot(class.dat[sort.list(sapply(class.dat, median))])
# 箱ひげ図のデザインの修正
> boxplot(class.dat[sort.list(sapply(class.dat, median))], col="green", ylim=c(0, 100),
  xlab="class", ylab="score")




                                                                                          23
• 関数「sapply」を使って、クラス別の記述統計を見る
# クラスごとの学生数(=ベクトルの長さ)
# 結果の1行目は、クラス名
> sapply(class.dat, length)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
28 29 27 34 34 36 38 46 44 46 53 54 46 46 46 47 46 44 46 10
# クラスごとの最高点
> sapply(class.dat, max)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
96 98 96 96 96 84 78 78 78 78 78 78 78 78 77 78 78 78 78 98
# クラスごとの最低点
> sapply(class.dat, min)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
52 36 48 32 32 47 46 45 45 45 45 45 45 45 45 45 45 45 45 48

# その他、平均 (mean)、標準偏差 (sd)、要約統計量 (summary) などが使用可能


                                                              24
Agenda

• 1. 自己紹介
• 2. 統計処理言語R(講義)
• 3. Rを使った成績データの視覚化(実習)
  –   基本操作
  –   データの読み込み
  –   統計処理(記述統計)
  –   グラフ作成(ヒストグラム、箱ひげ図)
• 4. Rを使った成績データの統計処理(実習)
  – グラフ作成(散布図)
  – 統計処理(回帰、相関、検定)
• 5. Rを使った成績データの多変量解析(デモ)
• 6. Rを学ぶための参考文献とウェブサイト

                            25
Rを使った成績データの統計処理

• 2つのテストの結果について調査する
  – 中間テストと期末テストの点数、国語と英語の点数の関係 etc.
  – 例として、「得点サンプルB」を使用
  – 50人の学生によるテスト2回分のデータ

# クリップボード経由で読み込む(Windowsのみ)
# 読み込みたい範囲をマウスで指定し、キーボードの「Ctrl」+「C」でコピーしてから
> dat002 <- read.delim("clipboard")
# テストA(=2列目)のデータだけを抜き出す
> test.A <- dat002[,2]
#テストB(=3列目)のデータだけを抜き出す
> test.B <- dat002[,3]




                                              26
• 散布図を描く
# 散布図
> plot(test.A, test.B)
# 散布図のデザインを修正する
> plot(test.A, test.B, xlim=c(0, 100), ylim=c(0, 100))
# 関数「abline」を使って、各テストの平均点の位置に点線 (lty=3) を引く
# vはvertical、hはhorizontalの略
> abline(v=mean(test.A), h=mean(test.B), lty=3)
#関数「lm」(=linear model)を使って、回帰分析
> lm(test.B ~ test.A)
# 「lm」と「abline」を組み合わせて、回帰直線を引く
> abline(lm(test.B ~ test.A), col="red")




                                                         27
• 2つのテストの相関を調べる
# Pearsonの積率相関係数
# 関数「cor」の引数methodをpearsonにする
> cor(test.A, test.B, method="pearson")
[1] 0.7616083

# 「cor」の引数methodをspearmanにすると、Spearmanの順位相関係数

# 【練習問題 4】
# test.Aとtest.Bのデータを使って、Spearmanの順位相関係数を求めなさい




                                                28
• 2つのテストの差を調べる
    – t検定(平均値に差があるか、という検定)
# t検定(等分散を仮定)
> t.test(test.A, test.B, var.equal=T)

    Two Sample t-test

data: test.A and test.B
t = 1.0401, df = 98, p-value = 0.3008
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -3.177805 10.177805
sample estimates:
mean of x mean of y
   63.8 60.3

# 等分散を仮定しない場合(Welchの方法)は、var.equal=F
# その他、wilcox.test(Wilcoxonの順位和検定)など                                  29
• 「得点サンプルC」で復習
   – 30人の学生によるテスト2回分のデータ

# クリップボード経由で読み込む(Windowsのみ)
> dat003 <- read.delim("clipboard")
# テストC(=2列目)のデータだけを抜き出す
> test.C <- dat003[,2]
#テストD(=3列目)のデータだけを抜き出す
> test.D <- dat003[,3]

# 【練習問題 5】
# test.Cとtest.Dのデータを使って散布図を描き、その上に回帰直線を引きなさい

# 【練習問題 6】
# test.Cとtest.Dのデータを使って、Pearsonの積率相関係数を求めなさい

# 【練習問題 7】
# test.Cとtest.Dのデータに対して、(等分散を仮定する)t検定を実行しなさい
                                               30
Agenda

• 1. 自己紹介
• 2. 統計処理言語R(講義)
• 3. Rを使った成績データの視覚化(実習)
  –   基本操作
  –   データの読み込み
  –   統計処理(記述統計)
  –   グラフ作成(ヒストグラム、箱ひげ図)
• 4. Rを使った成績データの統計処理(実習)
  – グラフ作成(散布図)
  – 統計処理(回帰、相関、検定)
• 5. Rを使った成績データの多変量解析(デモ)
• 6. Rを学ぶための参考文献とウェブサイト

                            31
Rを使った成績データの多変量解析

• 多変量解析とは
 – 大量のデータ(多数の事物や変数)を分類、整理、縮約することで、
   データの全体像を掴んだり、事物の間に潜む相互関係や、変数間の相
   互関係、さらには事物と変数の間の複雑な相互関係を顕在化させるた
   めの統計手法の総称
 – 多数の個体(学生、教科、定期試験など)が多項目の変数(アンケート
   項目に対する回答、テストの点数など)に関して示す振る舞い(反応)を
   分析する手法
 – 因子分析、主成分分析、対応分析、クラスター分析、多次元尺度法、
   判別分析、重回帰分析、独立成分分析、など


• ここで紹介する手法
 – 因子分析              ここからは、
 – クラスター分析         少し高度な手法のデモ

                                   32
• 因子分析
 – 複数の変数間の関係を探る手法
 – 変数の間の相関関係から共通因子を求めることで、多くの変数を少数
   個の共通因子にまとめて説明することを目的とする
 – (例)5教科(国語、英語、社会、数学、理科)それぞれの教科の間に何
   らかの関係はあるのか?
 – 「得点サンプルD」(7人分の成績データ)を使用

      独自因子      変数      共通因子

         ei1   xi1=国語

         ei2   xi2=英語   fi1=文系

         ei3   xi3=社会

         ei4   xi4=数学   fi2=理系

         ei5   xi5=理科
                                   33
• 因子分析(続き)
# クリップボード経由で読み込む(Windowsのみ)
# 読み込みたい範囲をマウスで指定し、キーボードの「Ctrl」+「C」でコピーしてから
> dat004 <- read.delim("clipboard")
# データの表示
> dat004
  Student 国語 英語 社会 数学 理科
1 S001 67 46 50 89 90
2 S002 80 85 90 57 70
3 S003 35 40 50 80 90
4 S004 50 45 55 40 60
5 S005 45 55 60 78 85
6 S006 80 75 85 55 65
7 S007 88 92 95 90 85
# 因子分析の実行(ここでの因子の数は2とする)
# dat004の数値部分(=2~6列目)だけを指定する
> fa.result<-factanal(dat004[,2:6], factor=2)

                                                34
• 因子分析(続き)
# 因子分析の結果の表示
>fa.result
                                           書式を呼び出す
Call:
factanal(x = dat004[, 2:6], factors = 2)
                                            独立因子
Uniquenesses:
国語 英語 社会 数学 理科
0.241 0.005 0.006 0.005 0.029

Loadings:
                                           因子負荷量
        Factor1      Factor2
国語        0.871
英語        0.997
社会        0.989      -0.128
数学        0.997
理科        -0.188     0.967
                                                     35
• 因子分析(続き)
# 因子分析の結果の表示(続き)
                                                寄与度・寄与率・累積寄与率
                    Factor1 Factor2
SS loadings         2.768 1.946
Proportion Var      0.554 0.389               元のデータの分散とモデルによる
Cumulative Var      0.554 0.943                  分散との検定統計量

Test of the hypothesis that 2 factors are sufficient.
The chi square statistic is 1.73 on 1 degree of freedom.
The p-value is 0.188


    – 因子分析では因子の数をいくつにするかが問題となるが、この分析にお
      ける「因子数=2は妥当」(Test of the hypothesis that 2 factors are
      sufficient)

                                                                36
• 因子分析(続き)
# 因子の解釈
> barplot(fa.result$loading[,1])
> barplot(fa.result$loading[,2])



           第1因子                    第2因子
            文系                      理系




                                          37
• 因子分析(続き)
# バリマックス回転
> fa.result2<-factanal(dat004[,2:6], factor=2, scores="regression")
# 結果の視覚化
> biplot(fa.result2$scores, fa.result2$loading)




                                                                      38
• クラスター分析(階層型クラスター分析)
   – 個体間の類似度(あるいは、非類似度)に基づいて、最も似ている個体
     から順次にクラスター(グループ)を作っていく手法
   – 因子分析と同じデータを使用
# 個体間の距離(ユークリッド距離)を求める
> euclid.dist<-dist(dat004[,2:6])
# 見やすくするために、小数点を丸める
> round(euclid.dist)
    1 2 3 4 5 6
2 69
3 34 81
4 60 64 53
5 28 61 21 47
6 63 12 76 54 56
7 68 38 88 92 68 46


                                    39
• クラスター分析(続き)
# クラスター分析の実行(ウォード法を使用)
# 「hang=-1」は、省略可能(若干、樹木図のデザインが変わる)
> plot(hclust(euclid.dist, "ward"), hang=-1)

                               【引数】
                                 single: 最近隣法
                                 complete: 最遠隣法
                                 average: 群平均法
                                 centroid: 重心法
                                 median: メディアン法
                                  ward: ウォード法
                                    etc. etc.
                               * 距離も、ユークリッド距離以外に、キャンベラ
                                 距離なども使用可能

                               クラスター分析の結果を見ると、左側のクラス
                               ター (7, 2, 6) と右側のクラスター (4, 1, 3, 5) は、
                               先ほどの因子分析の結果における横軸の位
                               置と対応している                            40
Agenda

• 1. 自己紹介
• 2. 統計処理言語R(講義)
• 3. Rを使った成績データの視覚化(実習)
  –   基本操作
  –   データの読み込み
  –   統計処理(記述統計)
  –   グラフ作成(ヒストグラム、箱ひげ図)
• 4. Rを使った成績データの統計処理(実習)
  – グラフ作成(散布図)
  – 統計処理(回帰、相関、検定)
• 5. Rを使った成績データの多変量解析(デモ)
• 6. Rを学ぶための参考文献とウェブサイト

                            41
参考文献

 • インストールからプログラミングまで




A. ジュール、E. イエノウ、E.    舟尾暢男、高浪洋平 (2005).   U. リゲス (2006). 『Rの基礎
ミーターズ (2010). 『R初心者   『データ解析環境「R」』 工学     とプログラミング技法』シュプ
のためのABC』 シュプリン        社.                  リンガー・ジャパン.
ガー・ジャパン.


                                                             42
• Rによる統計処理




山田剛史、杉澤武俊、村井潤         青木繁伸 (2009). 『Rによる統   金明哲 (2007). 『Rによる
一郎 (2008). 『Rによるやさし   計解析』 オーム社.            データサイエンス』 森北出版.
い統計学』 オーム社.



                                                          43
• Rによる言語データ解析




Gries, S. Th. (2009).        Gries, S. Th. (2009).               Johnson, K. (2008).
Statistics for linguistics   Quantitative corpus linguistics     Quantitative methods in
with R. Berlin: Mouton.      with R: A practical introduction.   linguistics. Oxford:
                             New York: Routledge.                Blackwell.


                                                                                       44
参考ウェブサイト

• The R Project for Statistical Computing (Rの公式サイト)
   – http://www.r-project.org/
• RjpWiki (Rユーザーのための掲示板)
   – http://www.okada.jp.org/RWiki/
• 統計処理ソフトウェアRについてのTips
   – http://phi.med.gunma-u.ac.jp/swtips/R.html
• 統計解析R Tips-統計解析ソフトRの備忘録 (PDF資料)
   – http://www.is.titech.ac.jp/~shimo/class/doc/r-tips.pdf
• R-introduction(日本語版)
  • http://cran.r-project.org/doc/contrib/manuals-jp/R-intro-
    170.jp.pdf
• その他、日本各地のRコミュニティのサイト
   – Tokyo.R、Tsukuba.R、Nagoya.R、Osaka.R、Hiroshma.R etc.
                                                                45
練習問題の解答

# 【練習問題 1】の答え
> Math <- c(76, 85, 63, 100, 72, 54, 80, 66, 92, 77)
> Math
[1] 76 85 63 100 72 54 80 66 92 77

# 【練習問題 2】の答え
# dat001に「得点サンプルA」の全データが入っている状態で
# 2組のヒストグラム
  2
> hist(dat001[29:57,5], col="blue", xlab="students",
  ylab="score", main="Class 2", xlim=c(0, 100))
# 2組の最大値
> max(dat001[29:57,5])
[1] 98




                                                       46
# 【練習問題 3】の答え
# dat001に「得点サンプルA」の全データが入っている状態で
# 学部別に成績を集計
> faculty.dat <- split(dat001[[5]], dat001[[4]])
# 箱ひげ図
> boxplot(faculty.dat, col="green", ylim=c(0, 100), xlab=“faculty", ylab="score")




                                                                                    47
# 【練習問題 4】の答え
# Spearmanの積率相関係数
# 関数「cor」の引数methodをspearmanにする
> cor(test.A, test.B, method=“spearman")
[1] 0.7275546

# 【練習問題 5】の答え
# 散布図
> plot(test.C, test.D, xlim=c(0, 100), ylim=c(0, 100))
# 関数「lm」と「abline」を使って、回帰直線を引く
> abline(lm(test.C ~ test.D), col="red")




                                                         48
# 【練習問題 6】の答え
# Pearsonの積率相関係数
# 関数「cor」の引数methodをpearsonにする
> cor(test.C, test.D, method="pearson")
[1] 0.7170527

# 【練習問題 7】の答え
# t検定(等分散を仮定)
  t
> t.test(test.C, test.D, var.equal=T)

          Two Sample t-test

data: test.C and test.D
t = -3.1022, df = 58, p-value = 0.002966
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -19.63336 -4.23331
sample estimates:
mean of x mean of y
 57.83333 69.76667                                                   49
ご清聴ありがとうございました。




    kobayashi0721@gmail.com
http://www.geocities.jp/langstat/
                                    50

More Related Content

LET2011: Rによる教育データ分析入門

  • 1. Rによる教育データ分析入門 小林雄一郎 (大阪大学大学院/日本学術振興会) 外国語教育メディア学会 (LET) 2011年大会 WS 於 名古屋学院大学 2011年8月6日(土) 1
  • 2. Agenda • 1. 自己紹介 • 2. 統計処理言語R(講義) • 3. Rを使った成績データの視覚化(実習) – 基本操作 – データの読み込み – 統計処理(記述統計) – グラフ作成(ヒストグラム、箱ひげ図) • 4. Rを使った成績データの統計処理(実習) – グラフ作成(散布図) – 統計処理(回帰、相関、検定) • 5. Rを使った成績データの多変量解析(デモ) • 6. Rを学ぶための参考文献とウェブサイト 2
  • 3. Agenda • 1. 自己紹介 • 2. 統計処理言語R(講義) • 3. Rを使った成績データの視覚化(実習) – 基本操作 – データの読み込み – 統計処理(記述統計) – グラフ作成(ヒストグラム、箱ひげ図) • 4. Rを使った成績データの統計処理(実習) – グラフ作成(散布図) – 統計処理(回帰、相関、検定) • 5. Rを使った成績データの多変量解析(デモ) • 6. Rを学ぶための参考文献とウェブサイト 3
  • 4. 自己紹介 • 小林 雄一郎 (こばやし ゆういちろう) – 大阪大学大学院言語文化研究科言語文化専攻(D3) – 日本学術振興会特別研究員(DC2) – http://www.geocities.jp/langstat/ • 関心領域 • テキストマイニング、コーパス言語学、自然言語処理、言語統計 4
  • 5. 78/5 1/3 5/0 0/7 SN SNN SN SNN 5 3/0 4/58 SN SNN 997.5=>DEH 997.5 <DEH 76.21 <MES 76.21=>MES 31.22 <OOB 31.22=>OOB 345.4 <MRF 345.4=>MRF 56.83 <MES 56.83=>MES – 様々な母語を持つ学習者のクラスタリング etc. etc. – 日本人英語と母語話者英語の差異の分析 – 機械学習を用いた英語習熟度の自動推定 • 日本人英語学習者の英作文をマイニング 最近の主な研究テーマ
  • 6. Rと統計とわたし • R・統計(2005年~) • 統計数理研究所共同利用研究員(2008年~) • Osaka.R 運営委員(2010年~) • Rに関するワークショップ – JACET九州・沖縄支部ESP研究会 Corpus Workshop (2007年10月) – 英語コーパス学会 (2009年4月) – Osaka Workshop on Digital Humanities 2010 (2010年3月) – LETメソドロジー研究部会(2011月7日) – etc. • 共著書『言語研究のための統計入門』 (くろしお出版、2010年) 6
  • 7. Agenda • 1. 自己紹介 • 2. 統計処理言語R(講義) • 3. Rを使った成績データの視覚化(実習) – 基本操作 – データの読み込み – 統計処理(記述統計) – グラフ作成(ヒストグラム、箱ひげ図) • 4. Rを使った成績データの統計処理(実習) – グラフ作成(散布図) – 統計処理(回帰、相関、検定) • 5. Rを使った成績データの多変量解析(デモ) • 6. Rを学ぶための参考文献とウェブサイト 7
  • 8. 統計処理言語R • Rとは何か? – 1990年代前半、オークランド大学のRobert Ihaka氏とRobert Gentleman氏が開発 – 1997年以降、R Development Core Teamによって、継続的に開発 – 「統計処理」と「グラフィックス」のためのソフトウェア – フリーで公開 – 追加パッケージも充実 – Windows、Mac、Linuxといった様々なOSで動作可能 8
  • 9. • Rで何ができるのか? – 様々な数値計算(四則計算から数学関数を使った複雑な計算まで) – 大量のデータを「ベクトル」として扱うことが可能 – 様々なグラフィック機能を搭載 – 外部ファイル(テキストファイルやExcelファイル)からのデータ読み込み が可能 – SPSS以上に高度な統計処理(多変量解析、データマイニングなど) → 何より、計算速度が速い • Rはどのように操作するのか? – 基本的な操作は、コンソール画面にコマンドを入力しなくても、GUI画面 のメニュー・バーから実行できるため、ある程度は直感で操作可能 – 複数行にわたるコマンドを入力する際は、R Editorを起動し、右クリック から「カーソル行または選択中のRコードを実行」を選択 9
  • 10. • Rはどこから入手できるのか? – R-project (http://www.r-project.org/) からダウンロード可能 • Rはどうやってインストールするのか? – ダウンロードしたインストーラ(Windowsの場合、exeファイル)を起動 – 「契約書」に同意し、ひたすら「次へ」 – 設定によっても異なるが、30~50MBくらいの容量が必要 – 舟尾・高浪 (2005)、ジュールほか (2010) などを参照 10
  • 11. • 今日のWSで行うこと – Rの基本操作 – Excelファイルなどで保存されている成績データの視覚化 – 基本的な統計処理 ↓ 教育データ(成積データ etc.)の処理に特化した内容 • 今日のWSで行わないこと – Rに関する体系的な説明 – 高度なプログラミング(行列計算、ループ etc.)に関する説明 – 高度な統計処理(多変量解析、ネットワーク分析 etc.)の実習 ↓ – たとえRにとって大事なことでも、(今日扱う)教育データ処理に関係しな いものは対象外 11
  • 12. 教育データ処理の一般的な流れ データ収集 データ収集 テキスト処理 統計処理 質的分析 定期試験 語彙表の作成 検定 結果の解釈 英作文 用例の抽出 多変量解析 教育的な考察 etc. etc. etc. etc. 12
  • 13. Agenda • 1. 自己紹介 • 2. 統計処理言語R(講義) • 3. Rを使った成績データの視覚化(実習) – 基本操作 – データの読み込み – 統計処理(記述統計) – グラフ作成(ヒストグラム、箱ひげ図) • 4. Rを使った成績データの統計処理(実習) – グラフ作成(散布図) – 統計処理(回帰、相関、検定) • 5. Rを使った成績データの多変量解析(デモ) • 6. Rを学ぶための参考文献とウェブサイト 13
  • 14. Rの基本操作 • Rの起動 – スタートメニューのプログラム(or デスクトップのアイコン)をクリック • Rの基本操作 # 四則計算 # 命令(赤字)を入力し、「Enter」を押すと、答え(青字)を返す # 全て半角で入力すること! # 行頭の > は入力しないこと! > 1+2 [1] 3 > (2+3)*4/5 [1] 4 14
  • 15. • データを読み込む(手入力) # 関数「c」を用いたベクトルの生成 # 「Eng」という名前の変数(=データを入れる箱)に、5人分の英語の点数を入れる > Eng <- c(76, 90, 84, 65, 70) # 変数「Eng」の中身を確認 > Eng [1] 76 90 84 65 70 # 【練習問題 1】 # 関数「c」を用いて、以下の10人の点数を、「Math」という名前の変数に入れなさい # 76点、85点、63点、100点、72点、54点、80点、66点、92点、77点 # そして、Mathの中身を画面に表示しなさい – 関数「c」の名前は、concatenate(鎖状につなぐ)に由来 15
  • 16. • 記述統計 # 平均 > mean(Math) [1] 76.5 # 最大値 > max(Math) [1] 100 # 最小値 > min(Math) [1] 54 # 標準偏差 > sd(Math) [1] 13.72953 # 要約統計量(最小値、下側25%点、中央値(50%点)、平均値、上側25%点、最大値) > summary(Math) Min. 1st Qu. Median Mean 3rd Qu. Max. 54.00 67.50 76.50 76.50 83.75 100.00 # その他、sum(総和)、var(不偏分散)など 16
  • 17. Rを使った成績データの視覚化 • データを読み込む(Excelファイルから) – たくさんのデータ(あるいは、その一部だけ)を簡単に読み込むには? – 例として、「得点サンプルA」を使用 – 800人分の成績データ(クラス、性別、学部の情報つき) # クリップボード経由で読み込む(Windowsのみ) # 読み込みたい範囲をマウスで指定し、キーボードの「Ctrl」+「C」でコピーしてから > dat001 <- read.delim("clipboard") # (大きいデータなので)データの最初の部分だけを表示 > head(dat001) student class sex faculty score 1 S001 1 M A 72 2 S002 1 F A 94 Macでは、 3 S003 1 M A 90 read.delim(pipe(“pbpaste”)) 4 S004 1 F A 88 5 S005 1 F A 70 6 S006 1 M A 82 17
  • 18. • データの全体像をざっくりと把握する # 要約統計量(データの5列目、つまりは、scoreだけを対象にする) > summary(dat001[,5]) Min. 1st Qu. Median Mean 3rd Qu. Max. 32.00 54.00 65.00 64.06 73.00 98.00 # ヒストグラム > hist(dat001[,5]) # ヒストグラムのデザインやラベルを指定 > hist(dat001[,5], col="red", xlab="students", ylab="score", main="Test", xlim=c(0, 100)) 【引数(ひきすう)】 col: グラフの色 xlab: X軸(横軸)のラベル ylab: Y軸(縦軸)のラベル main: グラフのタイトル xlim: X軸の目盛の範囲 * 画像を保存するには、Graphic windowの「ファイル」→「別名で保存」 18
  • 19. • 一部のデータだけを分析する – 例として、1組だけを対象とする # 元のファイルを見ると、最初の28人( S001~S028 )が1組であることに注目 # 要約統計量(1組 (1~28行目)のscore (5列目)だけを対象とする) # Rでは、[行, 列]という形式でデータを指定(指定しなければ、全データが対象) # 1組の平均 > mean(dat001[1:28,5]) [1] 81.39286 # ヒストグラム > hist(dat001[1:28,5], col="blue", xlab="students", ylab="score", main="Class 1", xlim=c(0, 100)) # 【練習問題 2】同様の手順で、2組の点数を ヒストグラムにしなさい。また、2組の点数の 最大値を求めなさい。 19
  • 20. • クラス間の差を視覚化する – 箱ひげ図 (boxplot) を用いる # 関数「split」を使って、成績をクラス別に集計 # split(元のデータ名[[点数の入った列数]], 元のデータ名[[調べたい項目の列数]]) > class.dat <- split(dat001[[5]], dat001[[2]]) # クラス別に集計した結果を表示 > class.dat (省略) # 箱ひげ図で視覚化 > boxplot(class.dat) # 箱ひげ図のデザインを修正 > boxplot(class.dat, col="green", ylim=c(0, 100), xlab="class", ylab="score") 【引数】 col: グラフの色 ylim: Y軸の目盛の範囲 xlab: X軸(横軸)のラベル ylab: Y軸(縦軸)のラベル 20
  • 22. # 【練習問題 3】同様の手順で、成績を学部別に集計しなさい # splitした結果は、class.datに上書きせずに、faculty.datという変数に入れること # ヒント:学部は、元のデータの何列目にあるか? • 【補足】箱ひげ図の見方 箱ひげ図 (boxplot) 22
  • 23. • 【発展編】箱ひげ図を並びかえる – 中央値の順に、クラスを並びかえたい # 箱ひげ図の並びかえ(中央値で) # 「sort.list」は、リストを並べかえる関数 # 「sapply」は、複数のデータに対して関数を適用する関数 > boxplot(class.dat[sort.list(sapply(class.dat, median))]) # 箱ひげ図のデザインの修正 > boxplot(class.dat[sort.list(sapply(class.dat, median))], col="green", ylim=c(0, 100), xlab="class", ylab="score") 23
  • 24. • 関数「sapply」を使って、クラス別の記述統計を見る # クラスごとの学生数(=ベクトルの長さ) # 結果の1行目は、クラス名 > sapply(class.dat, length) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 28 29 27 34 34 36 38 46 44 46 53 54 46 46 46 47 46 44 46 10 # クラスごとの最高点 > sapply(class.dat, max) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 96 98 96 96 96 84 78 78 78 78 78 78 78 78 77 78 78 78 78 98 # クラスごとの最低点 > sapply(class.dat, min) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 52 36 48 32 32 47 46 45 45 45 45 45 45 45 45 45 45 45 45 48 # その他、平均 (mean)、標準偏差 (sd)、要約統計量 (summary) などが使用可能 24
  • 25. Agenda • 1. 自己紹介 • 2. 統計処理言語R(講義) • 3. Rを使った成績データの視覚化(実習) – 基本操作 – データの読み込み – 統計処理(記述統計) – グラフ作成(ヒストグラム、箱ひげ図) • 4. Rを使った成績データの統計処理(実習) – グラフ作成(散布図) – 統計処理(回帰、相関、検定) • 5. Rを使った成績データの多変量解析(デモ) • 6. Rを学ぶための参考文献とウェブサイト 25
  • 26. Rを使った成績データの統計処理 • 2つのテストの結果について調査する – 中間テストと期末テストの点数、国語と英語の点数の関係 etc. – 例として、「得点サンプルB」を使用 – 50人の学生によるテスト2回分のデータ # クリップボード経由で読み込む(Windowsのみ) # 読み込みたい範囲をマウスで指定し、キーボードの「Ctrl」+「C」でコピーしてから > dat002 <- read.delim("clipboard") # テストA(=2列目)のデータだけを抜き出す > test.A <- dat002[,2] #テストB(=3列目)のデータだけを抜き出す > test.B <- dat002[,3] 26
  • 27. • 散布図を描く # 散布図 > plot(test.A, test.B) # 散布図のデザインを修正する > plot(test.A, test.B, xlim=c(0, 100), ylim=c(0, 100)) # 関数「abline」を使って、各テストの平均点の位置に点線 (lty=3) を引く # vはvertical、hはhorizontalの略 > abline(v=mean(test.A), h=mean(test.B), lty=3) #関数「lm」(=linear model)を使って、回帰分析 > lm(test.B ~ test.A) # 「lm」と「abline」を組み合わせて、回帰直線を引く > abline(lm(test.B ~ test.A), col="red") 27
  • 28. • 2つのテストの相関を調べる # Pearsonの積率相関係数 # 関数「cor」の引数methodをpearsonにする > cor(test.A, test.B, method="pearson") [1] 0.7616083 # 「cor」の引数methodをspearmanにすると、Spearmanの順位相関係数 # 【練習問題 4】 # test.Aとtest.Bのデータを使って、Spearmanの順位相関係数を求めなさい 28
  • 29. • 2つのテストの差を調べる – t検定(平均値に差があるか、という検定) # t検定(等分散を仮定) > t.test(test.A, test.B, var.equal=T) Two Sample t-test data: test.A and test.B t = 1.0401, df = 98, p-value = 0.3008 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -3.177805 10.177805 sample estimates: mean of x mean of y 63.8 60.3 # 等分散を仮定しない場合(Welchの方法)は、var.equal=F # その他、wilcox.test(Wilcoxonの順位和検定)など 29
  • 30. • 「得点サンプルC」で復習 – 30人の学生によるテスト2回分のデータ # クリップボード経由で読み込む(Windowsのみ) > dat003 <- read.delim("clipboard") # テストC(=2列目)のデータだけを抜き出す > test.C <- dat003[,2] #テストD(=3列目)のデータだけを抜き出す > test.D <- dat003[,3] # 【練習問題 5】 # test.Cとtest.Dのデータを使って散布図を描き、その上に回帰直線を引きなさい # 【練習問題 6】 # test.Cとtest.Dのデータを使って、Pearsonの積率相関係数を求めなさい # 【練習問題 7】 # test.Cとtest.Dのデータに対して、(等分散を仮定する)t検定を実行しなさい 30
  • 31. Agenda • 1. 自己紹介 • 2. 統計処理言語R(講義) • 3. Rを使った成績データの視覚化(実習) – 基本操作 – データの読み込み – 統計処理(記述統計) – グラフ作成(ヒストグラム、箱ひげ図) • 4. Rを使った成績データの統計処理(実習) – グラフ作成(散布図) – 統計処理(回帰、相関、検定) • 5. Rを使った成績データの多変量解析(デモ) • 6. Rを学ぶための参考文献とウェブサイト 31
  • 32. Rを使った成績データの多変量解析 • 多変量解析とは – 大量のデータ(多数の事物や変数)を分類、整理、縮約することで、 データの全体像を掴んだり、事物の間に潜む相互関係や、変数間の相 互関係、さらには事物と変数の間の複雑な相互関係を顕在化させるた めの統計手法の総称 – 多数の個体(学生、教科、定期試験など)が多項目の変数(アンケート 項目に対する回答、テストの点数など)に関して示す振る舞い(反応)を 分析する手法 – 因子分析、主成分分析、対応分析、クラスター分析、多次元尺度法、 判別分析、重回帰分析、独立成分分析、など • ここで紹介する手法 – 因子分析 ここからは、 – クラスター分析 少し高度な手法のデモ 32
  • 33. • 因子分析 – 複数の変数間の関係を探る手法 – 変数の間の相関関係から共通因子を求めることで、多くの変数を少数 個の共通因子にまとめて説明することを目的とする – (例)5教科(国語、英語、社会、数学、理科)それぞれの教科の間に何 らかの関係はあるのか? – 「得点サンプルD」(7人分の成績データ)を使用 独自因子 変数 共通因子 ei1 xi1=国語 ei2 xi2=英語 fi1=文系 ei3 xi3=社会 ei4 xi4=数学 fi2=理系 ei5 xi5=理科 33
  • 34. • 因子分析(続き) # クリップボード経由で読み込む(Windowsのみ) # 読み込みたい範囲をマウスで指定し、キーボードの「Ctrl」+「C」でコピーしてから > dat004 <- read.delim("clipboard") # データの表示 > dat004 Student 国語 英語 社会 数学 理科 1 S001 67 46 50 89 90 2 S002 80 85 90 57 70 3 S003 35 40 50 80 90 4 S004 50 45 55 40 60 5 S005 45 55 60 78 85 6 S006 80 75 85 55 65 7 S007 88 92 95 90 85 # 因子分析の実行(ここでの因子の数は2とする) # dat004の数値部分(=2~6列目)だけを指定する > fa.result<-factanal(dat004[,2:6], factor=2) 34
  • 35. • 因子分析(続き) # 因子分析の結果の表示 >fa.result 書式を呼び出す Call: factanal(x = dat004[, 2:6], factors = 2) 独立因子 Uniquenesses: 国語 英語 社会 数学 理科 0.241 0.005 0.006 0.005 0.029 Loadings: 因子負荷量 Factor1 Factor2 国語 0.871 英語 0.997 社会 0.989 -0.128 数学 0.997 理科 -0.188 0.967 35
  • 36. • 因子分析(続き) # 因子分析の結果の表示(続き) 寄与度・寄与率・累積寄与率 Factor1 Factor2 SS loadings 2.768 1.946 Proportion Var 0.554 0.389 元のデータの分散とモデルによる Cumulative Var 0.554 0.943 分散との検定統計量 Test of the hypothesis that 2 factors are sufficient. The chi square statistic is 1.73 on 1 degree of freedom. The p-value is 0.188 – 因子分析では因子の数をいくつにするかが問題となるが、この分析にお ける「因子数=2は妥当」(Test of the hypothesis that 2 factors are sufficient) 36
  • 37. • 因子分析(続き) # 因子の解釈 > barplot(fa.result$loading[,1]) > barplot(fa.result$loading[,2]) 第1因子 第2因子 文系 理系 37
  • 38. • 因子分析(続き) # バリマックス回転 > fa.result2<-factanal(dat004[,2:6], factor=2, scores="regression") # 結果の視覚化 > biplot(fa.result2$scores, fa.result2$loading) 38
  • 39. • クラスター分析(階層型クラスター分析) – 個体間の類似度(あるいは、非類似度)に基づいて、最も似ている個体 から順次にクラスター(グループ)を作っていく手法 – 因子分析と同じデータを使用 # 個体間の距離(ユークリッド距離)を求める > euclid.dist<-dist(dat004[,2:6]) # 見やすくするために、小数点を丸める > round(euclid.dist) 1 2 3 4 5 6 2 69 3 34 81 4 60 64 53 5 28 61 21 47 6 63 12 76 54 56 7 68 38 88 92 68 46 39
  • 40. • クラスター分析(続き) # クラスター分析の実行(ウォード法を使用) # 「hang=-1」は、省略可能(若干、樹木図のデザインが変わる) > plot(hclust(euclid.dist, "ward"), hang=-1) 【引数】 single: 最近隣法 complete: 最遠隣法 average: 群平均法 centroid: 重心法 median: メディアン法 ward: ウォード法 etc. etc. * 距離も、ユークリッド距離以外に、キャンベラ 距離なども使用可能 クラスター分析の結果を見ると、左側のクラス ター (7, 2, 6) と右側のクラスター (4, 1, 3, 5) は、 先ほどの因子分析の結果における横軸の位 置と対応している 40
  • 41. Agenda • 1. 自己紹介 • 2. 統計処理言語R(講義) • 3. Rを使った成績データの視覚化(実習) – 基本操作 – データの読み込み – 統計処理(記述統計) – グラフ作成(ヒストグラム、箱ひげ図) • 4. Rを使った成績データの統計処理(実習) – グラフ作成(散布図) – 統計処理(回帰、相関、検定) • 5. Rを使った成績データの多変量解析(デモ) • 6. Rを学ぶための参考文献とウェブサイト 41
  • 42. 参考文献 • インストールからプログラミングまで A. ジュール、E. イエノウ、E. 舟尾暢男、高浪洋平 (2005). U. リゲス (2006). 『Rの基礎 ミーターズ (2010). 『R初心者 『データ解析環境「R」』 工学 とプログラミング技法』シュプ のためのABC』 シュプリン 社. リンガー・ジャパン. ガー・ジャパン. 42
  • 43. • Rによる統計処理 山田剛史、杉澤武俊、村井潤 青木繁伸 (2009). 『Rによる統 金明哲 (2007). 『Rによる 一郎 (2008). 『Rによるやさし 計解析』 オーム社. データサイエンス』 森北出版. い統計学』 オーム社. 43
  • 44. • Rによる言語データ解析 Gries, S. Th. (2009). Gries, S. Th. (2009). Johnson, K. (2008). Statistics for linguistics Quantitative corpus linguistics Quantitative methods in with R. Berlin: Mouton. with R: A practical introduction. linguistics. Oxford: New York: Routledge. Blackwell. 44
  • 45. 参考ウェブサイト • The R Project for Statistical Computing (Rの公式サイト) – http://www.r-project.org/ • RjpWiki (Rユーザーのための掲示板) – http://www.okada.jp.org/RWiki/ • 統計処理ソフトウェアRについてのTips – http://phi.med.gunma-u.ac.jp/swtips/R.html • 統計解析R Tips-統計解析ソフトRの備忘録 (PDF資料) – http://www.is.titech.ac.jp/~shimo/class/doc/r-tips.pdf • R-introduction(日本語版) • http://cran.r-project.org/doc/contrib/manuals-jp/R-intro- 170.jp.pdf • その他、日本各地のRコミュニティのサイト – Tokyo.R、Tsukuba.R、Nagoya.R、Osaka.R、Hiroshma.R etc. 45
  • 46. 練習問題の解答 # 【練習問題 1】の答え > Math <- c(76, 85, 63, 100, 72, 54, 80, 66, 92, 77) > Math [1] 76 85 63 100 72 54 80 66 92 77 # 【練習問題 2】の答え # dat001に「得点サンプルA」の全データが入っている状態で # 2組のヒストグラム 2 > hist(dat001[29:57,5], col="blue", xlab="students", ylab="score", main="Class 2", xlim=c(0, 100)) # 2組の最大値 > max(dat001[29:57,5]) [1] 98 46
  • 47. # 【練習問題 3】の答え # dat001に「得点サンプルA」の全データが入っている状態で # 学部別に成績を集計 > faculty.dat <- split(dat001[[5]], dat001[[4]]) # 箱ひげ図 > boxplot(faculty.dat, col="green", ylim=c(0, 100), xlab=“faculty", ylab="score") 47
  • 48. # 【練習問題 4】の答え # Spearmanの積率相関係数 # 関数「cor」の引数methodをspearmanにする > cor(test.A, test.B, method=“spearman") [1] 0.7275546 # 【練習問題 5】の答え # 散布図 > plot(test.C, test.D, xlim=c(0, 100), ylim=c(0, 100)) # 関数「lm」と「abline」を使って、回帰直線を引く > abline(lm(test.C ~ test.D), col="red") 48
  • 49. # 【練習問題 6】の答え # Pearsonの積率相関係数 # 関数「cor」の引数methodをpearsonにする > cor(test.C, test.D, method="pearson") [1] 0.7170527 # 【練習問題 7】の答え # t検定(等分散を仮定) t > t.test(test.C, test.D, var.equal=T) Two Sample t-test data: test.C and test.D t = -3.1022, df = 58, p-value = 0.002966 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -19.63336 -4.23331 sample estimates: mean of x mean of y 57.83333 69.76667 49