66
[入門セッション] Rによるやさしい統計学 第1章 23章は余力が無かった〜 doradora09

Tokyor23 doradora09

Embed Size (px)

Citation preview

Page 1: Tokyor23 doradora09

[入門セッション]Rによるやさしい統計学

第1章〜 2章3章は余力が無かった〜

doradora09

Page 2: Tokyor23 doradora09

Outline

● 自己紹介● お知らせ● テキスト紹介● Rの導入● Rをさわってみる● 変数と行列● 関数とパッケージ● まとめ

Page 3: Tokyor23 doradora09

自己紹介

● 大城信晃 (Twitter:doradora09)● DB寄りWebエンジニア● TokyoRは第1回目から参加。

– 今回で20回目くらい。主に運営のお手伝い● 趣味:お酒、楽器(ホルン)● マイブーム:ルノアールで夜活

– ソファーが快適

Page 4: Tokyor23 doradora09

お知らせ(1/4) セキココ● セキココという勉強会の座席共有サービスがあるので、もしよ

ければ使ってみてください● 席に座っている人のTwitterアカウントが分かるので便利です● http://sekico.co/

Page 5: Tokyor23 doradora09

お知らせ(2/4) 飲み物● 簡単ながらブースの後ろの方にお菓子・お飲

物を用意させていただきました● 休憩時間にどうぞご利用下さい

– (いつかスイーツタイムを組み込んでみたい)

※画面はイメージです

Page 6: Tokyor23 doradora09

お知らせ(3/4) 懇親会● TokyoRではセッション終了後に懇親会を実施して

います● 発表後の参加も可能ですので、プレゼンを聞いて興

味を持たれた方は是非ご参加下さい● 一般1500円、学生は無料です!

※画面はイメージです

Page 7: Tokyor23 doradora09

お知らせ(4/4) 本日のウィスキー● 出張BAR企画ということで今日はシングルト

ンを持ってきました● あとカシスもあります。懇親会でどうぞ。

※画面はイメージですがだいたい合ってる

Page 8: Tokyor23 doradora09

そろそろ本題へ

Page 9: Tokyor23 doradora09

本セッション目的● R初心者にRをインストールしてもらう● Rの簡単な使い方を覚えてもらう

– が主な目的です– 新年度になり初めてRを使うユーザーさんもいると思うの

で、まずは導入編として

– R玄人の皆様には繰り返しになり申し訳ありません– 自習 or 睡眠学習の時間としてご活用下さいm(_ _)m– (セキココで参加者をフォローしまくってみるとか・・)

Page 10: Tokyor23 doradora09

テキスト紹介● Rによるやさしい統計学● オーム社 (2008/1/25)● 記念すべき第1回TokyoR

で用いたテキスト– よくまとまっているので

もう一度利用してみようと思います

http://amazon.jp/dp/4274067106/creazynet-22/ref=nosim/

Page 11: Tokyor23 doradora09

Rとは何か● 統計解析用のソフトウェア● 無料で利用可能● 基本的にコードを記述して動作させる

– プログラミング言語としての側面● 金融やマーケティング、医療など様々な分野で

利用されている● 各地にR言語のコミュニティや勉強会があり、

情報交換が行われている

Page 12: Tokyor23 doradora09

紹介:各Rコミュニティの過去発表資料一覧

● ATNDの下のリンクからどうぞ– http://atnd.org/events/28416

● 「勉強会発表内容一覧 – Japan.R WIki」● 発表のタイトルを見るだけでもどういう用途があるか、あ

る程度参考になると思います

Page 13: Tokyor23 doradora09

Rの導入● Windows, Mac, Linux版がある● いずれも無料

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

– Mac, Linux● http://cran.md.tsukuba.ac.jp/

Page 14: Tokyor23 doradora09

URLが分からない場合は● 「rjpwiki」で検索● Rでインストールという項目からたどればOK

Page 15: Tokyor23 doradora09

Windows版の導入● 基本的に他のアプリケーションと同様にイン

ストールできます– 基本「次へ」を連打でOK

● インストーラーをダウンロード後、ダブルクリックで起動してください

Page 16: Tokyor23 doradora09

インストール画面

Page 17: Tokyor23 doradora09

インストール画面

Page 18: Tokyor23 doradora09

インストール画面

Page 19: Tokyor23 doradora09

インストール画面

Page 20: Tokyor23 doradora09

インストール画面

Page 21: Tokyor23 doradora09

インストール画面

Page 22: Tokyor23 doradora09

インストール画面

