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

Post on 18-Feb-2017

1.944 views 0 download

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

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

 とは何か• 統計処理を目的とするプログラミング言語• 作者: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

要するに統計ソフト

Saturday, May 19, 12

  の何が良いのか

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

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

Saturday, May 19, 12

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

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

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

Saturday, May 19, 12

Ugeeeeeeeee

Saturday, May 19, 12

Excel や SPSS は...

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

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

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

ExcelSPSS

Saturday, May 19, 12

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

Saturday, May 19, 12

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

  のインストール

Saturday, May 19, 12

  のインストール

• 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

Saturday, May 19, 12

Saturday, May 19, 12

Saturday, May 19, 12

Saturday, May 19, 12

Saturday, May 19, 12

Saturday, May 19, 12

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

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

Saturday, May 19, 12

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

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

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

Saturday, May 19, 12

 のアンインストール• Windows

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

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

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

Saturday, May 19, 12

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

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

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

Saturday, May 19, 12

  の終了

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

Saturday, May 19, 12

  で困ったら...

• まずは 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

  概論まとめ

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

Saturday, May 19, 12

ExcelSPSS

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

• > 3+5 [Enter]

• > 10-3 [Enter]

• > 2*3 [Enter]

• > 100/20 [Enter]

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

 といえば

関数が命

Saturday, May 19, 12

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

Saturday, May 19, 12

何言ってんの?

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

Saturday, May 19, 12

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

Saturday, May 19, 12

sqrt():平方根

•> sqrt(2)

•> sqrt(144)

•> sqrt(104976)

Saturday, May 19, 12

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

Saturday, May 19, 12

  といえば

変数も命

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

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

変数を使うSaturday, May 19, 12

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

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

また何言ってんの?

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

Saturday, May 19, 12

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

Saturday, May 19, 12

変数の名前は “hako”

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

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

Saturday, May 19, 12

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

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

を表現

Saturday, May 19, 12

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

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

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

Saturday, May 19, 12

履歴機能と補完機能

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

Saturday, May 19, 12

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

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

Saturday, May 19, 12

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

Saturday, May 19, 12

以下の関数を実行

•> sqrt(hako)

•> log(hako)

Saturday, May 19, 12

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

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

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

•合計する:sum()

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

Saturday, May 19, 12

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

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

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

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

Saturday, May 19, 12

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

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

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

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

Sub topics

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

例えば...

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

Saturday, May 19, 12

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

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

Saturday, May 19, 12

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

Rでは「行列」を使う

Saturday, May 19, 12

行列とは

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

Saturday, May 19, 12

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

行Saturday, May 19, 12

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

列Saturday, May 19, 12

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

1 2 3

4 5 6

7 8 9

Saturday, May 19, 12

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

Saturday, May 19, 12

そんな行列を扱うために

matrix() 関数を使う

Saturday, May 19, 12

matrix() 関数

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

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

Saturday, May 19, 12

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

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

Saturday, May 19, 12

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

> karada

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

Saturday, May 19, 12

1 4 7

2 5 8

3 6 9

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

Saturday, May 19, 12

1 2 3

4 5 6

7 8 9

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

Saturday, May 19, 12

行列の要素を取り出す

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

Saturday, May 19, 12

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

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

Saturday, May 19, 12

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

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

Saturday, May 19, 12

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

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

Saturday, May 19, 12

行列の要素を取り出す

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

行列まとめ

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

Saturday, May 19, 12

Sub topics

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

Saturday, May 19, 12

データフレームとは

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

Saturday, May 19, 12

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

高橋 B 177 70

阿部 B 174 75

長野 A 179 70

松本 O 170 60

データフレームとは

Saturday, May 19, 12

データフレームとは

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

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

Saturday, May 19, 12

自力で作るなら...

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

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

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

Saturday, May 19, 12

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

Saturday, May 19, 12

ああー聞こえないー

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Sub topics

Saturday, May 19, 12

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

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

Saturday, May 19, 12

おそらく...

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

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

Saturday, May 19, 12

作業ディレクトリの設定

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

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

Saturday, May 19, 12

作業ディレクトリの設定

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

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

• Linux:up to you...

Saturday, May 19, 12

作業ディレクトリの設定

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

• > getwd()

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

Saturday, May 19, 12

データの読込 その1

• read.csv() 関数

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

Saturday, May 19, 12

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

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

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

データの読込 その1

Saturday, May 19, 12

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

という方に

Saturday, May 19, 12

データの読込 その2

• read.delim() 関数

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

Saturday, May 19, 12

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

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

データの読込 その2

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

Saturday, May 19, 12

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

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

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

• ヒストグラムを描く

1列目対象

2列目対象

2列目対象

Saturday, May 19, 12

外部データの読込

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

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

Saturday, May 19, 12

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

CSV 形式にして読み込めば

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

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

Saturday, May 19, 12

ExcelSPSS

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

基本的な作図手順

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

Saturday, May 19, 12

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

Saturday, May 19, 12

まずはヒストグラム

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

作成する

Saturday, May 19, 12

まずはヒストグラム> 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

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

Saturday, May 19, 12

続いて散布図> 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

続いて箱ひげ図【事例】

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

比較するSaturday, May 19, 12

続いて箱ひげ図> 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

今度は折れ線グラフ

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

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

Saturday, May 19, 12

> 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

最後は棒グラフ (2)

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

Saturday, May 19, 12

グラフの保存方法

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

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

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

Saturday, May 19, 12

ちなみに...

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

Saturday, May 19, 12

初期設定は $sans

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

Saturday, May 19, 12

日本語フォントの指定 (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

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

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

Saturday, May 19, 12

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

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

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

Saturday, May 19, 12

フォント関連参考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

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

+人に伝承(twitter, FB)

Saturday, May 19, 12

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

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

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

Saturday, May 19, 12

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

を使う経緯

Saturday, May 19, 12

t 検定

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

分散分析

共分散分析

判別分析

主成分分析

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

符号検定

マクマネー検定

因子分析

Saturday, May 19, 12

で「t 検定」

Saturday, May 19, 12

検定の前に仮説を設ける

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

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

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

Saturday, May 19, 12

t 検定

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

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

Saturday, May 19, 12

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

> 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

> 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

t 検定の前に...

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

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

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

Saturday, May 19, 12

問答無用にWelch !

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

Saturday, May 19, 12

ソース! ソース!―(等分散の検定はせず)最初から 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

> 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

ところで 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

t 検定

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

分散分析

共分散分析

判別分析

主成分分析

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

符号検定

マクマネー検定

因子分析

Saturday, May 19, 12

で「カイ二乗検定」

Saturday, May 19, 12

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

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

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

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

Saturday, May 19, 12

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

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

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

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

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

Saturday, May 19, 12

> 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

t 検定

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

分散分析

共分散分析

判別分析

主成分分析

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

符号検定

マクマネー検定

因子分析

Saturday, May 19, 12

で「分散分析」

Saturday, May 19, 12

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

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

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

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

Saturday, May 19, 12

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

> 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

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

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

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

で検定のまとめ

Saturday, May 19, 12

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

を使って

Saturday, May 19, 12

参考文献

Saturday, May 19, 12

参考文献

Saturday, May 19, 12

参考文献(続)

Saturday, May 19, 12

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

参考文献(続)

Saturday, May 19, 12

One more thing...

Saturday, May 19, 12

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

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

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

Saturday, May 19, 12