Slide 1

Slide 1 text

F3S講習会 統計データ処理ツールを使ってみよう (R入門) 広島大学情報メディア教育研究センター 隅谷孝洋

Slide 2

Slide 2 text

‣ R is a language and environment for statistic computing and graphics [Rとは、統計計算と統計グラフのための 言語であり、(実行)環境である。] https://www.r-project.org/about.html

Slide 3

Slide 3 text

΍Γ͍ͨ͜ͱ ॲཧखॱ ʢΞϧΰϦζϜʣ 1: int main(int argc,char 2: int i=0; 3: char c; 4: while(i==0){ 5: c=getchar(); ϓϩάϥϜ ࣮ߦʂ (プログラミング)言語 (実行)環境

Slide 4

Slide 4 text

本日のメニュー 1. Rの準備 2. コマンドの投入と結果の表示 3. Excelのデータの読み込み 4. データの要約 5. データの視覚的な確認 6. いくつかの統計分析手法を使ってみる

Slide 5

Slide 5 text

1. Rの準備

Slide 6

Slide 6 text

Rの準備 ‣ R ✓ R実行環境 ✓ これだけでも利用可 ‣ RStudio ✓ Rの(もっと便利な)実行環境 ✓ 普段はこちらを利用 ʴ

Slide 7

Slide 7 text

Rのインストール https://www.r-project.org/about.html (日本のミラーサイトを選択) $3"/ͷαΠτ Download R for (Mac) OS X → R-3.5.1.pkg (最新版) Download R for Windows → Install R for the rst time              → Download R 3.5.1 for Windows

Slide 8

Slide 8 text

RStudio のインストール https://www.rstudio.com (下の方までスクロールして...) RStudio 1.1.463 - Windows Vista/7/8/10 RStudio 1.1.463 - Mac OS X 10.6+ (64-bit)

Slide 9

Slide 9 text

RStudioを起動してみる νΣοΫʂ

Slide 10

Slide 10 text

2. コマンドの投入と結果の表示

Slide 11

Slide 11 text

まずは、ここに 入れてみましょう

Slide 12

Slide 12 text

電卓として使う ‣ 式を打ち込んでみよう > 1+1 > 100/3 > 100/3*3 ‣ かっこも使える > (3+5)*7 > 3+5*7 # 結果が違う

Slide 13

Slide 13 text

Rのコマンドをファイルとして残しておこう ‣ 「プロジェクト」を作ると、一連のファイル をひとまとめにしやすい ✓ 命令(コマンド)を記したファイル ✓ データファイル ✓ 結果のグラフ ‣ File → New Project    → New Directory → New Project

Slide 14

Slide 14 text

Rのコマンドをファイルとして残しておこう ‣ File→New File→R Script ίϚϯυΛ ॻ͍ͯɺ DUMFOUFS ݁Ռ͸ ͪ͜Βʹग़Δ

Slide 15

Slide 15 text

高級な電卓として使う ‣ ベキ乗 ^ とか > 2^16 ‣ 関数とかも使える > sin(pi/2) # > exp(1) # > factorial(10) # > choose(5,2) # sin ⇡ 2 10! 5C2 e1

Slide 16

Slide 16 text

グラフを描いてみよう > plot(c(5,5,4,3,3,4,1,1,1)) > x=c(5,4,3,3,1,4,1,1,1) # 変数に代入 > plot(x) # スッキリ > plot(x,type="b") # これ、何のデータ? > plot(x,type="b",ylim=c(6,1)) > yr=2010:2018 > plot(yr,x,type="b",ylim=c(6,1))

Slide 17

Slide 17 text

Rでは、変数(オブジェクト)の中身の基本はベクトル > x # 変数名のみ入れると内容の表示 > x+10 # 数学のベクトルとは違う > x+c(10,100) # 長さが違うものを足すと? > x[1] # 最初の数値を取り出す > x[c(1,3,5)] # 1,3,5番目を取り出す

Slide 18

Slide 18 text

一度終了して、再び開いてみよう ‣ コマンドファイルに名前をつけて保存 ‣ RStudio の終了 ‣ フォルダ内のファイルの確認 ‣ プロジェクトファイルをダブルクリックし て再起動

Slide 19

Slide 19 text

3. Excelデータの読み込み

Slide 20

Slide 20 text

Excelのデータは、CSVにして読み込み ‣ Bb9から"carp.xlsx"をダウンロード ‣ Excelで開いて内容を確認 ‣ CSV (UTF-8) で保存 → carp.csv ‣ Windowsの人は「CSV」で保存

Slide 21

Slide 21 text

CSVファイルを読み込むと「データフレーム」ができる > read.csv("carp.csv") # 画面に出ちゃう > c=read.csv("carp.csv") # 変数cに保存 > c # 読めたか確認 ‣ 「データフレーム」は、名前がついたベクト ルの集まり > c$身長 # 「身長」という名前の列 > c$身長[3] # その三番目の値 > mean(c$身長) # 身長の平均

Slide 22

Slide 22 text

データフレーム(続き) > c$BMI=c$体重/(c$身長/100)^2 # BMI を計算 > c[c$BMI>30,] # BMI が30より大きい選手 BMI = Weight(kg) Height(m) 2

Slide 23

Slide 23 text

おまけ1:こんなのもあります Excelのファイルを直接読み込む ‣ install.packages("readxl") ‣ library(readxl) ‣ carp=read_excel("carp.xlsx",1) ‣ dragons=read_excel("carp.xlsx",2)

Slide 24

Slide 24 text

4. データの要約

Slide 25

Slide 25 text

summary という関数が便利 ✓ summary(c) ‣ 数値データ ✓ Min(最小値),1st Qu.(第1四分位 点), Median(中央値), Mean(平 均), 3rd Qu. (第3四分位点), Max(最大値) ‣ カテゴリーデータ ✓ 頻度

Slide 26

Slide 26 text

グループの要約 > # BMIが26より大きい選手のsummary > summary(c[c$BMI>26,]) > # ポジションごとの身長のsummary > tapply(c$身長,c$ポジション,summary)

Slide 27

Slide 27 text

5. データの視覚的な確認

Slide 28

Slide 28 text

度数分布図、散布図、箱ヒゲ図 > hist(c$身長) ‣ Macの人...化けていますね orz > # ヒラギノ角ゴシックをW3使うように指定 > par(family = "HiraKakuProN-W3") > hist(c$身長)

Slide 29

Slide 29 text

気を取り直して、度数分布図、散布図、箱ヒゲ図 > hist(c$身長) # 度数分布図 > barplot(table(c$ポジション)) > plot(c$身長,c$体重) # 散布図 > plot(c) # 散布図行列 > plot(c[,c(4,5,6,9)]) > boxplot(c$身長) # 箱ひげ図 > boxplot(c$身長[c$ポジション=="投手"],  c$身長[c$ポジション!="投手"], names=c("投手","それ以外"),ylab="身長")

Slide 30

Slide 30 text

おまけ2:こんなのもあります 心理学研究用パッケージ > install.packages("psych") > library(psych) > pairs.panels(c[,c(4,5,6,9)])

Slide 31

Slide 31 text

ググって描いてみよう (1)

Slide 32

Slide 32 text

ググって描いてみよう (2)

Slide 33

Slide 33 text

6. いくつかの統計分析手法を使ってみる

Slide 34

Slide 34 text

線形回帰 > plot(c$体重 ~ c$身長) > result=lm(c$体重 ~ c$身長) > abline(result) > summary(result)

Slide 35

Slide 35 text

左利きが多いのか? 世間一般の左利き率が0.1として、二項検定をおこなってみる > summary(c$投) > binom.test(13,13+56,0.1) > cp=c[c$ポジション=="投手",] > summary(cp$投) > binom.test(11,11+23,0.1)

Slide 36

Slide 36 text

Rのメリット ‣ 統計計算に特化 ‣ グラフがキレイ ‣ コマンド(=テキスト情報)でやったこと が残るので、再現が簡単 ‣ 新しい手法がどんどん実装される ‣ 無料!オープンソース