SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

より深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニングより深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニングYuto Hayamizu
 
ggplot2できれいなグラフ
ggplot2できれいなグラフggplot2できれいなグラフ
ggplot2できれいなグラフDaisuke Ichikawa
 
リクルートライフスタイル流!分析基盤との賢い付き合い方
リクルートライフスタイル流!分析基盤との賢い付き合い方リクルートライフスタイル流!分析基盤との賢い付き合い方
リクルートライフスタイル流!分析基盤との賢い付き合い方Recruit Lifestyle Co., Ltd.
 
Shiny-Serverあれこれ
Shiny-ServerあれこれShiny-Serverあれこれ
Shiny-ServerあれこれKazuya Wada
 
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)yutannihilation
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめOhyama Masanori
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御Takashi Hoshino
 
Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)Takashi Yamane
 
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp @yuzutas0 Yokoyama
 
データ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることデータ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることMasaru Tokuoka
 
組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontendsPIXTA Inc.
 
トランクベース開発を活用して爆速に開発した話
トランクベース開発を活用して爆速に開発した話トランクベース開発を活用して爆速に開発した話
トランクベース開発を活用して爆速に開発した話Tier_IV
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
データモデリング・テクニック
データモデリング・テクニックデータモデリング・テクニック
データモデリング・テクニックHidekatsu Izuno
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutesShingo Omura
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionTetsutaro Watanabe
 
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法Nagi Teramo
 
テキストマイニング講義資料
テキストマイニング講義資料テキストマイニング講義資料
テキストマイニング講義資料Kosuke Sato
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)NTT DATA Technology & Innovation
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐりKazuyuki TAKASE
 

Tendances (20)

より深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニングより深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニング
 
ggplot2できれいなグラフ
ggplot2できれいなグラフggplot2できれいなグラフ
ggplot2できれいなグラフ
 
リクルートライフスタイル流!分析基盤との賢い付き合い方
リクルートライフスタイル流!分析基盤との賢い付き合い方リクルートライフスタイル流!分析基盤との賢い付き合い方
リクルートライフスタイル流!分析基盤との賢い付き合い方
 
Shiny-Serverあれこれ
Shiny-ServerあれこれShiny-Serverあれこれ
Shiny-Serverあれこれ
 
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御
 
Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)
 
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
 
データ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることデータ入力が終わってから分析前にすること
データ入力が終わってから分析前にすること
 
組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends
 
トランクベース開発を活用して爆速に開発した話
トランクベース開発を活用して爆速に開発した話トランクベース開発を活用して爆速に開発した話
トランクベース開発を活用して爆速に開発した話
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
データモデリング・テクニック
データモデリング・テクニックデータモデリング・テクニック
データモデリング・テクニック
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutes
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
 
テキストマイニング講義資料
テキストマイニング講義資料テキストマイニング講義資料
テキストマイニング講義資料
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
 

Similaire à 初心者のための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.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010Nobuaki 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
 

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

10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
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
 

初心者のための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