Nagoya.R #8 入門者講習資料

172
第1部:入門者講習 2012-05-19 Nagoya.R #8 @ Nagoya Univ. Saturday, May 19, 12

Transcript of Nagoya.R #8 入門者講習資料

Page 1: Nagoya.R #8 入門者講習資料

第1部:入門者講習2012-05-19 Nagoya.R #8 @ Nagoya Univ.

Saturday, May 19, 12

Page 2: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 3: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 4: Nagoya.R #8 入門者講習資料

 とは何か• 統計処理を目的とするプログラミング言語• 作者:Ross Ihaka & Robert Gentleman (R & R)

• Ross Ihaka and Robert Gentleman. R: A language for data analysis and graphics. Journal of Computational and Graphical Statistics, 5(3):299-314, 1996.

• http://biostat.mc.vanderbilt.edu/twiki/pub/Main/Je!reyHorner/JCGSR.pdf

• 無償+オープンソースのソフトウェア

Saturday, May 19, 12

Page 5: Nagoya.R #8 入門者講習資料

要するに統計ソフト

Saturday, May 19, 12

Page 6: Nagoya.R #8 入門者講習資料

  の何が良いのか

•無償(IBM SPSS Statistics は約10万円で保守なし...)

•統計処理の種類が豊富•グラフィックスが美しい

Saturday, May 19, 12

Page 7: Nagoya.R #8 入門者講習資料

 の弱点•文字ベースの操作

• プログラムを組む感覚を養成• (確実に伝わるという利点あり)

•多方面の知識が必要• 英語+統計+計算機 に関する知識

Saturday, May 19, 12

Page 8: Nagoya.R #8 入門者講習資料

Ugeeeeeeeee

Saturday, May 19, 12

Page 9: Nagoya.R #8 入門者講習資料

Excel や SPSS は...

•高価(気軽に試せない)•処理が信頼できず

• Excel のひどい話(青木先生@群馬大)

•グラフィックスが美しくないSaturday, May 19, 12

Page 10: Nagoya.R #8 入門者講習資料

ExcelSPSS

Saturday, May 19, 12

Page 11: Nagoya.R #8 入門者講習資料

  の基本操作-Install / Update / Uninstall-

Saturday, May 19, 12

Page 12: Nagoya.R #8 入門者講習資料

1. http://www.r-project.org/ にアクセス2. “download R” をクリック3. JAPAN の中から、どれか1つを選ぶ4. 使っている OS のリンクをクリック

  のインストール

Saturday, May 19, 12

Page 13: Nagoya.R #8 入門者講習資料

  のインストール

• Windows: : http://cran.md.tsukuba.ac.jp/bin/windows/base/

•「Download R 2.14.0 for Windows」をクリック

• Mac OS X: http://cran.md.tsukuba.ac.jp/bin/macosx/

•「R-2.14.0.pkg (latest version)」をクリック

Saturday, May 19, 12

Page 14: Nagoya.R #8 入門者講習資料

Saturday, May 19, 12

Page 15: Nagoya.R #8 入門者講習資料

Saturday, May 19, 12

Page 16: Nagoya.R #8 入門者講習資料

Saturday, May 19, 12

Page 17: Nagoya.R #8 入門者講習資料

Saturday, May 19, 12

Page 18: Nagoya.R #8 入門者講習資料

Saturday, May 19, 12

Page 19: Nagoya.R #8 入門者講習資料

Saturday, May 19, 12

Page 20: Nagoya.R #8 入門者講習資料

  のアップデート1. http://www.r-project.org/ にアクセス2. 自分が使っているバージョンより新しいものが出ているか確認

3. 新規にインストール用ファイルをダウンロードの上、インストール

Saturday, May 19, 12

Page 21: Nagoya.R #8 入門者講習資料

  のアップデート• 注意: 重大なセキュリティ上の問題が  ない限り,むやみに更新しない

• パッケージ(付加機能)の動作不良回避

• 補足:Windows 版は新旧の共生可• 何がどう共有されているか不明

Saturday, May 19, 12

Page 22: Nagoya.R #8 入門者講習資料

 のアンインストール• Windows

• [ Windows XP] コンパネ→プログラムの追加と削除• [ Windows 7 ] コンパネ→プログラムのアンインストール

• Mac OS X• /Applications にある    アイコンと /Library の中の

Frameworks にある R. framework を削除(CleanApp 可)

Saturday, May 19, 12

Page 23: Nagoya.R #8 入門者講習資料

  の起動• Windows• START → Program → R → R 2.14.1

• Mac OS X• /Applications 内の R アイコンをクリック

