49
Copyright © BizReach, Inc. All Right Reserved. 初心者のための RとRStudio入門 Vol.2 株式会社ビズリーチ サービス企画部 荒金 万琴

初心者のためのRとRStudio入門 vol.2

Embed Size (px)

Citation preview

Page 1: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

初心者のためのRとRStudio入門

Vol.2

株式会社ビズリーチ

サービス企画部

荒金 万琴

Page 2: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

自己紹介

荒金 万琴(あらがね まこと)

福岡県出身→進学のため京都へ(4年間)→就職を期に東京へ(5年目)

前職:法人向けソフトウェアメーカーにてマーケティングを担当(4年間)

• 自社製品サイト、カタログ等の制作• イベントの主催、出展• 製品リリースの進行管理 などなど

サービス自体の企画・データサイエンティストを志して転職

2015年4月 ビズリーチ入社(3ヶ月目)• 自社サービス(ビズリーチ:会員制転職サイト)

の会員属性の調査• 会員向け施策の効果検証 などなど

2

Page 3: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

初心者のためのRとRStudio入門

Vol.2

3

Page 4: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

初心者のためのRとRStudio入門

Vol.2

初心者による

その分、より初心者に沿った内容になっている…と感じていただければ嬉しいです。

4

Page 5: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

アジェンダ

Rについて(3分)

• Rとは

• Rによる分析の流れ

ハンズオン(50分)

• 分析の流れに沿って操作してみる

アンケート(2分)

5

Page 6: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

参加者のみなさまに質問

Rを使ったことはありますか?

本当に初心者ですか??

6

Page 7: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

今日のゴール

ご自身で手を動かして、Rの操作を体験する

「Rでこんなことができるんだ」と

なんとなくわかる

もう少しやってみたいな、と興味がわく

(といいな)

7

Page 8: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

まずは

R って何者?

8

Page 9: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

テトリスみたいなゲームを作りたい

0と1しかわかりませーん

自然言語プログラミング言語

(仲介)機械語

Rとは?

9

分析に特化したプログラミング言語

統計分析のデファクトスタンダードへと進化

• 「教育現場から実務・研究現場へ永続的に利用可能」 by Wikipedia

コンパイルが不要で、対話的に分析が可能

Page 10: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

Rとは?

分析に特化したプログラミング言語

統計分析のデファクトスタンダードへと進化

• 「教育現場から実務・研究現場へ永続的に利用可能」 by Wikipedia

コンパイルが不要で、対話的に分析が可能

パッケージの導入で、非常に多くの分析や機械学習が可能

• 自分でプログラムを書かなくても、世界中の優秀なエンジニアが作ったパッケージをすぐ使える!しかも無料!

Excelよりも圧倒的に早く、数百MBまで対応が可能

• 詳しくは次スライド参照

10

Page 11: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

Rの守備範囲

11

Page 12: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

Rの守備範囲

一言でいうと「そこそこできる」

12

Page 13: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

Rによる分析の流れ

13

設計 前処理 分析

Page 14: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

Rによる分析の流れ

利用するパッケージの読み込み

分析したいデータの読み込み

(必要に応じて)前処理

分析の実行

レポートの作成(がRでできるパッケージも!)

14

設計 前処理 分析

このあたりを

流れに沿って

やってみます!

Page 15: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

ハンズオンの内容

インストールしよう

サンプルデータを見てみよう

分析したいデータを読み込もう

条件抽出をしてみよう

グラフを書いてみよう

Rを使った分析の例:サイトの改善

15

Page 16: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

ハンズオンの内容

インストールしよう

サンプルデータを見てみよう

分析したいデータを読み込もう

条件抽出をしてみよう

グラフを書いてみよう

Rを使った分析の例:サイトの改善

16

Page 17: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

RとRStudioのインストール

R本体のインストール

• 注意:こちらを先にインストールしてください!

RStudio(総合開発環境)のインストール

• ヘルプの検索

• ファイルシステムの検索

• 定義済み変数の確認

• HTML・PDF・スライドでの出力

• 分析プロジェクトの管理 など

両方インストールできたら、RStudioを起動してください。

17

Page 18: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

分析プロジェクトの用意

分析案件ごとに「プロジェクト」を作成

新規スクリプトファイル (R script) を作成

18

プロジェクト R script

R script

R script

