SlideShare a Scribd company logo
1 of 49
Download to read offline
Copyright © BizReach, Inc. All Right Reserved.
初心者のための
RとRStudio入門
Vol.2
株式会社ビズリーチ
サービス企画部
荒金 万琴
Copyright © BizReach, Inc. All Right Reserved.
自己紹介
荒金 万琴(あらがね まこと)
 福岡県出身
→進学のため京都へ(4年間)
→就職を期に東京へ(5年目)
 前職:法人向けソフトウェアメーカーにて
マーケティングを担当(4年間)
• 自社製品サイト、カタログ等の制作
• イベントの主催、出展
• 製品リリースの進行管理 などなど
 サービス自体の企画・
データサイエンティストを志して転職
 2015年4月 ビズリーチ入社(3ヶ月目)
• 自社サービス(ビズリーチ:会員制転職サイト)
の会員属性の調査
• 会員向け施策の効果検証 などなど
2
Copyright © BizReach, Inc. All Right Reserved.
初心者のための
RとRStudio入門
Vol.2
3
Copyright © BizReach, Inc. All Right Reserved.
初心者のための
RとRStudio入門
Vol.2
初心者による
その分、より初心者に沿った内容になっている…
と感じていただければ嬉しいです。
4
Copyright © BizReach, Inc. All Right Reserved.
アジェンダ
 Rについて(3分)
• Rとは
• Rによる分析の流れ
 ハンズオン(50分)
• 分析の流れに沿って操作してみる
 アンケート(2分)
5
Copyright © BizReach, Inc. All Right Reserved.
参加者のみなさまに質問
Rを使ったことはありますか?
本当に初心者ですか??
6
Copyright © BizReach, Inc. All Right Reserved.
今日のゴール
 ご自身で手を動かして、Rの操作を体験する
 「Rでこんなことができるんだ」と
なんとなくわかる
 もう少しやってみたいな、と興味がわく
(といいな)
7
Copyright © BizReach, Inc. All Right Reserved.
まずは
R って何者?
8
Copyright © BizReach, Inc. All Right Reserved.
テトリスみたいな
ゲームを作りたい
0と1しか
わかりませーん
自然言語
プログラミング言語
(仲介)
機械語
Rとは?
9
 分析に特化したプログラミング言語
 統計分析のデファクトスタンダードへと進化
• 「教育現場から実務・研究現場へ永続的に利用可能」 by Wikipedia
 コンパイルが不要で、対話的に分析が可能
Copyright © BizReach, Inc. All Right Reserved.
Rとは?
 分析に特化したプログラミング言語
 統計分析のデファクトスタンダードへと進化
• 「教育現場から実務・研究現場へ永続的に利用可能」 by Wikipedia
 コンパイルが不要で、対話的に分析が可能
 パッケージの導入で、非常に多くの分析や機械学習が可能
• 自分でプログラムを書かなくても、世界中の優秀なエンジニアが
作ったパッケージをすぐ使える!しかも無料!
 Excelよりも圧倒的に早く、数百MBまで対応が可能
• 詳しくは次スライド参照
10
Copyright © BizReach, Inc. All Right Reserved.
Rの守備範囲
11
Copyright © BizReach, Inc. All Right Reserved.
Rの守備範囲
一言でいうと「そこそこできる」
12
Copyright © BizReach, Inc. All Right Reserved.
Rによる分析の流れ
13
設計 前処理 分析
Copyright © BizReach, Inc. All Right Reserved.
Rによる分析の流れ
 利用するパッケージの読み込み
 分析したいデータの読み込み
 (必要に応じて)前処理
 分析の実行
 レポートの作成(がRでできるパッケージも!)
14
設計 前処理 分析
このあたりを
流れに沿って
やってみます!
Copyright © BizReach, Inc. All Right Reserved.
ハンズオンの内容
 インストールしよう
 サンプルデータを見てみよう
 分析したいデータを読み込もう
 条件抽出をしてみよう
 グラフを書いてみよう
 Rを使った分析の例:サイトの改善
15
Copyright © BizReach, Inc. All Right Reserved.
ハンズオンの内容
 インストールしよう
 サンプルデータを見てみよう
 分析したいデータを読み込もう
 条件抽出をしてみよう
 グラフを書いてみよう
 Rを使った分析の例:サイトの改善
16
Copyright © BizReach, Inc. All Right Reserved.
RとRStudioのインストール
 R本体のインストール