Page 23: Tokyor23 doradora09

● あとはインストールが完了するまで待てばOK

Page 24: Tokyor23 doradora09

Rの起動● インストールが完了するとRのアイコンが作成されます● Rのアイコンをダブルクリックして起動するとRコンソールが起動します● Rコンソール上で実行したい処理を記述していきます

Page 25: Tokyor23 doradora09

電卓として使う● 一番シンプルな使い方● +や-といった演算子を用いて基本的な計算ができます● Rコンソール上で以下のように記述して下さい

– #以降はコメントアウトされるので無視でOK● エンターで実行

3+5 #足し算 10-3 #引き算 2*3 #掛け算 20/4 #割り算 5^2 #5の2乗13 %% 5 #13を5で割った余り(剰余)

Page 26: Tokyor23 doradora09

実行結果> 3+5 #足し算[1] 8> 10-3 #引き算 [1] 7> 2*3 #掛け算[1] 6> 20/4 #割り算[1] 5> > 5^2 #5の2乗[1] 25> 13 %% 5 #13を5で割った余り(剰余)[1] 3

Page 27: Tokyor23 doradora09

関数電卓として利用● 関数はいくつかの処理をまとめたもの● 関数を利用することで様々な処理を手軽に実施できる● 関数名(引数) という記述で利用

– 関数によって引数の個数が変化● 以下は関数の例

– sum(10,20,30) #引数の合計を求める– sqrt(16) #16の平方根を求める– date() #日付を表示

Page 28: Tokyor23 doradora09

関数電卓として利用● 関数はいくつかの処理をまとめたもの● 関数を利用することで様々な処理を手軽に実施でき

る● 関数名(引数) という記述で利用

– 関数によって引数の個数が変化● 以下は関数の例

– sum(10,20,30) #引数の合計を求める– sqrt(16) #16の平方根を求める– date() #日付を表示

Page 29: Tokyor23 doradora09

実行結果

> sum(10,20,30) #引数をすべて合計する[1] 60> sqrt(16) #16の平方根を求める[1] 4> date() #日付を表示[1] "Fri May 25 09:48:09 2012"

Page 30: Tokyor23 doradora09

レポート用の図を作成● plot等の関数で作図が可能● plot(c(10,20,30))とした例

– c()はデータの値を結合する関数

Page 31: Tokyor23 doradora09

参考:きれいな作図● ggplot2という外部パッケージを利用すると視

覚的にきれいな作図が可能– パッケージの導入法は後述します

Page 32: Tokyor23 doradora09

データを効率的に扱う● ここではデータを効率的に扱うために

– 変数– 行列のデータ作成– 外部ファイルの読み込みについて説明します

Page 33: Tokyor23 doradora09

変数● 変数を用いることで値をまとめて扱えます● 先ほどのsum(10,20,30) の引数10,20,30場合● 変数名 <- c(値1,値2,値3) と記述● 例

– values <- c(10, 20, 30) #変数valuesに値をセット– values #変数名を書くと中身が見れる – sum(values) #sum関数に変数を渡す

● なお変数名は自由につけられます

Page 34: Tokyor23 doradora09

実行結果> values <- c(10, 20, 30) #変数valuesに値をセット> values #変数名を書くと中身が見れる [1] 10 20 30> sum(values) #sum関数に変数を渡す[1] 60

#補足> sum(c(10,20,30)) #こう書いても同じ結果[1] 60

● 変数を用いると複数の値をまとめて扱えるので便利

Page 35: Tokyor23 doradora09

行列の表現● 次のようなデータをRで利用する方法について説明します● ホークスの選手5人の身長(height)と年俸(salary)を表現した表

height salary

173 17000

178 14000

180 9000

183 50000

182 30000

Page 36: Tokyor23 doradora09

Rで行列を記述● matrix(c(値), 行数, 列数) という方法で記述● 例

– hawks <- matrix(c(173, 178, 189, 183, 182,

17000, 14000, 9000, 50000, 30000), 5, 2)

Page 37: Tokyor23 doradora09

実行結果

● 変数hawksに5行2列の行列が格納された

> hawks <- matrix(c(173, 178, 189, 183, 182,+ 17000, 14000, 9000, 50000, 30000), 5, 2)

> hawks #変数の中身確認(行列) [,1] [,2][1,] 173 17000[2,] 178 14000[3,] 189 9000[4,] 183 50000[5,] 182 30000

Page 38: Tokyor23 doradora09

発展:行列の要素へのアクセス● 行列の各要素には以下の方法でアクセスします

