Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Tokyo r50 beginner_2

3.934 visualizaciones

Publicado el

#50 Tokyo.R Beginners session.
RStudio,Access dataframes , connect Database(Bigquery),Single regression

Publicado en: Datos y análisis
  • Sé el primero en comentar

Tokyo r50 beginner_2

  1. 1. <#> 続 はじめての Tokyo.R #50 簑田 高志
  2. 2. 目次 1. 自己紹介 2. 変更点 3. 前回のおさらい 4. 今回の内容 1) 条件分岐 2) ループ 3) グラフ作成 4) データベースとの接続 5) 統計解析 5. まとめ ※ スクリーンショットや機能等はMac版となります。
  3. 3. • 名前 :簑田 高志 • Twitter :aad34210 • ブログ :http://pracmper.blogspot.com/ • 出身地 :熊本県 • 出身学部 :法学部 • 仕事 :E-commerceのアナリスト インターネット広告のビジネスアナリスト 自己紹介
  4. 4. 本を共同翻訳しました
  5. 5. 書籍の内容 ・翻訳者より ・目次 ・はじめに ・まえがき ・謝辞 1章 Rを手に入れる 1.1 Rのダウンロード 1.2 Rのバージョン 1.3 32bitと64bit 1.4 インストール 1.5 Revolution R Community Edition 1.6 まとめ 2章 Rの環境 2.1 コマンドラインインターフェイス(CLI) 2.2 RStudio 2.3 Revolution Analytics RPE (R Productivity Environment) 2.4 まとめ 3章 Rパッケージ 3.1 インストールパッケージ 3.2 ロードパッケージ 3.3 パッケージの作成 3.4 まとめ 4章 Rの基本 4.1 基本的な数学 4.2 変数 4.3 データ型 4.4 ベクトル 4.5 関数(Function)の呼び出し 4.6 関数ドキュメント 4.7 欠損値 4.8 まとめ 5章 高度なデータ構造 5.1 データフレーム(data.frame) 5.2 リスト(List) 5.3 マトリックス(Matrix) 5.4 アレイ(Array) 5.5 まとめ 6章 Rへのデータ取り込み 6.1 CSVの読み込み 6.2 Excelの読み込み 6.3 データベースからの読み込み 6.4 他社統計ツールからの読み込み 6.5 Rバイナリファイル 6.6 Rに入っているデータ 6.7 Webサイトからの抽出 6.8 まとめ 7章 統計的なグラフィクス 7.1 基本グラフィクス 7.2 ggplot2 7.3 まとめ 8章 Rの関数を書く 8.1 ハロー、ワールド! 8.2 関数の引数 8.3 値の返却 8.4 do.call 8.5 まとめ 9章 制御文 9.1 ifとelse 9.2 Switch 9.3 ifelse 9.4 複合テスト 9.5 まとめ 10章 ループ:Rの方法ではない反復方法 10.1 forループ 10.2 whileループ 10.3 ループの制御 10.4 まとめ 11章 グループピング操作 11.1 Applyファミリー 11.2 aggregate 11.3 plyr 11.4 data.table 11.5 まとめ 12章 データ整形 12.1 cbindとrbind 12.2 Join 12.3 reshape2 12.4 まとめ 13章 文字列操作 13.1 paste 13.2 sprintf 13.3 テキストの抽出 13.4 正規表現 13.5 まとめ 14章 確率分布 14.1 正規分布 14.2 二項分布 14.3 ポアソン分布 14.4 その他の分布 14.5 まとめ 15章 基本統計 15.1 要約統計 15.2 相関と共分散 15.3 t検定 15.4 分散分析 15.5 まとめ 16章 線形モデル 16.1 単回帰 16.2 重回帰 16.3 まとめ 17章 一般化線形モデル 17.1 ロジスティック回帰 17.2 ポアソン回帰 17.3 その他の一般化線形モデル 17.4 生存時間分析 17.5 まとめ 18章 モデル評価 18.1 残差 18.2 モデル比較 18.3 クロスバリデーション 18.4 ブートストラップ 18.5 ステップワイズ変数選択法 18.6 まとめ 19章 正則化と縮小 19.1 Elastic Net 19.2 Bayesian shrinkage 19.3 まとめ 20章 非線形モデル 20.1 非線形最小二乗法 20.2 スプライン 20.3 一般化加法モデル 20.4 決定木 20.5 ランダムフォレスト 20.6 まとめ 21章 時系列と自己相関 21.1 自己回帰移動平均 21.2 VAR 21.3 GARCH 21.4 まとめ 22章 クラスタリング 22.1 K-means 22.2 PAM 22.3 階層型クラスタリング 22.4 まとめ 23章 knitrパッケージによる再現性・レポートとスライドショー 23.1 Latexプログラムのインストール 23.2 Latex 入門 23.3 Latexを使ったknitr 23.4 マークダウンのヒント 23.5 knitrとマークダウンの利用 23.6 Pandoc 23.7 まとめ 24章 Rパッケージの構築 24.1 フォルダ構成 24.2 パッケージファイル 24.3 パッケージドキュメンテーション 24.4 チェック、構築とインストール 24.5 CRANへの登録 24.6 C++コード 24.7 まとめ 付録A 情報リソース A.1 Meetup A.2 Stack Overflow A.3 Twitter A.4 カンファレンス A.5 Webサイト A.6 ドキュメント A.7 書籍 A.8 まとめ 付録B 用語集 / 索引 1章〜24章+α 全448ページ
  6. 6. 書籍の内容  特徴 • Rをはじめたばかりの人から、Rを使って解析に挑戦し てみたい人、データ分析ってどういう事ができるのだろ うか?ということを知りたい人に最適。 • Rでできることを「俯瞰」して見ることができる。 • もともとはコロンビア大学の統計学の教授のJared.P. Landarさんが自分が大学院時代に教えてもらいた かった内容がベース。 • ゼミ生も実験台に…
  7. 7. 変更点
  8. 8. はじめてのRはいつが「はじめて?」 「はじめてのR」を最初に作成 ⇛ もう5年前!
  9. 9. いろいろ変わりました この5年の間にRも大きな進歩 ■パッケージの進化 ■外部環境の変化 ■開発環境の進化 • apply , aggregate ⇛ dplyr • plot ⇛ ggplot2 • --- ⇛ shiny , googlevis , rCharts …
  10. 10. 内容改定しました 「はじめてのR」も改定。 変更点 これまで これから 環境 Rコンソール RStudio データ可視化 plot , Lattice ggplot2 データベースの操作 MySQL,PostgreSQL Bigquery(Google)
  11. 11. はじめての
  12. 12. 条件分岐
  13. 13. 条件分岐とは 値:A 条件 値:Z 値:K A >= 0 → K A < 0 → Z • ある条件で場合分けをしたい場合に利用する。
  14. 14. 条件分岐とは • 条件分岐とは? • ある条件で場合分けをしたい場合はIf文、Else文を使う。 • if (条件文){処理内容} • 例えば… • 売上金額が10万以上であれば、A-Class、それ以外はOther。 x <- 100000 if (x >= 100000) {print ("A-Class")} else {print("Other")}
  15. 15. 条件分岐とは • 条件分岐ができる関数を作ってみよう check.amount <- function(x) { if (x >= 100000) { print("A-Class") } else { print("Other") } } # A−Class check.amount(100000) # Other check.amount(5000)
  16. 16. 条件分岐とは • IFELSE文 • IFELSE文で一つのコードでIF文ができる。 • ifelse(条件,データが真の場合,偽の場合) • 例えば… • 売上金額が10万以上であれば、Aクラス、それ以外はOther。 x <- 100000 ifelse(x >= 100000 , "A-Class" , "B-Class")
  17. 17. 条件分岐とは • SWITCH文 • 複数の条件で分岐させたい場合 • switch(データ,ケース1 , ケース2 , 一致する場合がないケース) • 例えば… • Tokyoから売上が上がっている場合は、Japanを。それ以外はOther city <- "Tokyo” switch(city ,"Tokyo" = print("Japan") , print("Other"))
  18. 18. ループ
  19. 19. ループ • For文は他のプログラミング言語と同じように、「繰り返し」処理ができる。 • 幾つもの同じような処理をコピペして処理をさせなくても、ループ処理を利用す ることにより、大幅に作業時間を減らすことができる。 処理A 処理A 処理A 処理A 処理A 4回同じ処理を繰り返す 繰り返し文を利用し て処理を4回行う。
  20. 20. FOR文 • For文 • ある処理を繰り返し行いたい場合に利用する。 • for (ループ変数 in リスト) {処理} • 例えば… • 1〜5までを合計する。 • ベクトルを表示させる。 x <- 0 for (i in 1:5) {x <- x +1} x x <- c(10000 , 20000 , 30000) for (i in 1:length(x)){print(x[i])}
  21. 21. WHILE文 • While文 • ある条件が成り立っている場合にずっとループ処理をし続ける。 • 注意:ずっと条件が成り立っている場合は、無限ループしてしまうので、気 をつけること。 • while (条件式) {処理} • 例えば… • 5以下を足し続ける。 x <- 0 while (x <= 4) {x <- x +1} x
  22. 22. ループの制御 • ループを回している間にループ自体を制御したい場合があります。 • その際は”next”と”break”を使います。 for(i in 1:10) { if (i == 3) {next} print(i) } # [1] 1 # [1] 2 # [1] 4 ← 3をスキップ # [1] 5 # [1] 6 # [1] 7 # [1] 8 # [1] 9 # [1] 10 for(i in 1:10) { if (i == 3) {break} print(i) } # [1] 1 # [1] 2 ← 3の手前で処理終了
  23. 23. グラフ作成
  24. 24. グラフはggplot2 • Hadley Wickhamさんが作ったグラフパッケージ • grammar of graphics 理論に基づいたチャートを作成可能 • Excelでは書けないようなチャートを構文を追加していくことで作成可能 • 過去に発表しています。 • http://www.slideshare.net/aad34210/ggplot2-110129-6739813
  25. 25. 散布図 ggplot(iris , aes(x = Sepal.Length , y = Sepal.Width)) + geom_jitter() ggplot(iris , aes(x = Sepal.Length , y = Sepal.Width , colour = Species)) + geom_jitter()
  26. 26. 散布図(facet_wrap) ggplot(iris , aes(x = Sepal.Length , y = Sepal.Width )) + geom_jitter() + facet_wrap(~Species)
  27. 27. 散布図(回帰直線) ggplot(iris , aes(x = Sepal.Length , y = Sepal.Width )) + geom_jitter() + facet_wrap(~Species) + stat_smooth(method = "lm")
  28. 28. データベース からの抽出
  29. 29. RODBC、JDBC経由 # パッケージインストール install.packages(“RODBC”) library(RODBC) # コネクションの作成 channel <- odbcConnect(“[DNS]”, uid=“[UserID]”, pwd=“[Password]”) # SQL sqlQuery(channel, paste("select State, Murder from USArrests", "where Rape > 30 order by Murder")) # コネクション クローズ close(channel) • 運用しているDB(MySQL、PostgreSQL)などからODBC経由で接続 • SQLを投げて結果を取得。
  30. 30. BigQueryを利用する # install packages install.packages("devtools") install.packages("httpuv") library(devtools) library(httpuv) # devtools devtools::install_github("hadley/devtools") # bigquery devtools::install_github("hadley/bigrquery") library(bigrquery) (# ブラウザでの認証が入る) # Run query prj <- “**********" sql <- "SELECT * FROM [publicdata:samples.wikipedia] LIMIT 1000" results <- query_exec(sql , project = prj) • Googleが提供しているBigQueryを利用する。 • GoogleのBigQueryは別途利用できるように設定
  31. 31. 統計解析
  32. 32. 単回帰を実行 install.packages("UsingR") library(UsingR) data(father.son) lm_father_son <- lm(sheight ~ fheight , data = father.son) summary(lm_father_son) #Call: #lm(formula = sheight ~ fheight, data = father.son) #Residuals: # Min 1Q Median 3Q Max #-8.8772 -1.5144 -0.0079 1.6285 8.9685 #Coefficients: # Estimate Std. Error t value Pr(>|t|) ⇛ sheight = 0.51*fheight + 33.8 #(Intercept) 33.88660 1.83235 18.49 <2e-16 *** #fheight 0.51409 0.02705 19.01 <2e-16 *** --- #Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 #Residual standard error: 2.437 on 1076 degrees of freedom #Multiple R-squared: 0.2513, Adjusted R-squared: 0.2506 #F-statistic: 361.2 on 1 and 1076 DF, p-value: < 2.2e-16 • 2つの変数間の関係、回帰式を算出する。 • UsingRパッケージ中のfather.son(父親と子供の身長)データを利用
  33. 33. 単回帰を実行 • 先ほどのggplot2の+geom_smooth(method = “lm”)を利用してみる
  34. 34. まとめ
  35. 35. まとめ 1) 条件分岐  IF文、Which文、functionとの組み合わせ 2) ループ  For文 3) グラフ作成  ggplot2 4) データベースからの抽出  RODBC、BigQuery 5) 統計解析  単回帰
  36. 36. ご静聴ありがとう ございました

×