• 注意:こちらを先にインストールしてください!
 RStudio(総合開発環境)のインストール
• ヘルプの検索
• ファイルシステムの検索
• 定義済み変数の確認
• HTML・PDF・スライドでの出力
• 分析プロジェクトの管理 など
両方インストールできたら、RStudioを起動してください。
17
Copyright © BizReach, Inc. All Right Reserved.
分析プロジェクトの用意
 分析案件ごとに「プロジェクト」を作成
 新規スクリプトファイル (R script) を作成
18
プロジェクト R script
R script
R script
プロジェクトを作って、コーディングの準備をします。
Copyright © BizReach, Inc. All Right Reserved.
補足:パッケージについて
※今回は、デフォルトの機能だけで分析を行います。
 パッケージの多くはCRANやGithubで公開
 初めて使うパッケージはインストールが必要
 起動のたびにパッケージを読み込む
19
Copyright © BizReach, Inc. All Right Reserved.
ハンズオンの内容
 インストールしよう
 サンプルデータを見てみよう
 分析したいデータを読み込もう
 条件抽出をしてみよう
 グラフを書いてみよう
 Rを使った分析の例:サイトの改善
20
Copyright © BizReach, Inc. All Right Reserved.
サンプルデータ
 Rには多くのサンプルがあり、分析の練習ができる
 代表的なサンプル
• iris:あやめの種類とサイズ
• women:米国の30-39歳の女性の身長と体重
• airquality:気象条件とオゾン量
• Titanic:タイタニック号が沈没したときの乗員乗客
など100種類以上
21
Copyright © BizReach, Inc. All Right Reserved.
サンプルデータを見てみよう
 head(iris)
 head() で先頭6レコードを表示
22
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
Copyright © BizReach, Inc. All Right Reserved.
データの構造を見てみよう
 str(iris)
 150個のレコードで5つの属性をもつ
• 属性:項目、カラム
 4つの数値属性と1つの水準属性(3水準)
• 水準属性:○個の選択肢から選ぶ
setosa, versicolor, virginica
24
Copyright © BizReach, Inc. All Right Reserved.
基礎集計をやってみよう
 summary(iris)
 最小値・25%点・中央値・平均値・75%点・最大値
を計算
 水準属性の場合は、各々の個数を計算
25
Copyright © BizReach, Inc. All Right Reserved.
ハンズオンの内容
 インストールしよう
 サンプルデータを見てみよう
 分析したいデータを読み込もう
 条件抽出をしてみよう
 グラフを書いてみよう
 Rを使った分析の例:サイトの改善
26
Copyright © BizReach, Inc. All Right Reserved.
分析したいデータを読み込もう
 ダウンロードしたCSVファイル “weather.csv” を利用
• 日付、都市、平均気温、最高気温、最低気温、
雨量、日照量
 いま使っている R script ファイルと同じ場所に置いて
ください!
27
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 という
名前をつける
Copyright © BizReach, Inc. All Right Reserved.
日付をfactorからdateに変更する
 データ型(その項目に入るデータの種類)の変更
• df$day <- as.Date(df$day)
 dfの構造を再度確認
• str(df)
29
df 内にある
「day」という項目
データ型を
日付に変更
Copyright © BizReach, Inc. All Right Reserved.
ハンズオンの内容
 インストールしよう
 サンプルデータを見てみよう
 分析したいデータを読み込もう
 条件抽出をしてみよう
 グラフを書いてみよう
 Rを使った分析の例:サイトの改善
30
Copyright © BizReach, Inc. All Right Reserved.
条件抽出をしてみよう
 subset() で条件に合致したデータだけを抽出する
 条件とするものの例
• date :日付、時期
• factor :水準(選択肢、分類)のうちどれに該当するか
• num :数値
31
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 に格納
Copyright © BizReach, Inc. All Right Reserved.
条件抽出:factor
 東京のデータだけを抽出
• df_tokyo <- subset(df, df$city == "Tokyo")
• head(df_tokyo)
33
イコールは
2つです!
Copyright © BizReach, Inc. All Right Reserved.
条件抽出:num
 雨が降ったときのデータだけを抽出
• df_rain <- subset(df, df$rain > 0)
• head(df_rain)
34
Copyright © BizReach, Inc. All Right Reserved.
演習問題
下記の条件で抽出してください。
 東京で最高気温が37度以上となった日のデータ