プロジェクトを作って、コーディングの準備をします。

Page 19: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

補足:パッケージについて

※今回は、デフォルトの機能だけで分析を行います。

パッケージの多くはCRANやGithubで公開

初めて使うパッケージはインストールが必要

起動のたびにパッケージを読み込む

19

Page 20: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

ハンズオンの内容

インストールしよう

サンプルデータを見てみよう

分析したいデータを読み込もう

条件抽出をしてみよう

グラフを書いてみよう

Rを使った分析の例:サイトの改善

20

Page 21: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

サンプルデータ

Rには多くのサンプルがあり、分析の練習ができる

代表的なサンプル

• iris:あやめの種類とサイズ

• women:米国の30-39歳の女性の身長と体重

• airquality:気象条件とオゾン量

• Titanic:タイタニック号が沈没したときの乗員乗客

など100種類以上

21

Page 22: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

サンプルデータを見てみよう

head(iris)

head() で先頭6レコードを表示

22

Page 23: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

データの構造を見てみよう

str(iris)

str() でデータの構造(=stracture)を確認

データフレーム?

• Rでデータを取り扱うためのデータの構造

• Excelの2次元の表のイメージ

23

Sepal.Length 5.1 4.9 4.7

Sepal.Width 3.5 3 3.2

Petal.Length 1.4 1.4 1.3

Page 24: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

データの構造を見てみよう

str(iris)

150個のレコードで5つの属性をもつ

• 属性:項目、カラム

4つの数値属性と1つの水準属性(3水準)

• 水準属性:○個の選択肢から選ぶsetosa, versicolor, virginica

24

Page 25: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

基礎集計をやってみよう

summary(iris)

最小値・25%点・中央値・平均値・75%点・最大値

を計算

水準属性の場合は、各々の個数を計算

25

Page 26: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

ハンズオンの内容

インストールしよう

サンプルデータを見てみよう

分析したいデータを読み込もう

条件抽出をしてみよう

グラフを書いてみよう

Rを使った分析の例:サイトの改善

26

Page 27: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

分析したいデータを読み込もう

ダウンロードしたCSVファイル “weather.csv” を利用

• 日付、都市、平均気温、最高気温、最低気温、雨量、日照量

いま使っている R script ファイルと同じ場所に置いて

ください!

27

Page 28: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

分析したいデータを読み込もう

CSVファイルを読み込んで、変数 df に格納する

• df <- read.csv(file = “weather.csv”, fileEncoding = “cp932”)

dfの構造を確認

• str(df)

• dayのデータが、Factor(水準属性)として読み込まれている!

28

ファイル名を指定 文字コードはShift-JIS<- の右にあるものにdf という名前をつける

Page 29: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

日付をfactorからdateに変更する

データ型(その項目に入るデータの種類)の変更

• df$day <- as.Date(df$day)

dfの構造を再度確認

• str(df)

29

df 内にある「day」という項目

データ型を日付に変更

Page 30: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

ハンズオンの内容

インストールしよう

サンプルデータを見てみよう

分析したいデータを読み込もう

条件抽出をしてみよう

グラフを書いてみよう

Rを使った分析の例:サイトの改善

30

Page 31: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

条件抽出をしてみよう

subset() で条件に合致したデータだけを抽出する

条件とするものの例

• date :日付、時期

• factor :水準(選択肢、分類)のうちどれに該当するか

• num :数値

31

Page 32: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

条件抽出:date

2013年のデータだけを抽出

• df_2013 <- subset(df, "2013-01-01" <= df$day

& df$day <= "2013-12-31")

• head(df_2013)

32

dfのdayが 2013年1月1日以降

dfのdayが 2013年12月31日以前

抽出結果をdf_2013 に格納

Page 33: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

条件抽出:factor

東京のデータだけを抽出

• df_tokyo <- subset(df, df$city == "Tokyo")

• head(df_tokyo)

33

イコールは2つです!

Page 34: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

条件抽出:num

雨が降ったときのデータだけを抽出

• df_rain <- subset(df, df$rain > 0)

• head(df_rain)

34

Page 35: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

演習問題

下記の条件で抽出してください。

東京で最高気温が37度以上となった日のデータ

35

Page 36: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

演習問題

東京で最高気温が37度以上となった日のデータ

• city が Tokyo

• temp_max が 37以上