– n行目(横のデータ)を表示する場合は 変数名[n,]

– m列目(縦のデータ)を表示する場合は 変数名[,m]

– n行m列目を表示する場合は 変数名[n,m]● 例

– hawks #行列全体を表示– hawks[1,] #1行目のデータにアクセス– hawks[,1] #1列目のデータにアクセス– hawks[3,2] #3行2列目のデータにアクセス

Page 39: Tokyor23 doradora09

実行結果> hawks #行列全体を表示 [,1] [,2][1,] 173 17000[2,] 178 14000[3,] 189 9000[4,] 183 50000[5,] 182 30000

> hawks[1,] #1行目のデータにアクセス[1] 173 17000> hawks[,1] #1列目のデータにアクセス[1] 173 178 189 183 182> hawks[3,2] #3行2列目のデータにアクセス[1] 9000

Page 40: Tokyor23 doradora09

外部ファイルの読み込み● RではCSV形式の外部ファイルを読み込むこと

ができます– CSV:カンマ区切りのデータフォーマット

● ここではエクセルと連携しやすいように、エクセルのデータからCSVファイルを作成し、Rに取り込む方法を説明します

Page 41: Tokyor23 doradora09

データの用意● 先ほども用いたホークスの選手の身長と年俸

を表現したリストをエクセルで用意します

height salary

173 17000

178 14000

180 9000

183 50000

182 30000

Page 42: Tokyor23 doradora09

エクセルで作る場合● データをエクセル上で記述● 1行目はヘッダー行で項目名に相当● 2行目以下が各項目の値

Page 43: Tokyor23 doradora09

エクセルの保存形式の変更● エクセルのデータは通常はCSV形式ではないためそのままでは利用できま

せん● 保存する際にCSV形式を選択します● ここではhawks.csvというファイル名で保存

Page 44: Tokyor23 doradora09

CSVファイルの確認● 作成したhawks.csvをテキストエディタで開く

と次のようにカンマ区切りのデータが確認できます

height,salary173,17000178,14000180,9000183,50000182,30000

● なお直接テキストエディタでこのようなデータを作ることも可能です

Page 45: Tokyor23 doradora09

CSVファイルの読み込み● 作成したCSVファイルを読み込むためには、まず

CSVファイルを保存したフォルダに作業フォルダを移動します

● Rコンソールでは次の手順– 「ファイル」 → 「ディレクトリの変更」

● コマンドだと以下の手順– getwd() #現在の作業ディレクトリを確認– setwd(“作業ディレクトリまでのパス”) #移動

Page 46: Tokyor23 doradora09

コマンド実行例> getwd() #変更前の作業ディレクトリ[1] "/Users/akiaki5516">

#作業ディレクトリ変更> setwd("/Users/akiaki5516/doradora12/Dropbox/TokyoR/23")

> getwd() #変更後の作業ディレクトリ確認[1] "/Users/akiaki5516/doradora12/Dropbox/TokyoR/23"

> dir(); #作業ディレクトリ内のファイル一覧[1] "hawks.csv"

Page 47: Tokyor23 doradora09

CSVファイルの読み込み● read.csv(“ファイル名”) で読み込みます● 例

– hawks2 <- read.csv(“hawks.csv”);

Page 48: Tokyor23 doradora09

実行結果

> hawks2 <- read.csv("hawks.csv") #csvファイルの読み込み

> hawks2 #変数の中身確認 height salary1 173 170002 178 140003 180 90004 183 500005 182 30000

Page 49: Tokyor23 doradora09

関数を自作する● Rではsum()等の組み込み関数の他に、ユー

ザーの自作関数を利用することができます● 関数化することで同じ処理をまとめることが

できます● 自身が作成した関数を配布したり、他人が自

作した関数を利用することも可能です

Page 50: Tokyor23 doradora09

自作関数varp()

● 関数名 <- function(引数) { 処理 } という記述で関数を作る

● 標本分散を求めるvarp()関数を作ってみる– 標本分散は偏差の二乗和 / データ

● 例– varp <- function(x) {

– result <- var(x) * (length(x) - 1) / length(x)

– result

– }

Page 51: Tokyor23 doradora09