35
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
Copyright © BizReach, Inc. All Right Reserved.
ハンズオンの内容
 インストールしよう
 サンプルデータを見てみよう
 分析したいデータを読み込もう
 条件抽出をしてみよう
 グラフを書いてみよう
 Rを使った分析の例:サイトの改善
37
Copyright © BizReach, Inc. All Right Reserved.
グラフを書いてみよう
 散布図
• 縦軸、横軸に項目を設定し、データをプロットする
• 2項目の相関関係をみるときによく使う
 ヒストグラム
• データをいくつかの区間に分けてその区間のデータを
集め、データの度数(数)を棒グラフで表す
• データの分布状況を視覚的にとらえられる
38
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軸のラベル
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.6
min(diff)=1
Copyright © BizReach, Inc. All Right Reserved.
ハンズオンの内容
 インストールしよう
 サンプルデータを見てみよう
 分析したいデータを読み込もう
 条件抽出をしてみよう
 グラフを書いてみよう
 Rを使った分析の例:サイトの改善
41
Copyright © BizReach, Inc. All Right Reserved.
分析の例:サイトの改善
新しいLPの方が効果がある?それとも偶然の差?
 改善前後の有意差検定
 結果の解釈
42
いままでのLP 新しいLP
Before After
ページビュー 1200 1000
コンバージョン 55 60
コンバージョン率 4.6% 6.0%
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
Copyright © BizReach, Inc. All Right Reserved.
検定の実行
 比率の差を検定
CVRは改善されたが、有意差があるのか?
• prop.test(x, n, alternative = c("greater"))
44
※これは「改善の前後で、どちらがよりCVRが大きいか」を比較する
場合の方法です。新しいLP 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
Copyright © BizReach, Inc. All Right Reserved.
で、どうするか
 同じ結果でも、人によって解釈に相違
• Aさん「確率が8%以下のことが起こっているなら
偶然じゃないでしょ」
→有意水準8%の元で、有意な効果があった
• Bさん「1%以下の確率で厳しく判断すべきで、
これは偶然の範囲内だ」
→有意水準1%の元で、有意な効果があったとはいえない
 結局、有意差の考察は「分析者の考え方」しだい
→分析者が背景知識を動員して、適切な有意水準を
決めることが重要
• 通常は5% or 1%ですが、分析対象によって適切な値は異なります
46
Copyright © BizReach, Inc. All Right Reserved.
今日のゴール
 ご自身で手を動かして、Rの操作を体験する
 「Rでこんなことができるんだ」と
なんとなくわかる
 もう少しやってみたいな、と興味がわく
(といいな)
47
Copyright © BizReach, Inc. All Right Reserved.
さいごに
connpassグループ
「OWL.learn」
6/18(木) BIツール「Tableau」勉強会
R勉強会続編、数学講座なども企画中
48
Copyright © BizReach, Inc. All Right Reserved.
さいごに
ビズリーチで一緒に働いていただける
仲間募集中です!
49

More Related Content

What's hot

ベイジアンネット技術とサービス工学におけるビッグデータ活用技術
ベイジアンネット技術とサービス工学におけるビッグデータ活用技術ベイジアンネット技術とサービス工学におけるビッグデータ活用技術
ベイジアンネット技術とサービス工学におけるビッグデータ活用技術Yoichi Motomura
 
数理最適化とPython
数理最適化とPython数理最適化とPython
数理最適化とPythonYosuke Onoue
 
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介ippei_suzuki
 
情報検索の基礎
情報検索の基礎情報検索の基礎
情報検索の基礎Retrieva inc.
 
Prophet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールProphet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールhoxo_m
 
画像キャプションの自動生成
画像キャプションの自動生成画像キャプションの自動生成
画像キャプションの自動生成Yoshitaka Ushiku
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!takehikoihayashi
 
pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話Classi.corp
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定Masaaki Imaizumi
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Yuya Unno
 
データ解析技術入門(R編)
データ解析技術入門(R編)データ解析技術入門(R編)
データ解析技術入門(R編)Takumi Asai
 
Prophet入門【R編】Facebookの時系列予測ツール
Prophet入門【R編】Facebookの時系列予測ツールProphet入門【R編】Facebookの時系列予測ツール
Prophet入門【R編】Facebookの時系列予測ツールhoxo_m
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)Deep Learning JP
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
MS COCO Dataset Introduction
MS COCO Dataset IntroductionMS COCO Dataset Introduction
MS COCO Dataset IntroductionShinagawa Seitaro
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリングmlm_kansai
 

