Top Banner
R入門 中西大輔 (広島修道大学人文学部) [email protected] @daihiko SappoRo.R #3 (2014) 7/25/2014 北海学園大学 1
54

SappoRoR #3 (2014) R入門

Jun 15, 2015

Download

Software

SappoRoR #3 (2014) @北海学園大学での「R入門」チュートリアルのスライド
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SappoRoR #3 (2014) R入門

R入門中西大輔 (広島修道大学人文学部)

[email protected] @daihiko

SappoRo.R #3 (2014) 7/25/2014 北海学園大学

1

Page 2: SappoRoR #3 (2014) R入門

自己紹介• 氏名: 中西大輔 (@daihiko)

• 所属: 広島修道大学人文学部 (修道院とは無関係)

• 専門: 社会心理学

• 経歴: 北教大 (学部) →北大 (博士前期・後期)

• プチ学歴ロンダ組

2

Page 3: SappoRoR #3 (2014) R入門

統計ソフトの使用歴• 学部時代

• SPSS 6

• 大学院時代

• SAS 6 / 7

• 就職後

• SAS 8 / 9, R, HAD, (SPSS……一応持っている), JMP (何度か使った)

3

Page 4: SappoRoR #3 (2014) R入門

統計は苦手である• 基本的に文系脳

• 行列とかもう見たくもない

• 検定は僕にとってほとんどブラックボックスに近い

• 単なるいちユーザー

• チュートリアルには向いていない

4

Page 5: SappoRoR #3 (2014) R入門

なぜRか?

• フリーで (SPSSとかSASはバカ高い)

• 美しく (Excelのグラフは吐き気がする)

• CUI (GUIはクソ)

5

Page 6: SappoRoR #3 (2014) R入門

本音

• HADでいいじゃん。

6

Page 7: SappoRoR #3 (2014) R入門

Rを使うためにすること• SPSSを棄てる

• 物理的に

• Windowsを棄てる

• Windowsだとつい機能豊富なHADを使ってまうが、MacだとHADが遅いのでRを使う気持ちが増大する (p<.05, d=0.8)。

7

Page 8: SappoRoR #3 (2014) R入門

本音

• HADでいいじゃん。

8

Page 9: SappoRoR #3 (2014) R入門

Rの基本• RはRStudioとセットで使うと便利なので、最初からRとRStudio両方インストールする。

• データはExcelで入力しても良いが、csv形式にする (csvが分からない人はググれください)。

• データに日本語が入っている場合にはWindowsとMacとで対応が異なるが、日本語を使わなければよい (スーパーグローバル研究者)。

9

Page 10: SappoRoR #3 (2014) R入門

Rで読み込むデータ

• ふつうのcsv形式のデータ

• いわゆるコンマで区切られたデータ

• 1オブザベーション1行のデータ

• 欠損値には「NA」を入れる。

10

Page 11: SappoRoR #3 (2014) R入門

Rを使うときには

• Rをインストールする (当然)

• cran.r-project.org

• RStudioをインストールする (これも当然)

• www.rstudio.com

11

Page 12: SappoRoR #3 (2014) R入門

12

Page 13: SappoRoR #3 (2014) R入門

13

Page 14: SappoRoR #3 (2014) R入門

Script Data

FileConsole

14

Page 15: SappoRoR #3 (2014) R入門

RStudioの使い方

• プロジェクトを作る

• なぜプロジェクトを作った方がよいかはまた後で自分で調べておいてください (ヒントはWorking Directory)。とにかく、プロジェクトを作る。

15

Page 16: SappoRoR #3 (2014) R入門

プロジェクトを作る

• FileからNew Projectを選ぶ。

• 古いバージョンの場合

• Projectメニューから。

16

Page 17: SappoRoR #3 (2014) R入門

Working Directoryの指定• 要するに「ここにデータがあって、ここで作業するよ」というフォルダ (= directory) のこと。

• Session -> Set Working Directory -> Choose Directory