実行結果> varp <- function(x) { #自作関数+ result <- var(x) * (length(x) - 1) / length(x)+ result+ }>

> hawks2[,1] #ホークスのデータを入れてみる[1] 173 178 180 183 182

> varp(hawks2[,1]) #標本分散[1] 12.56

> length(hawks2[,1]) #ちなみにlengthは個数を返す関数[1] 5

Page 52: Tokyor23 doradora09

他の人の関数を使う● 関数はファイルとして保存し、読み込むことが

可能です● ファイルの拡張子は.R● 例

– 先ほどのvarp関数をちょっと変えてvarp.Rとして保存する

– varp <- function(x) {

– print("処理開始") #文言を追加

– result <- var(x) * (length(x) - 1) / length(x)

– result

– }

Page 53: Tokyor23 doradora09

関数の読み込み● source(“関数ファイル名”) とします● 例

– source(“varp.R”)

Page 54: Tokyor23 doradora09

実行結果> source("varp.R") #関数ファイル読み込み> res <- varp(hawks2[,1]) #resに結果格納[1] "処理開始"

> res #結果出力[1] 12.56> > varp #ちなみに()なしだと関数の中身が見れますfunction(x) { print("処理開始")

result <- var(x) * (length(x) - 1) / length(x) result }>

Page 55: Tokyor23 doradora09

パッケージをインストールしてみる● 複数の関数をまとめたものがパッケージです● パッケージはCRANと呼ばれるパッケージ管理サーバに保存されています

● 最初に出てきたggplot2パッケージを入れてみます

Page 56: Tokyor23 doradora09

CRAN mirrorの設定● 初回のみパッケージを取りにいくミラーサーバー

の指定が必要です● まずパッケージ管理画面を開きます

– windowsだとRコンソール上で「パッケージ」->「パッケージのインストール」

– macだと「パッケージとデータ」 → 「パッケージインストーラ」

● 画面からミラーサイトとしてJapan(Hyogo)又はJapan(Tsukuba)を選択

● パッケージマネージャの検索窓にggplot2と入力し、インストールボタンを押します– コマンドだと install.packages(“ggplot2”)

Page 57: Tokyor23 doradora09

画面の例(mac版)

Page 58: Tokyor23 doradora09

インストールしたパッケージを使う● インストールしたパッケージはそのままでは

使えないので、library関数で呼び出します● 例

– library(“ggplot2)

Page 59: Tokyor23 doradora09

実行結果● 依存関係のエラーが出た

> library("ggplot2") エラー: パッケージ 'reshape' が 'ggplot2' によって要求されましたが、見つけられませんでした

Page 60: Tokyor23 doradora09

依存関係の解消● パッケージの中で他のパッケージを利用している際は依存関係が発生する

● 依存関係のエラーで出てきたパッケージを片っ端から入れる

● 例– insatll.pacages(“reshape”)– insatll.pacages(“plyr”)

– install.pacages(“grid”)

– install.pacages(“proto”)– install.pacages(“ggplot2”) #本命

Page 61: Tokyor23 doradora09

再度実行

> insatll.pacages(“reshape”)> insatll.pacages(“plyr”)> install.pacages(“grid”)> install.pacages(“proto”)> install.pacages(“ggplot2”) #本命

> library(ggplot2) #今度は成功

● 今度はちゃんと呼び出せた

Page 62: Tokyor23 doradora09

ggplot2で作図> qplot(salary, height, data = hawks2, colour = I("blue"))

Page 63: Tokyor23 doradora09

ggplot2をもっと知りたい方へ● 過去のR勉強会で発表されていますので、参考

にしてみてください– ggplot2:パッケージ製作者(Wickamさん)の話

を聞いて @aad34210さん● http://www.slideshare.net/aad34210/ggplot2-110129

– ggplot2できれいなグラフ@dichikaさん● http://www.slideshare.net/dichika/ggplot2

Page 64: Tokyor23 doradora09

まとめ● Rをインストールするときは「rjpwiki」で検索● まずは電卓や関数電卓として使ってみてくださ

い● plotやggplot2パッケージで作図も可能● 変数でデータをまとめ、関数で処理をまとめ

る● データはCSVフォーマットで取り込めます● 関数パッケージはCRANからインストールで

きます

Page 65: Tokyor23 doradora09

もっとRを知りたい方へ● 初心者向けおすすめ資料

– はじめてのR @aad34210

● http://www.slideshare.net/aad34210/tokyo-r18

– 続はじめてのR @aad34210

● http://www.slideshare.net/aad34210/tokyo-r21-2

● エクセルともっと連動させる– RExcelでの日本語利用 @aad34210

● http://www.slideshare.net/aad34210/japan-r-101127– XLConnectで快適なエクセルライフのご提案 @dichika

● http://www.slideshare.net/dichika/tokyor18

Page 66: Tokyor23 doradora09

ご清聴ありがとうございました!