What's hot (20)

概念モデリング再考
概念モデリング再考概念モデリング再考
概念モデリング再考
 
ベイジアンネット技術とサービス工学におけるビッグデータ活用技術
ベイジアンネット技術とサービス工学におけるビッグデータ活用技術ベイジアンネット技術とサービス工学におけるビッグデータ活用技術
ベイジアンネット技術とサービス工学におけるビッグデータ活用技術
 
数理最適化とPython
数理最適化とPython数理最適化とPython
数理最適化とPython
 
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
 
情報検索の基礎
情報検索の基礎情報検索の基礎
情報検索の基礎
 
Prophet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールProphet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツール
 
画像キャプションの自動生成
画像キャプションの自動生成画像キャプションの自動生成
画像キャプションの自動生成
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
 
データ解析技術入門(R編)
データ解析技術入門(R編)データ解析技術入門(R編)
データ解析技術入門(R編)
 
Prophet入門【R編】Facebookの時系列予測ツール
Prophet入門【R編】Facebookの時系列予測ツールProphet入門【R編】Facebookの時系列予測ツール
Prophet入門【R編】Facebookの時系列予測ツール
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
MS COCO Dataset Introduction
MS COCO Dataset IntroductionMS COCO Dataset Introduction
MS COCO Dataset Introduction
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
 

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

10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用Nobuaki Oshiro
 
10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712 10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712 Nobuaki Oshiro
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905Nobuaki Oshiro
 
Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩wada, kazumi
 
Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3Nozomi Miyazaki
 
さくっとはじめるテキストマイニング(R言語)  スタートアップ編
さくっとはじめるテキストマイニング(R言語)  スタートアップ編さくっとはじめるテキストマイニング(R言語)  スタートアップ編
さくっとはじめるテキストマイニング(R言語)  スタートアップ編Yutaka Shimada
 
統計環境R_はじめの一歩2016
統計環境R_はじめの一歩2016統計環境R_はじめの一歩2016
統計環境R_はじめの一歩2016wada, kazumi
 
ソフトウェア産業に望まれる人材
ソフトウェア産業に望まれる人材ソフトウェア産業に望まれる人材
ソフトウェア産業に望まれる人材Makoto SAKAI
 
分析できるデータは自ら作る@Data Analyst Meetup Tokyo vol.8
分析できるデータは自ら作る@Data Analyst Meetup Tokyo vol.8分析できるデータは自ら作る@Data Analyst Meetup Tokyo vol.8
分析できるデータは自ら作る@Data Analyst Meetup Tokyo vol.8Taichi Tachikawa
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう幹雄 小川
 
Webディレクター・マーケターのためのSQL教室 2015/07/13
Webディレクター・マーケターのためのSQL教室 2015/07/13Webディレクター・マーケターのためのSQL教室 2015/07/13
Webディレクター・マーケターのためのSQL教室 2015/07/13OWL.learn
 
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介Recruit Technologies
 
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016統計環境R_データ入出力編2016
統計環境R_データ入出力編2016wada, kazumi
 
JavaScript Basic 01
JavaScript Basic 01JavaScript Basic 01
JavaScript Basic 01Yossy Taka
 

Similar to 初心者のためのRとRStudio入門 vol.2 (20)

10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712 10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩
 
Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3
 
関連記事レコメンドエンジン@Yahoo! JAPAN
関連記事レコメンドエンジン@Yahoo! JAPAN関連記事レコメンドエンジン@Yahoo! JAPAN
関連記事レコメンドエンジン@Yahoo! JAPAN
 
Tokyo r39 beginner
Tokyo r39 beginnerTokyo r39 beginner
Tokyo r39 beginner
 
さくっとはじめるテキストマイニング(R言語)  スタートアップ編
さくっとはじめるテキストマイニング(R言語)  スタートアップ編さくっとはじめるテキストマイニング(R言語)  スタートアップ編
さくっとはじめるテキストマイニング(R言語)  スタートアップ編
 
統計環境R_はじめの一歩2016
統計環境R_はじめの一歩2016統計環境R_はじめの一歩2016
統計環境R_はじめの一歩2016
 
ソフトウェア産業に望まれる人材
ソフトウェア産業に望まれる人材ソフトウェア産業に望まれる人材
ソフトウェア産業に望まれる人材
 