subset(df, df$city == "Tokyo" & df$temp_max >= 37)

subset(df, city == "Tokyo" & temp_max >= 37)

subset(df_tokyo, temp_max >= 37)

36

Page 37: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

ハンズオンの内容

インストールしよう

サンプルデータを見てみよう

分析したいデータを読み込もう

条件抽出をしてみよう

グラフを書いてみよう

Rを使った分析の例:サイトの改善

37

Page 38: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

グラフを書いてみよう

散布図

• 縦軸、横軸に項目を設定し、データをプロットする

• 2項目の相関関係をみるときによく使う

ヒストグラム

• データをいくつかの区間に分けてその区間のデータを集め、データの度数(数)を棒グラフで表す

• データの分布状況を視覚的にとらえられる

38

Page 39: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

散布図

東京の平均気温と最高気温の関係

• せっかくなのでdf_tokyoを使います

• plot(df_tokyo$temp_avg, df_tokyo$temp_max,

xlab = "avg", ylab = "max", col = "orange")

39

temp_max をy軸にとるtemp_avg をx軸にとる

x軸のラベル y軸のラベル

Page 40: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

ヒストグラム

東京の最高気温と最低気温の幅の分布

• diff <- df_tokyo$temp_max - df_tokyo$temp_min

• hist(diff, breaks = 20, col = "orange",

main = "difference")

40

temp_max と temp_min の差をとって、diff とする

diffのデータを20区間に分ける

グラフのタイトル

max(diff)=19.6min(diff)=1

Page 41: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

ハンズオンの内容

インストールしよう

サンプルデータを見てみよう

分析したいデータを読み込もう

条件抽出をしてみよう

グラフを書いてみよう

Rを使った分析の例:サイトの改善

41

Page 42: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

分析の例:サイトの改善

新しいLPの方が効果がある?それとも偶然の差?

改善前後の有意差検定

結果の解釈

42

いままでのLP 新しいLP

Before After

ページビュー 1200 1000

コンバージョン 55 60

コンバージョン率 4.6% 6.0%

Page 43: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

有意差検定

試行回数(PV)と成功回数(CV)を格納

• n にPVの数を設定、x にCVの数を設定する

数字は After → Before の順番で配置

• n <- c(1000, 1200)

• x <- c(60, 55)

• cはベクトルを作成する関数ですが、ここではあまり気にしないでください

– 参考サイトhttp://cse.naro.affrc.go.jp/takezawa/r-tips/r/12.html

43

Page 44: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

検定の実行

比率の差を検定

CVRは改善されたが、有意差があるのか?

• prop.test(x, n, alternative = c("greater"))

44

※これは「改善の前後で、どちらがよりCVRが大きいか」を比較する場合の方法です。新しいLP 2つを同時に公開して比較する場合には、また違う方法をとります。

Page 45: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

どういう意味?

本当のCVRが同じ(改善前後で差がない)であるのに、

このCVRの差が「たまたま」生じる確率は

8.22%よりも少ない

統計的な解説はここでは割愛します…

• 参考サイトhttp://labs.xica-inc.com/2014/07/difference-between-t-value-and-p-value/

45

Page 46: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

で、どうするか

同じ結果でも、人によって解釈に相違

• Aさん「確率が8%以下のことが起こっているなら偶然じゃないでしょ」→有意水準8%の元で、有意な効果があった

• Bさん「1%以下の確率で厳しく判断すべきで、これは偶然の範囲内だ」→有意水準1%の元で、有意な効果があったとはいえない

結局、有意差の考察は「分析者の考え方」しだい

→分析者が背景知識を動員して、適切な有意水準を

決めることが重要

• 通常は5% or 1%ですが、分析対象によって適切な値は異なります46

Page 47: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

今日のゴール

ご自身で手を動かして、Rの操作を体験する

「Rでこんなことができるんだ」と

なんとなくわかる

もう少しやってみたいな、と興味がわく

(といいな)

47

Page 48: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

さいごに

connpassグループ

「OWL.learn」

6/18(木) BIツール「Tableau」勉強会

R勉強会続編、数学講座なども企画中

48

Page 49: 初心者のためのRとRStudio入門 vol.2

Copyright © BizReach, Inc. All Right Reserved.

さいごに

ビズリーチで一緒に働いていただける

仲間募集中です!

49