R の「コンソール」表示を確認

Saturday, May 19, 12

Page 24: Nagoya.R #8 入門者講習資料

  の終了

• Windows も Mac OS X も1.「q()」と入力2.今は作業スペースの保存をしない3.ウィンドウが消えて、R 終了

Saturday, May 19, 12

Page 25: Nagoya.R #8 入門者講習資料

  で困ったら...

• まずは help(sth) を実行• seekR (http://seekr.jp/)

• R SEEK (http://www.rseek.org/)

• RjpWiki (http://www.okada.jp.org/RWiki/)

• R-Tips (http://cse.naro.a!rc.go.jp/takezawa/r-tips/r.html)

• R による統計処理 (http://aoki2.si.gunma-u.ac.jp/R/)

Saturday, May 19, 12

Page 26: Nagoya.R #8 入門者講習資料

  概論まとめ

•    は統計ソフト•無償+何でも統計+美しい作図•困ったら help(sth) !!

Saturday, May 19, 12

Page 27: Nagoya.R #8 入門者講習資料

ExcelSPSS

Saturday, May 19, 12

Page 28: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 29: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 30: Nagoya.R #8 入門者講習資料

前置きが長くなりましたがどんどん実行しましょう

Saturday, May 19, 12

Page 31: Nagoya.R #8 入門者講習資料

まずは四則演算•式を入力し [Enter] を押す

• > 3+5 [Enter]

• > 10-3 [Enter]

• > 2*3 [Enter]

• > 100/20 [Enter]

• > (12 + 34 -56) * 78 / 90 [Enter]

Saturday, May 19, 12

Page 32: Nagoya.R #8 入門者講習資料

もうちょっと複雑に•次の違いは?•> 100^1/2•> 100^(1/2)

Saturday, May 19, 12

Page 33: Nagoya.R #8 入門者講習資料

いままでのものは単なる計算式でしたが

Saturday, May 19, 12

Page 34: Nagoya.R #8 入門者講習資料

 といえば

関数が命

Saturday, May 19, 12

Page 35: Nagoya.R #8 入門者講習資料

関数とは指定した値に対して何らかの処理をして結果を返すもの

Saturday, May 19, 12

Page 36: Nagoya.R #8 入門者講習資料

何言ってんの?

http://www.flickr.com/photos/fmgbain/4382010455/“I don't know !” by fmgbain

Saturday, May 19, 12

Page 37: Nagoya.R #8 入門者講習資料

なにはともあれ実行してみましょう

Saturday, May 19, 12

Page 38: Nagoya.R #8 入門者講習資料

sqrt():平方根

•> sqrt(2)

•> sqrt(144)

•> sqrt(104976)

Saturday, May 19, 12

Page 39: Nagoya.R #8 入門者講習資料

「関数(値)」が命• には多数の関数がある•q() や help(sth) も関数•必要な関数をしつこく実行

Saturday, May 19, 12

Page 40: Nagoya.R #8 入門者講習資料

  といえば

変数も命

Saturday, May 19, 12

Page 41: Nagoya.R #8 入門者講習資料

変数とは1つ以上の値をまとめていれておく「箱」のこと

Saturday, May 19, 12

Page 42: Nagoya.R #8 入門者講習資料

ではベクトルとも呼ばれ複数の値を1つにまとめたものを指す

Saturday, May 19, 12

Page 43: Nagoya.R #8 入門者講習資料

統計処理などを行うには複数の値をまとめて扱う

ことが必要でそれを使い回すために

変数を使うSaturday, May 19, 12

Page 44: Nagoya.R #8 入門者講習資料

ちなみに変数に数値を入れることを

「代入」といいますSaturday, May 19, 12

Page 45: Nagoya.R #8 入門者講習資料

また何言ってんの?

http://www.flickr.com/photos/fmgbain/4382010455/“I don't know !” by fmgbain

Saturday, May 19, 12

Page 46: Nagoya.R #8 入門者講習資料

なにはともあれ実行してみましょう

Saturday, May 19, 12

Page 47: Nagoya.R #8 入門者講習資料

変数の名前は “hako”

•> hako <- c(1,2,3,4,5)•> hako

• c() 関数:combine (cf. https://twitter.com/#!/sakaue/status/193708048030760960)• 値を1つにまとめる関数• 逆に書いても(一応)OK

Saturday, May 19, 12

Page 48: Nagoya.R #8 入門者講習資料

c()関数の “<-” は何?

hako <- c(1,2,3,4,5) の “<-” は左向きの矢印(←)

を表現

Saturday, May 19, 12

Page 49: Nagoya.R #8 入門者講習資料

コンソールで「+」が出たら...

• 入力中に誤って[Enter] を押すと,待機状態を示す「+」が出る

• [STOP] ボタンでキャンセル• [Esc] キーでキャンセル

Saturday, May 19, 12

Page 50: Nagoya.R #8 入門者講習資料

履歴機能と補完機能

•履歴:上下の矢印キー•補完:Tabキー

Saturday, May 19, 12

Page 51: Nagoya.R #8 入門者講習資料

現在、hako という名前の「変数」の中に

1から5までの5つの数字がまとめて入っている状態

Saturday, May 19, 12

Page 52: Nagoya.R #8 入門者講習資料

では使い回してみましょう

Saturday, May 19, 12

Page 53: Nagoya.R #8 入門者講習資料

以下の関数を実行

•> sqrt(hako)

•> log(hako)

Saturday, May 19, 12

Page 54: Nagoya.R #8 入門者講習資料

もし変数がなかったら何度も関数を

繰り返す羽目になるsqrt(1), sqrt(2) ... sqrt(5)log(1), log (2) ... log (5)

Saturday, May 19, 12

Page 55: Nagoya.R #8 入門者講習資料

一括処理のために変数(ベクトル)の利用は不可欠

Saturday, May 19, 12

Page 56: Nagoya.R #8 入門者講習資料

では変数をもっと使い回してみましょう

Saturday, May 19, 12

Page 57: Nagoya.R #8 入門者講習資料

以下の関数で実行•基本統計量を求める:summary()

•度数分布表を作る:table()

•合計する:sum()

•データの個数を求める:length()

Saturday, May 19, 12

Page 58: Nagoya.R #8 入門者講習資料

続いてこちらも実行• 平均値を求める:mean()

• 最大値と最小値を求める:max(), min()

• 中央値を求める:median()

• 標準偏差を求める:sd()

Saturday, May 19, 12

Page 59: Nagoya.R #8 入門者講習資料

ここまでのまとめ•Rは「関数」と「変数」が命•関数を使って数値を処理

•q(), help(), sqrt(), log(), c()

•変数を使って一括処理!Saturday, May 19, 12

Page 60: Nagoya.R #8 入門者講習資料

今日はメモを頼りに実行できれば OK

Saturday, May 19, 12

Page 61: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 62: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 63: Nagoya.R #8 入門者講習資料

Sub topics

1. 行列のおはなし2. データフレーム3. 外部データの読込

Saturday, May 19, 12

Page 64: Nagoya.R #8 入門者講習資料

さきほど一行で表せる数値を扱いましたが

Saturday, May 19, 12

Page 65: Nagoya.R #8 入門者講習資料

実際のデータは複数行あるはず

Saturday, May 19, 12

Page 66: Nagoya.R #8 入門者講習資料

例えば...

•身長と体重•年齢と年収•覚えた単語数とTOEICスコア

Saturday, May 19, 12

Page 67: Nagoya.R #8 入門者講習資料

表にすれば...身長 体重

A 180 75B 170 65C 165 60D 175 70E 190 80

Saturday, May 19, 12

Page 68: Nagoya.R #8 入門者講習資料

複数の行や列で表されるデータを扱うために

Rでは「行列」を使う

Saturday, May 19, 12

Page 69: Nagoya.R #8 入門者講習資料

行列とは

数値が縦横に並べられたもの

Saturday, May 19, 12

Page 70: Nagoya.R #8 入門者講習資料

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

Page 71: Nagoya.R #8 入門者講習資料

行Saturday, May 19, 12

Page 72: Nagoya.R #8 入門者講習資料

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

Page 73: Nagoya.R #8 入門者講習資料

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

Page 74: Nagoya.R #8 入門者講習資料

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

Page 75: Nagoya.R #8 入門者講習資料

列Saturday, May 19, 12

Page 76: Nagoya.R #8 入門者講習資料

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

Page 77: Nagoya.R #8 入門者講習資料

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

Page 78: Nagoya.R #8 入門者講習資料

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

Page 79: Nagoya.R #8 入門者講習資料

ひとまず「行列」という存在を知ってやってください

Saturday, May 19, 12

Page 80: Nagoya.R #8 入門者講習資料

そんな行列を扱うために

matrix() 関数を使う

Saturday, May 19, 12

Page 81: Nagoya.R #8 入門者講習資料

matrix() 関数

•行列を作る関数•matrix(要素, 行の数, 列の数)

•デフォでは列方向に配置

Saturday, May 19, 12

Page 82: Nagoya.R #8 入門者講習資料

このようなデータなら身長 体重

A 180 75B 170 65C 165 60D 175 70E 190 80

Saturday, May 19, 12

Page 83: Nagoya.R #8 入門者講習資料

karada <- matrix(c(180, 170, 165, 175, 190, 75, 65, 60, 70, 80), 5, 2)

行列を作ってみる

1. c() 関数で、数値を連結2. matrix() 関数で、行列に変換

• 「5行で2列」にするという指定をする3. karada という名の変数に代入

Saturday, May 19, 12

Page 84: Nagoya.R #8 入門者講習資料

> karada

と入力して変数の中身を確認

Saturday, May 19, 12

Page 85: Nagoya.R #8 入門者講習資料

1 4 7

2 5 8

3 6 9

matrix(1:9,nrow=3,ncol=3)

Saturday, May 19, 12

Page 86: Nagoya.R #8 入門者講習資料

1 2 3

4 5 6

7 8 9

matrix(1:9,nrow=3,ncol=3,byrow=TRUE)

Saturday, May 19, 12

Page 87: Nagoya.R #8 入門者講習資料

行列の要素を取り出す

1. 行列を作り、変数に代入2. 変数の中から見たい行や列を指定

Saturday, May 19, 12

Page 88: Nagoya.R #8 入門者講習資料

行列の要素を取り出すdemo <- matrix(1:30,nrow=5,ncol=6)

http://gyazo.com/76c58d5d6c8426a44f160897cda99671.png

Saturday, May 19, 12

Page 89: Nagoya.R #8 入門者講習資料

行列の要素を取り出す2行目を表示 → demo[2,]2列目を表示 → demo[,2]

http://gyazo.com/6726084afd9e1cc4b03df85fe6bc0f29.png

Saturday, May 19, 12

Page 90: Nagoya.R #8 入門者講習資料

行列の要素を取り出す2行目と4行目を表示 → demo[c(2,4),]

2列目と4列目を表示 → demo[, c(2,4)]

Saturday, May 19, 12

Page 91: Nagoya.R #8 入門者講習資料

行列の要素を取り出す

http://gyazo.com/a116c0e2f1284ea7d38bf7024d92f1cc.pngSaturday, May 19, 12

Page 92: Nagoya.R #8 入門者講習資料

行列まとめ

• 横方向が行、縦方向が列• デフォルトでの数値の並びに注意• 必要な要素を適宜取り出して値を確認

Saturday, May 19, 12

Page 93: Nagoya.R #8 入門者講習資料

Sub topics

1. 行列のおはなし2. データフレーム3. 外部データの読込

Saturday, May 19, 12

Page 94: Nagoya.R #8 入門者講習資料

データフレームとは

•いろんなデータを突っ込んだもの• いろんな=質的データ+量的データ• 突っ込む=一緒に並んでいること

Saturday, May 19, 12

Page 95: Nagoya.R #8 入門者講習資料

名前 血液型 身長 体重坂本 B 175 65

高橋 B 177 70

阿部 B 174 75

長野 A 179 70

松本 O 170 60

データフレームとは

Saturday, May 19, 12

Page 96: Nagoya.R #8 入門者講習資料

データフレームとは

• Excel の WS とほぼ同じイメージ

• データが大量になれば必須のもの• 既存データの読込>自力で作る

Saturday, May 19, 12

Page 97: Nagoya.R #8 入門者講習資料

自力で作るなら...

• data.frame()関数を使う (p.240)

• ベクトルを連結して作る (p.243)

• 行列をデータフレームに変換 (p.243)

Saturday, May 19, 12

Page 98: Nagoya.R #8 入門者講習資料

じゃあ実際に自力で作るかといったら...

Saturday, May 19, 12

Page 99: Nagoya.R #8 入門者講習資料

ああー聞こえないー

http://www.!ickr.com/photos/trojanguy/3046207115/“173.365 - Come on, feel the noise” by Je" the Trojan

Saturday, May 19, 12

Page 100: Nagoya.R #8 入門者講習資料

そこで外部データの読込を行おう

Saturday, May 19, 12

Page 101: Nagoya.R #8 入門者講習資料

1. 行列のおはなし2. データフレーム3. 外部データの読込

Sub topics

Saturday, May 19, 12

Page 102: Nagoya.R #8 入門者講習資料

ここはトラブル多発地域です

うまくいかない時はまず説明をお聴きください

Saturday, May 19, 12

Page 103: Nagoya.R #8 入門者講習資料

おそらく...

• Excel でのデータ管理が一般的

• そのデータをそのまま活かしたい→では、やりましょう

Saturday, May 19, 12

Page 104: Nagoya.R #8 入門者講習資料

作業ディレクトリの設定

•作業ディレクトリとは...

•データを読み込む場所•データを書き出す場所

Saturday, May 19, 12

Page 105: Nagoya.R #8 入門者講習資料

作業ディレクトリの設定

• Windows:ファイル → ディレクトリの変更• 今日は “MyDocuments” に設定

• Mac OS X:環境設定 → 一般(起動)

• Linux:up to you...

Saturday, May 19, 12

Page 106: Nagoya.R #8 入門者講習資料

作業ディレクトリの設定

• コンソールからの確認・設定も可能• getwd()関数:現在の設定を確認

• > getwd()

• setwd()関数:現在の設定を変更• > setwd("/Users/sakaue/Desktop/")

Saturday, May 19, 12

Page 107: Nagoya.R #8 入門者講習資料

データの読込 その1

• read.csv() 関数

• CSV 形式のファイルを読み込む• CSV: Comma Separated Value

Saturday, May 19, 12

Page 108: Nagoya.R #8 入門者講習資料

1. demo.csv を作業ディレクトリへ移動• XLS/XLSX 形式のものは保存時に変換• CSV ファイルの文字コードは UTF-8 に

2. > test <- read.csv(“demo.csv”) で代入

3. > test [Enter] で中身を確認

データの読込 その1

Saturday, May 19, 12

Page 109: Nagoya.R #8 入門者講習資料

CSVとかダルいんですけど...

という方に

Saturday, May 19, 12

Page 110: Nagoya.R #8 入門者講習資料

データの読込 その2

• read.delim() 関数

• 表形式のデータ読み込む• delim: delimiter(区切り文字)

Saturday, May 19, 12

Page 111: Nagoya.R #8 入門者講習資料

1. demo.xls を開き,マウスで範囲指定する2. > test2 <- read.delim("clipboard") で代入

3. > test2 [Enter] で中身を確認

データの読込 その2

Mac の場合: read.delim(pipe(“pbpaste”))

Saturday, May 19, 12

Page 112: Nagoya.R #8 入門者講習資料

読み込んだら関数で処理> table(test2[,1])

• 度数分布を確認する> mean(test2[,2])

• 平均値を求める> hist(test2[,2])

• ヒストグラムを描く

1列目対象

2列目対象

2列目対象

Saturday, May 19, 12

Page 113: Nagoya.R #8 入門者講習資料

外部データの読込

• 作業ディレクトリの設定に注意• CSV 形式に変換後、read.csv()関数で読込

• 必要な行 or 列を指定して処理

Saturday, May 19, 12

Page 114: Nagoya.R #8 入門者講習資料

http://www.flickr.com/photos/rosengrant/4751386872/

CSV 形式にして読み込めば

重たいExcelファイルにおさらばですよ!

“y2.d175 | Lasershow! Relax!” by B Rosen

Saturday, May 19, 12

Page 115: Nagoya.R #8 入門者講習資料

ExcelSPSS

Saturday, May 19, 12

Page 116: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 117: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 118: Nagoya.R #8 入門者講習資料

データを集めたら数値要約だけでなくデータの視覚化も必要

Saturday, May 19, 12

Page 119: Nagoya.R #8 入門者講習資料

というわけで作図のお時間です

Saturday, May 19, 12

Page 120: Nagoya.R #8 入門者講習資料

基本的な作図手順

1. 変数に値を代入する2. 作図用の関数を使って処理する

Saturday, May 19, 12

Page 121: Nagoya.R #8 入門者講習資料

たった2段階ですExcel や SPSS と来たら... orz

Saturday, May 19, 12

Page 122: Nagoya.R #8 入門者講習資料

まずはヒストグラム

【事例】年齢のヒストグラムを

作成する

Saturday, May 19, 12

Page 123: Nagoya.R #8 入門者講習資料

まずはヒストグラム> age <- c(18, 23, 14, 19, 21, 29, 22, 21, 23, 19, 20, 20, 26, 18, 14, 6, 8, 16, 23, 20)> hist(age)

Saturday, May 19, 12

Page 124: Nagoya.R #8 入門者講習資料

次は散布図【事例】英語の試験と英作文の語数の相関を見る

Saturday, May 19, 12

Page 125: Nagoya.R #8 入門者講習資料

続いて散布図> score <- c(60, 50, 72, 43, 50, 55, 43, 50, 85, 40)

> words <- c(340, 190, 465, 170, 130, 225,140, 310, 580, 120)

> plot(score,words)

Saturday, May 19, 12

Page 126: Nagoya.R #8 入門者講習資料

続いて箱ひげ図【事例】

大学生1年生と高校1年生が書いた作文の語数の「幅」を

比較するSaturday, May 19, 12

Page 127: Nagoya.R #8 入門者講習資料

続いて箱ひげ図> high <- c(350, 285, 315, 340, 210, 185, 120, 740, 425, 155)

> coll <- c(365, 570, 645, 540, 645, 665, 880, 550, 410, 585)

> boxplot(high, coll, names=c("High", "Coll"))

Saturday, May 19, 12

Page 128: Nagoya.R #8 入門者講習資料

今度は折れ線グラフ

> x <- rnorm(10) # 平均0,分散1の正規分布の乱数で,10要素のベクトル

> plot(x, type=”l”) # 引数 type を l にして折れ線グラフに

Saturday, May 19, 12

Page 129: Nagoya.R #8 入門者講習資料

> barplot(1:10) # 10本並んだ棒グラフ

> barplot(1:10, col=rainbow(5)) # 引数 col を rainbow(5) にして5色使用

> barplot(1:10, col=rainbow(5), horiz=T) # 引数 horiz を T にして水平に並べる

最後は棒グラフ (1)

Saturday, May 19, 12

Page 130: Nagoya.R #8 入門者講習資料

最後は棒グラフ (2)

> barplot(1:5, col=rainbow(5), horiz=T, names=c("s1", "s2", "s3", "s4", "s5"), main="SAMPLE") # 5本並んだ棒グラフ。項目名やタイトルを追記。

Saturday, May 19, 12

Page 131: Nagoya.R #8 入門者講習資料

グラフの保存方法

> pdf() # pdf デバイスを開く()

> plot(1:10) # プロット → Rplots.pdf に出力> dev.o!() # デバイスを閉じる

★慣れないうちは画面上のメニューから選ぶのが無難

Saturday, May 19, 12

Page 132: Nagoya.R #8 入門者講習資料

ちなみに...

• フォント設定の確認• 使用フォントの指定

Saturday, May 19, 12

Page 133: Nagoya.R #8 入門者講習資料

初期設定は $sans

> sample <- c(1:10)> plot(sample) # $sans適用> plot(sample, family="serif")

Saturday, May 19, 12

Page 134: Nagoya.R #8 入門者講習資料

日本語フォントの指定 (Win)> windowsFonts(JP1=windowsFont("MS Gothic"),

JP2=windowsFont("MS Mincho"))

#それぞれのフォントにニックネームをつけてあげる> sample <- c(1:10)

> plot(sample, family="JP1", main="サンプルの図です")

> plot(sample, family="JP2", main="サンプルの図です")

Saturday, May 19, 12

Page 135: Nagoya.R #8 入門者講習資料

> par(family="HiraKakuPro-W3")  # ヒラギノフォントを使用> sample <- c(1:10)> plot(sample, main="サンプルの図です")

日本語フォントの指定 (Mac)

Saturday, May 19, 12

Page 136: Nagoya.R #8 入門者講習資料

> quartzFonts(hira = quartzFont(rep("HiraKakuPro-W3",4)))

# 面倒でミスりやすいので,par(family=”xxx”) の方が楽

日本語フォントの指定 (Mac)

Saturday, May 19, 12

Page 137: Nagoya.R #8 入門者講習資料

フォント関連参考URL

• http://d.hatena.ne.jp/sakaue/20111220

• http://phi.med.gunma-u.ac.jp/swtips/R.html

• http://cwoweb2.bai.ne.jp/~jgb11101/"les/log.html

Saturday, May 19, 12

Page 138: Nagoya.R #8 入門者講習資料

作図手順のまとめ1. 変数に値を代入する2. 作図用の関数を使って処理する3. 形式を指定して保存

+人に伝承(twitter, FB)

Saturday, May 19, 12

Page 139: Nagoya.R #8 入門者講習資料

http://www.flickr.com/photos/rosengrant/4751386872/

手軽に美しく作図できる    を使えるようになればExcel におさらば!

“y2.d175 | Lasershow! Relax!” by B Rosen

Saturday, May 19, 12

Page 140: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 141: Nagoya.R #8 入門者講習資料

Agenda1. R 概論2. 関数と変数が命3. 外部データの読込4. あっという間に作図5. R で検定

Saturday, May 19, 12

Page 142: Nagoya.R #8 入門者講習資料

この世の様々な現象を数値データ+検定から捉えてみたい

を使う経緯

Saturday, May 19, 12

Page 143: Nagoya.R #8 入門者講習資料

t 検定

カイ二乗検定パワーアナリシス

分散分析

共分散分析

判別分析

主成分分析

クラスカル・ウォリス検定

符号検定

マクマネー検定

因子分析

Saturday, May 19, 12

Page 144: Nagoya.R #8 入門者講習資料

で「t 検定」

Saturday, May 19, 12

Page 145: Nagoya.R #8 入門者講習資料

検定の前に仮説を設ける

• 帰無仮説 H0:「差はない」「効果はない」

• 対立仮説 H1:「差がある」「効果がある」• H0が正しいという前提で,検定統計量 (t, !2, F ) を求める

• 検定統計量が極端で滅多に得られないような値となれば,帰無仮説を棄却し,対立仮説を採択する

Saturday, May 19, 12

Page 146: Nagoya.R #8 入門者講習資料

t 検定

• 2つのグループの平均値の差の検定するのに使う手法

• R では,t.test() であっさりと実行

Saturday, May 19, 12

Page 147: Nagoya.R #8 入門者講習資料

• (例)英語の好きな組と嫌いな組が受けたテストの平均値に差があるかどうか

> like <- c(6,10,6,10,7,8,7,9,10,4)> dislike <- c(3,5,6,4,4,8,4,5,4,7)> t.test(like,dislike,var.equal=TRUE)

t 検定

Saturday, May 19, 12

Page 148: Nagoya.R #8 入門者講習資料

> t.test(like,dislike,var.equal=TRUE)

Two Sample t-test

data: like and dislike t = 3.3041, df = 18, p-value = 0.003946alternative hypothesis: true difference in means is not equal to 0 # 両側検定95 percent confidence interval: # 信頼区間 0.9831754 4.4168246 sample estimates:mean of x mean of y 7.7 5.0

t 検定

Saturday, May 19, 12

Page 149: Nagoya.R #8 入門者講習資料

t 検定の前に...

http://aoki2.si.gunma-u.ac.jp/lecture/Average/bunsan1.html

“等分散であるかどうかを確かめてから,普通の t 検定を使うか,Welch の方法による t 検定にするかを決めるというのは,よくない。最初から

Welch の方法による t 検定を使えばよい。”

Saturday, May 19, 12

Page 150: Nagoya.R #8 入門者講習資料

問答無用にWelch !

よく分からないが(解説希望),1つのこと(有意差の有無)を知りたいのに,予備の検定を含めた2段階の検定を行うのが「気持ち悪い」らしい。

Saturday, May 19, 12

Page 151: Nagoya.R #8 入門者講習資料

ソース! ソース!―(等分散の検定はせず)最初から Welch で行け―

• http://oku.edu.mie-u.ac.jp/~okumura/blog/node/2262

• http://aoki2.si.gunma-u.ac.jp/lecture/BF/index.html

• Donald W. Zimmerman, ``Some properties of preliminary tests of equality of variances in the two-sample location problem'', The Journal of General Psychology, Vol.123, pp.217-231 (1996)

• The unequal variance t-test is an underused alternative to Student's t-test and the Mann-Whitney U test -- Ruxton 17 (4): 688 -- Behavioral Ecology

• 馬車馬のように: [統計]Mann-WhitneyのU検定と不等分散(http://qdai.way-nifty.com/qjes/2005/02/mannwhitneyu.html

Saturday, May 19, 12

Page 152: Nagoya.R #8 入門者講習資料

> t.test(like,dislike,var.equal=FALSE)

Welch Two Sample t-test

data: like and dislike t = 3.3041, df = 16.795, p-value = 0.004249alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 0.9743014 4.4256986 sample estimates:mean of x mean of y 7.7 5.0

という訳で...

Saturday, May 19, 12

Page 153: Nagoya.R #8 入門者講習資料

ところで t 検定の t は何なのかと...

• t 分布の t なんだけど...

• ゴセットの発表した統計量(Student の t 分布)に,(論敵の)フィッシャーが t という記号を充てた

• 別に特別な意味は無く,論文中の標本分散s^2に対する式だったことから,s の次の t を使ったらしい...

• 「ウィリアム・ゴセット」http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A3%E3%83%AA%E3%82%A2%E3%83%A0%E3%83%BB%E3%82%B4%E3%82%BB%E3%83%83%E3%83%88

• 「自由度」http://ja.wikipedia.org/wiki/%E8%87%AA%E7%94%B1%E5%BA%A6

• http://mat.isc.chubu.ac.jp/fpr/fpr1997/0119.html

• http://www.pol.geophys.tohoku.ac.jp/~hanawa/ori/ori/054.html

Saturday, May 19, 12

Page 154: Nagoya.R #8 入門者講習資料

t 検定

カイ二乗検定パワーアナリシス

分散分析

共分散分析

判別分析

主成分分析

クラスカル・ウォリス検定

符号検定

マクマネー検定

因子分析

Saturday, May 19, 12

Page 155: Nagoya.R #8 入門者講習資料

で「カイ二乗検定」

Saturday, May 19, 12

Page 156: Nagoya.R #8 入門者講習資料

カイ二乗検定• 独立性の検定のために使う(連関の有無)

• (例)数学が好き嫌いと統計の好き嫌いの間に有意な連関があるか

• (例)あるコーパス中の表現Aと表現Bの頻度の差

• ざっくり言えば,期待度数と観測度数のズレが偶然出ちゃったかどうかを調べる

Saturday, May 19, 12

Page 157: Nagoya.R #8 入門者講習資料

事例: 接続詞 “しかし” の生起位置の比較

文頭 文中 文末 合計頻度 109 347 8 493

[文頭] しかし, ....[文中] ..., しかし, ....

[文末] ..., しかし.

注)実は,英語の “however” の例

Saturday, May 19, 12

Page 158: Nagoya.R #8 入門者講習資料

> freq <- c(109,347,8)> chisq.test(freq,correct=FALSE)

Chi-squared test for given probabilities

data: freq X-squared = 391.7371, df = 2, p-value < 2.2e-16

# 手作業なら,カイ二乗分布表の自由度2のところを確認する# http://homepage2.nifty.com/nandemoarchive/toukei_kiso/t_F_chi.htm

生起位置の比較のためにカイ二乗検定を実行

Saturday, May 19, 12

Page 159: Nagoya.R #8 入門者講習資料

t 検定

カイ二乗検定パワーアナリシス

分散分析

共分散分析

判別分析

主成分分析

クラスカル・ウォリス検定

符号検定

マクマネー検定

因子分析

Saturday, May 19, 12

Page 160: Nagoya.R #8 入門者講習資料

で「分散分析」

Saturday, May 19, 12

Page 161: Nagoya.R #8 入門者講習資料

分散分析• 3つ以上の平均値の差の検定のために使う

• t 検定は使えない:検定の多重性の問題あり=本当は差がないのに,差があると判断してしまう確率(第1種の誤り)が上がってしまう

• ANOVA(アノーバ、ANalysis Of VAriance)

• F という検定統計量を利用(F 分布)

Saturday, May 19, 12

Page 162: Nagoya.R #8 入門者講習資料

Aクラス Bクラス Cクラス10 9 68 7 49 4 36 5 99 2 25 8 67 4 29 2 48 8 3

10 4 9

分散分析

Saturday, May 19, 12

Page 163: Nagoya.R #8 入門者講習資料

> test <- read.csv("demo.csv", head=T)> anova(lm(Class ~ Score, data=test))Analysis of Variance Table

Response: Class Df Sum Sq Mean Sq F value Pr(>F) Score 1 5.2389 5.2389 9.9376 0.00384 **Residuals 28 14.7611 0.5272 ---Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

分散分析

Saturday, May 19, 12

Page 165: Nagoya.R #8 入門者講習資料

• 差がありそうかなさそうかを判断するために各種検定を行う• 平均値の差の検定:t 検定と分散分析• 独立性の検定  :カイ二乗検定

• 数行のコマンドであっさり検定!

• データ準備の手間は多少かかるかも...

で検定のまとめ

Saturday, May 19, 12

Page 166: Nagoya.R #8 入門者講習資料

この世の現象を数値データ+検定から捉えてみよう!

を使って

Saturday, May 19, 12

Page 167: Nagoya.R #8 入門者講習資料

参考文献

Saturday, May 19, 12

Page 168: Nagoya.R #8 入門者講習資料

参考文献

Saturday, May 19, 12

Page 169: Nagoya.R #8 入門者講習資料

参考文献(続)

Saturday, May 19, 12

Page 170: Nagoya.R #8 入門者講習資料

1,785円 3,780円2,940円

参考文献(続)

Saturday, May 19, 12

Page 171: Nagoya.R #8 入門者講習資料

One more thing...

Saturday, May 19, 12

Page 172: Nagoya.R #8 入門者講習資料

舟尾暢男氏による参考資料第 22 回日本疫学会総会第19回疫学セミナー 「統計解析ソフトRの活用」

統計解析ソフト R の活用~ R 入門& R でデータハンドリング~

http://www.occn.zaq.ne.jp/cuhxr802/epi_20120126.pdf

Saturday, May 19, 12