• コンソールウィンドウに「setwd(“~/Dropbox/nakanisi/2014/SappoRoR")」とか表示されたら成功。

17

Page 18: SappoRoR #3 (2014) R入門

ソースファイルの作成• ソースファイルとは、データのハンドリングや分析の命令を書くための手順書みたいなもの。

• File -> New File -> R Script

• とりあえず、名前を付けて保存しておく。

• File -> Save As…

• ここでは「test」という名前を付ける。18

Page 19: SappoRoR #3 (2014) R入門

データファイルの読み込み• データファイルはコンマ区切りのcsv形式

• 基本的に1オブザベーションにつき1行で入力

• Excelで入力した場合には

• ファイル -> 名前を付けて保存... -> フォーマットから「CSV (コンマ区切り) (.csv)」を選んで保存する。

19

Page 20: SappoRoR #3 (2014) R入門

サンプルデータの構造• datar.csv

• 1行目は変数名 (日本語もいけるが、文字コードの関係で面倒なので、英数字にしよう)。

• 欠損値は「NA」

• 54人分のデータ

20

Page 21: SappoRoR #3 (2014) R入門

データの読み込み• datar.csvをさきほど指定したWorking Directoryに移動またはコピーしよう。

• さきほど作成したソースファイルの一行目に以下の文字列を入力する。

• data<-read.csv (“datar.csv”, head=TRUE)

• (datar.csvの内容を読み込み、dataというデータフレームに入れなさいという意味)

21

Page 22: SappoRoR #3 (2014) R入門

こんなのが表示されたら成功 (54人分のデータで変数が10個あるという意味)

22

Page 23: SappoRoR #3 (2014) R入門

データのかくにん!• この「data」のあたりをダブルクリックしてみよう。

23

Page 24: SappoRoR #3 (2014) R入門

データのかくにん!

• 左上にExcel的にデータが表示される。これで、あんしん。

24

Page 25: SappoRoR #3 (2014) R入門

追加情報

• (ここにいらっしゃる方々はまさかSPSSなんて使っていないと思いますが) SPSSやExcelなどのデータファイルも読み込むことができる。foreignパッケージでググれ。

25

Page 26: SappoRoR #3 (2014) R入門

さあ、データをいじろう!

• まずはデータの全体像を知りたい。

• summary (data)

• dataデータフレームの全ての変数の最小値、第1四分位、中央値、平均値、第3四分位、最大値が表示される。

26

Page 27: SappoRoR #3 (2014) R入門

特定の変数の平均値だけ出す

• mean(data$age)

• 「data$age」とは、「dataというデータフレームのageという変数」という意味。

• なんでそんな面倒くさいことをしなきゃいけないのかと思われるかもしれないが、複数のデータフレームを扱うこともあるのだから、しかたがない。

27

Page 28: SappoRoR #3 (2014) R入門

男女別に年齢の平均値を出す• 汎用的な方法 (あらゆる関数で使える)

• by (data, data$sex, function(data) mean(data$age, na.rm=TRUE))

• na.rm=TRUE……欠損値は無視しろという命令。

• function(data)……おまじない。気にしない。

• 簡単な方法 (関数を選ぶ: 複数の値を返す変数は使えない)

• tapply(data$age, data$sex, mean, na.rm=TRUE)28

Page 29: SappoRoR #3 (2014) R入門

データの構造• データ (変数) にはいろいろな種類がある。よく使うのは、

• numeric: 数値

• integer: 整数型

• factor: 因子型 (カテゴリカルな変数)

29

Page 30: SappoRoR #3 (2014) R入門

データ構造を確認する• str (data)

• 全部int型になる。

• でも、sexとかcondはfactor型が正しい。

• (なんで正しい型じゃなければいけないのかと思うかもしれませんが、分散分析のときにfactor型じゃないものを独立変数にするとうまく動かないとかそういうことがあるので、とにかく問答無用でやっておく)

30

Page 31: SappoRoR #3 (2014) R入門

変数一覧を出力

• names (data)

Page 32: SappoRoR #3 (2014) R入門

データの型の変換• factor関数でカテゴリカル変数に

• data$id<-factor (data$id)

• data$cond1<-factor (data$cond1)

• data$cond2<-factor (data$cond2)

• data$sex<-factor (data$sex)

• 終わったら、「str (data)」で、かくにん!32

Page 33: SappoRoR #3 (2014) R入門

データの加工

• sex=1が男性、sex=2が女性。でも分かりにくい。どっちがどっちだったか分からなくなるかもしれない (ふつうはコード表作成するから忘れたりしない)。忘れる前に、以下のコードを実行しよう。

• data$sex<-factor(data$sex, labels=list("male", "female"))

33

Page 34: SappoRoR #3 (2014) R入門

かくにん!• 「data$sex」を実行して以下のようになっていたら成功。

34

Page 35: SappoRoR #3 (2014) R入門

もう一度年齢の平均値を• tapply(data$age, data$sex, mean, na.rm=TRUE)

35

Page 36: SappoRoR #3 (2014) R入門

条件も分かりやすくしておこう

• data$cond1<-factor (data$cond1, labels=list("inaction","action"))

• data$cond2<-factor (data$cond2, labels=list("without_confidence", "with_confidence"))

36

Page 37: SappoRoR #3 (2014) R入門

変数の加工• 複数の変数の合計

• data$q_all<-data$q1+data$q2+data$q3+data$q4+data$q5

• カテゴリーに分ける

• data$agecat<-ifelse (data$age>19, “older”, “younger”)

37

Page 38: SappoRoR #3 (2014) R入門

オブザベーションの抽出• cond1がactionのデータのみ抽出

• data2<-subset(data, data$cond1==“action")

• cond1がactionかつsexがmaleのデータのみ抽出

• data3<-subset(data, data$cond1=="action" & data$sex==“male")

• cond1がactionまたはsexがmaleのデータのみ抽出

• data4<-subset(data, data$cond1==“action" | data$sex=="male")

38

Page 39: SappoRoR #3 (2014) R入門

各条件に割り当てられた人数を知りたい

• このデータは、2×2の2要因配置の実験。

• 条件ごとのNが知りたい

• table (data$cond1, data$cond2)

39

Page 40: SappoRoR #3 (2014) R入門

ヒストグラム (簡単)• hist (data$q1)

40

Page 41: SappoRoR #3 (2014) R入門

ヒストグラム (発展)• par (mfrow=c(1,2))

• by (data, data$sex, function (data) hist (data$age))

41

Page 42: SappoRoR #3 (2014) R入門

ヒストグラム (発展)• 画面を縦に3分割する

• par (mfrow=c(1,3))

• hist (data$q1)

• hist (data$q2)

• hist (data$q3)

• 画面分割解除

• par(mfrow=c(1,1))

42

Page 43: SappoRoR #3 (2014) R入門

箱ひげ図• boxplot (data$q_all)

43

Page 44: SappoRoR #3 (2014) R入門

散布図• plot(data$q1, data$q2)

Page 45: SappoRoR #3 (2014) R入門

推測統計もちょっとだけ

• 相関

• t検定

• 回帰分析

• 分散分析

Page 46: SappoRoR #3 (2014) R入門

相関• cor.test(data$q1, data$q2)

Page 47: SappoRoR #3 (2014) R入門

総当たり相関 (準備)

• psychパッケージのcorr.test関数を使う (インターネット接続必要)。

• Tools -> Install Packages…

• Packagesの欄にpsychと入力しinstall

Page 48: SappoRoR #3 (2014) R入門

総当たり相関 (corr.test)

• library("psych")

• corrvar<-data.frame(data$q1, data$q2, data$q3, data$q4, data$q5)

• corr.test(corrvar)

Page 49: SappoRoR #3 (2014) R入門

t検定 (独立標本)• 性別によってq1への回答の平均値に差があるかどうか?

• var.test (data$q1~data$sex) 等分散性の検定

• t.test (data$q1~data$sex) 等分散でない (Welch)

• t.test (data$q1~data$sex, var.equal=T) 等分散

Page 50: SappoRoR #3 (2014) R入門

回帰分析

• lm関数を使う。~の左が従属変数、右が独立変数

• result<-lm (data$q1~data$age+data$q2)

• summary (result)

Page 51: SappoRoR #3 (2014) R入門

分散分析• aov関数

• result<-aov (data$q1~data$cond1*data$cond2)

• summary (result)

• ※ただし、anovakunなどを使うことを強く推奨。

Page 52: SappoRoR #3 (2014) R入門

本音

• HADでいいじゃん。

52

Page 53: SappoRoR #3 (2014) R入門

でも!• HADでは分位点回帰ができない (7/24/2014現在)。

• 任意の分位点における回帰係数を求められる、アツい回帰分析。

• でも、SASでもできるので、きっとHADでも近々できるようになるだろう。

53

Page 54: SappoRoR #3 (2014) R入門

Macユーザーなら• MacRを使えばかなりのことはGUIでできる。

• https://sites.google.com/site/casualmacr/

• まだWindowsを使っている方はこれを機会にMacに乗り換えるとよい。

• おしまい。

54