分析できるデータは自ら作る@Data Analyst Meetup Tokyo vol.8
分析できるデータは自ら作る@Data Analyst Meetup Tokyo vol.8分析できるデータは自ら作る@Data Analyst Meetup Tokyo vol.8
分析できるデータは自ら作る@Data Analyst Meetup Tokyo vol.8
 
Hiroshimar4_Rintro
Hiroshimar4_RintroHiroshimar4_Rintro
Hiroshimar4_Rintro
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう
 
Webディレクター・マーケターのためのSQL教室 2015/07/13
Webディレクター・マーケターのためのSQL教室 2015/07/13Webディレクター・マーケターのためのSQL教室 2015/07/13
Webディレクター・マーケターのためのSQL教室 2015/07/13
 
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介
 
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016統計環境R_データ入出力編2016
統計環境R_データ入出力編2016
 
JavaScript Basic 01
JavaScript Basic 01JavaScript Basic 01
JavaScript Basic 01
 
Tokyo r47 beginner_2
Tokyo r47 beginner_2Tokyo r47 beginner_2
Tokyo r47 beginner_2
 

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

  • 1. Copyright © BizReach, Inc. All Right Reserved. 初心者のための RとRStudio入門 Vol.2 株式会社ビズリーチ サービス企画部 荒金 万琴
  • 2. Copyright © BizReach, Inc. All Right Reserved. 自己紹介 荒金 万琴(あらがね まこと)  福岡県出身 →進学のため京都へ(4年間) →就職を期に東京へ(5年目)  前職:法人向けソフトウェアメーカーにて マーケティングを担当(4年間) • 自社製品サイト、カタログ等の制作 • イベントの主催、出展 • 製品リリースの進行管理 などなど  サービス自体の企画・ データサイエンティストを志して転職  2015年4月 ビズリーチ入社(3ヶ月目) • 自社サービス(ビズリーチ:会員制転職サイト) の会員属性の調査 • 会員向け施策の効果検証 などなど 2
  • 3. Copyright © BizReach, Inc. All Right Reserved. 初心者のための RとRStudio入門 Vol.2 3
  • 4. Copyright © BizReach, Inc. All Right Reserved. 初心者のための RとRStudio入門 Vol.2 初心者による その分、より初心者に沿った内容になっている… と感じていただければ嬉しいです。 4
  • 5. Copyright © BizReach, Inc. All Right Reserved. アジェンダ  Rについて(3分) • Rとは • Rによる分析の流れ  ハンズオン(50分) • 分析の流れに沿って操作してみる  アンケート(2分) 5
  • 6. Copyright © BizReach, Inc. All Right Reserved. 参加者のみなさまに質問 Rを使ったことはありますか? 本当に初心者ですか?? 6
  • 7. Copyright © BizReach, Inc. All Right Reserved. 今日のゴール  ご自身で手を動かして、Rの操作を体験する  「Rでこんなことができるんだ」と なんとなくわかる  もう少しやってみたいな、と興味がわく (といいな) 7
  • 8. Copyright © BizReach, Inc. All Right Reserved. まずは R って何者? 8
  • 9. Copyright © BizReach, Inc. All Right Reserved. テトリスみたいな ゲームを作りたい 0と1しか わかりませーん 自然言語 プログラミング言語 (仲介) 機械語 Rとは? 9  分析に特化したプログラミング言語  統計分析のデファクトスタンダードへと進化 • 「教育現場から実務・研究現場へ永続的に利用可能」 by Wikipedia  コンパイルが不要で、対話的に分析が可能
  • 10. Copyright © BizReach, Inc. All Right Reserved. Rとは?  分析に特化したプログラミング言語  統計分析のデファクトスタンダードへと進化 • 「教育現場から実務・研究現場へ永続的に利用可能」 by Wikipedia  コンパイルが不要で、対話的に分析が可能  パッケージの導入で、非常に多くの分析や機械学習が可能 • 自分でプログラムを書かなくても、世界中の優秀なエンジニアが 作ったパッケージをすぐ使える!しかも無料!  Excelよりも圧倒的に早く、数百MBまで対応が可能 • 詳しくは次スライド参照 10
  • 11. Copyright © BizReach, Inc. All Right Reserved. Rの守備範囲 11
  • 12. Copyright © BizReach, Inc. All Right Reserved. Rの守備範囲 一言でいうと「そこそこできる」 12
  • 13. Copyright © BizReach, Inc. All Right Reserved. Rによる分析の流れ 13 設計 前処理 分析
  • 14. Copyright © BizReach, Inc. All Right Reserved. Rによる分析の流れ  利用するパッケージの読み込み  分析したいデータの読み込み  (必要に応じて)前処理  分析の実行  レポートの作成(がRでできるパッケージも!) 14 設計 前処理 分析 このあたりを 流れに沿って やってみます!
  • 15. Copyright © BizReach, Inc. All Right Reserved. ハンズオンの内容  インストールしよう  サンプルデータを見てみよう  分析したいデータを読み込もう  条件抽出をしてみよう  グラフを書いてみよう  Rを使った分析の例:サイトの改善 15
  • 16. Copyright © BizReach, Inc. All Right Reserved. ハンズオンの内容  インストールしよう  サンプルデータを見てみよう  分析したいデータを読み込もう  条件抽出をしてみよう  グラフを書いてみよう  Rを使った分析の例:サイトの改善 16
  • 17. Copyright © BizReach, Inc. All Right Reserved. RとRStudioのインストール  R本体のインストール • 注意:こちらを先にインストールしてください!  RStudio(総合開発環境)のインストール • ヘルプの検索 • ファイルシステムの検索 • 定義済み変数の確認 • HTML・PDF・スライドでの出力 • 分析プロジェクトの管理 など 両方インストールできたら、RStudioを起動してください。 17
  • 18. Copyright © BizReach, Inc. All Right Reserved. 分析プロジェクトの用意  分析案件ごとに「プロジェクト」を作成  新規スクリプトファイル (R script) を作成 18 プロジェクト R script R script R script プロジェクトを作って、コーディングの準備をします。
  • 19. Copyright © BizReach, Inc. All Right Reserved. 補足:パッケージについて ※今回は、デフォルトの機能だけで分析を行います。  パッケージの多くはCRANやGithubで公開  初めて使うパッケージはインストールが必要  起動のたびにパッケージを読み込む 19
  • 20. Copyright © BizReach, Inc. All Right Reserved. ハンズオンの内容  インストールしよう  サンプルデータを見てみよう  分析したいデータを読み込もう  条件抽出をしてみよう  グラフを書いてみよう  Rを使った分析の例:サイトの改善 20
  • 21. Copyright © BizReach, Inc. All Right Reserved. サンプルデータ  Rには多くのサンプルがあり、分析の練習ができる  代表的なサンプル • iris:あやめの種類とサイズ • women:米国の30-39歳の女性の身長と体重 • airquality:気象条件とオゾン量 • Titanic:タイタニック号が沈没したときの乗員乗客 など100種類以上 21
  • 22. Copyright © BizReach, Inc. All Right Reserved. サンプルデータを見てみよう  head(iris)  head() で先頭6レコードを表示 22
  • 23. 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
  • 24. Copyright © BizReach, Inc. All Right Reserved. データの構造を見てみよう  str(iris)  150個のレコードで5つの属性をもつ • 属性:項目、カラム  4つの数値属性と1つの水準属性(3水準) • 水準属性:○個の選択肢から選ぶ setosa, versicolor, virginica 24
  • 25. Copyright © BizReach, Inc. All Right Reserved. 基礎集計をやってみよう  summary(iris)  最小値・25%点・中央値・平均値・75%点・最大値 を計算  水準属性の場合は、各々の個数を計算 25
  • 26. Copyright © BizReach, Inc. All Right Reserved. ハンズオンの内容  インストールしよう  サンプルデータを見てみよう  分析したいデータを読み込もう  条件抽出をしてみよう  グラフを書いてみよう  Rを使った分析の例:サイトの改善 26
  • 27. Copyright © BizReach, Inc. All Right Reserved. 分析したいデータを読み込もう  ダウンロードしたCSVファイル “weather.csv” を利用 • 日付、都市、平均気温、最高気温、最低気温、 雨量、日照量  いま使っている R script ファイルと同じ場所に置いて ください! 27
  • 28. 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 という 名前をつける
  • 29. Copyright © BizReach, Inc. All Right Reserved. 日付をfactorからdateに変更する  データ型(その項目に入るデータの種類)の変更 • df$day <- as.Date(df$day)  dfの構造を再度確認 • str(df) 29 df 内にある 「day」という項目 データ型を 日付に変更
  • 30. Copyright © BizReach, Inc. All Right Reserved. ハンズオンの内容  インストールしよう  サンプルデータを見てみよう  分析したいデータを読み込もう  条件抽出をしてみよう  グラフを書いてみよう  Rを使った分析の例:サイトの改善 30
  • 31. Copyright © BizReach, Inc. All Right Reserved. 条件抽出をしてみよう  subset() で条件に合致したデータだけを抽出する  条件とするものの例 • date :日付、時期 • factor :水準(選択肢、分類)のうちどれに該当するか • num :数値 31
  • 32. 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 に格納
  • 33. Copyright © BizReach, Inc. All Right Reserved. 条件抽出:factor  東京のデータだけを抽出 • df_tokyo <- subset(df, df$city == "Tokyo") • head(df_tokyo) 33 イコールは 2つです!
  • 34. Copyright © BizReach, Inc. All Right Reserved. 条件抽出:num  雨が降ったときのデータだけを抽出 • df_rain <- subset(df, df$rain > 0) • head(df_rain) 34
  • 35. Copyright © BizReach, Inc. All Right Reserved. 演習問題 下記の条件で抽出してください。  東京で最高気温が37度以上となった日のデータ 35
  • 36. 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
  • 37. Copyright © BizReach, Inc. All Right Reserved. ハンズオンの内容  インストールしよう  サンプルデータを見てみよう  分析したいデータを読み込もう  条件抽出をしてみよう  グラフを書いてみよう  Rを使った分析の例:サイトの改善 37
  • 38. Copyright © BizReach, Inc. All Right Reserved. グラフを書いてみよう  散布図 • 縦軸、横軸に項目を設定し、データをプロットする • 2項目の相関関係をみるときによく使う  ヒストグラム • データをいくつかの区間に分けてその区間のデータを 集め、データの度数(数)を棒グラフで表す • データの分布状況を視覚的にとらえられる 38
  • 39. 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軸のラベル
  • 40. 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.6 min(diff)=1
  • 41. Copyright © BizReach, Inc. All Right Reserved. ハンズオンの内容  インストールしよう  サンプルデータを見てみよう  分析したいデータを読み込もう  条件抽出をしてみよう  グラフを書いてみよう  Rを使った分析の例:サイトの改善 41
  • 42. Copyright © BizReach, Inc. All Right Reserved. 分析の例:サイトの改善 新しいLPの方が効果がある?それとも偶然の差?  改善前後の有意差検定  結果の解釈 42 いままでのLP 新しいLP Before After ページビュー 1200 1000 コンバージョン 55 60 コンバージョン率 4.6% 6.0%
  • 43. 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
  • 44. Copyright © BizReach, Inc. All Right Reserved. 検定の実行  比率の差を検定 CVRは改善されたが、有意差があるのか? • prop.test(x, n, alternative = c("greater")) 44 ※これは「改善の前後で、どちらがよりCVRが大きいか」を比較する 場合の方法です。新しいLP 2つを同時に公開して比較する場合には、 また違う方法をとります。
  • 45. 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
  • 46. Copyright © BizReach, Inc. All Right Reserved. で、どうするか  同じ結果でも、人によって解釈に相違 • Aさん「確率が8%以下のことが起こっているなら 偶然じゃないでしょ」 →有意水準8%の元で、有意な効果があった • Bさん「1%以下の確率で厳しく判断すべきで、 これは偶然の範囲内だ」 →有意水準1%の元で、有意な効果があったとはいえない  結局、有意差の考察は「分析者の考え方」しだい →分析者が背景知識を動員して、適切な有意水準を 決めることが重要 • 通常は5% or 1%ですが、分析対象によって適切な値は異なります 46
  • 47. Copyright © BizReach, Inc. All Right Reserved. 今日のゴール  ご自身で手を動かして、Rの操作を体験する  「Rでこんなことができるんだ」と なんとなくわかる  もう少しやってみたいな、と興味がわく (といいな) 47
  • 48. Copyright © BizReach, Inc. All Right Reserved. さいごに connpassグループ 「OWL.learn」 6/18(木) BIツール「Tableau」勉強会 R勉強会続編、数学講座なども企画中 48
  • 49. Copyright © BizReach, Inc. All Right Reserved. さいごに ビズリーチで一緒に働いていただける 仲間募集中です! 49