Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

はじめての「R」

211,288 views

Published on

補足記事を書きました。併せてご覧ください。http://m884.hateblo.jp/entry/2012/12/03/232431

Published in: Technology

はじめての「R」

  1. 1. はじめての「R」 林 真広 @phosphor_mJapan.R #3 @統計数理研究所 2012/12/01
  2. 2. 自己紹介林 真広大阪大学人間科学研究科 D3計量社会学,インターネット研究twitter:@phosphor_m
  3. 3. RとわたしR歴 8年ぐらいOsaka.R主催(休止中)『Rパッケージガイドブック』 foreign,memisc,psych,semRzパッケージ開発(on CRAN)
  4. 4. Rでなにがやりたいですか?
  5. 5. Rでやりたいことによって,これから学ばなければならないこと が変わってきます!
  6. 6. Rを使うのに必要なもの統計プログラミング能力ドメイン知識諦めない心!
  7. 7. 統計Rは統計解析環境統計を使わないなら,Rを使う意味がない!
  8. 8. プログラミング能力Rはプログラミング言語Rを使う=プログラミング
  9. 9. ドメイン知識Rを使う=データを分析するどう分析すればいいのか?分野ごとの専門知識がなければ適切に分析できない!
  10. 10. これらのものに どのくらい自信がありますか?
  11. 11. R入門者の種類プログラマータイプ乗り換えタイプビギナータイプ
  12. 12. R入門者の種類 統計 プログラミング ドメイン知識プログラマー × ◎ △ 乗り換え ○ × ○ ビギナー × × ?
  13. 13. Rを使えるようになるためには?
  14. 14. プログラマータイプRの使い方はすぐ習得できる統計の勉強が必要
  15. 15. 統計難しそう…基礎知識は絶対に必要!その先は,目的意識を持って勉強 統計学者になる必要はない どんな分析をしたいのか? 自分がやりたい分析に必要なものから
  16. 16. 乗り換えタイプSPSS,SAS,Stata…Rに翻訳する過去に行った分析をRで再分析とにかく使い続ける
  17. 17. プログラミング難しそう… プログラムを作るわけではない! プログラマーになる必要はない 「ルール」を覚えるだけ S○SSのシンタックスよりはるかにまと もで理解しやすい 必要に応じて必要なものから覚える
  18. 18. ビギナータイプRを使って統計を勉強するのが近道統計の理屈をRで実際に試しながら勉強するのはむしろ効率がいい
  19. 19. こんなふうに,これからRを使いたい!という人は,いろんなタイプにわけられる結果として,入門講習会がものすごくやりにくい
  20. 20. いろいろなものを諦めて目標を二つに絞りました
  21. 21. 今日の目標1.Rを使って分析をする一連の流れ を体験する2.これからどんなふうにRを勉強し ていくかを考える
  22. 22. 注意!かなり大胆に説明を省略していますこの講習会でRをマスターできるわけでは無く,今後の自習が必須ですこれからRを学んでいくためのとっかかりだと考えてください
  23. 23. Rを使う準備
  24. 24. 必要なものR本体RStudio
  25. 25. RStudioとは?公式のRは使いにくい(特にWindows版)RStudioは,Rをより使いやすくするための開発環境(IDE) ただし裏で公式のRを使っているの で,公式のRも入れておく必要がある
  26. 26. 裏事情WindowsでもMacでも同じインターフェイスなので教えやすい
  27. 27. 開発環境って難しそう…高度なソフト ≠ 難しいソフト初心者に優しい機能が付いている RStudio = 食洗機 公式のR = たわし
  28. 28. RStudioの弱点日本語化されていない日本語入力が苦手最近ぎりぎり実用レベルになった
  29. 29. 使ってみよう!
  30. 30. まずはRStudioを起動
  31. 31. ① ②R Scriptを新規作成
  32. 32. エディタ ヘルプ, ファイル,コンソール プロット, … 基本の画面
  33. 33. 基本的な使い方スクリプトをコンソール,またはエディタに書き込んで実行するだけスクリプト…Rに対する命令
  34. 34. スクリプトの実行方法コンソールでは,入力してenterエディタでは, ctrl + enter : 現在の行または選 択中のスクリプトを実行 Macではctrlではなくcommand
  35. 35. 練習:HelloWorld1.コンソールに以下のスクリプトを入 力し,実行してみようprint("Hello  World!")2.同じスクリプトをエディタに入力 し,実行してみよう
  36. 36. スクリプトのルール大文字と小文字は区別されるprintとPRINTは別のもの全角と半角も区別される記号を全角で入力しないように!
  37. 37. コンソールとエディタの 使い分けは?基本的にはエディタを使う 作業の記録を残しておくため残す意味のない一時的なスクリプトは,コンソールで実行
  38. 38. 好きな方(どちらでも同じ)スクリプトは保存してお きましょう
  39. 39. 練習:Rで四則演算 + : 足し算 - : 引き算 * : かけ算 / : 割り算3    +  510  -­‐  32    *  3100  /  20(12  +  34  -­‐  56)  *  78  /  90
  40. 40. 演算の優先順位は数学と同じ括弧内の演算→掛け算・割り算→足し算・引き算
  41. 41. Tips 1 RStudio (1)• エディタで括弧や引用符を入力すると,閉 じ括弧や引用符を補完してくれる• さらに,括弧にカーソルを合わせると,対 応する括弧がハイライトされる• 括弧や引用符の対応関係がずれているとエ ラーになるので,常にチェックしよう!
  42. 42. Tips 2 入力待ち• コンソールが入力待ち状態になることがある• 括弧がちゃんと閉じられていない,計算式が 途中,などの場合• escキーを押すと元の状態に戻れる
  43. 43. 変数・関数・ベクトル
  44. 44. 練習:変数 次のスクリプトを実行してみようx  <-­‐  2y  <-­‐  3  +  4z  <-­‐  x  +  yz
  45. 45. 何をやっているのか? 変数 オブジェクトx  <-­‐  2y  <-­‐  3  +  4z  <-­‐  x  +  yz 変数にオブジェクトを代入
  46. 46. オブジェクト=データそのもの 変数=オブジェクトを保管する箱 代入=オブジェクトを箱に保管す ること 代入変数 オブジェクト
  47. 47. なぜ変数が必要?繰り返し使うデータを毎回入力するのは面倒→変数に代入!一度作った変数は繰り返し使えるオブジェクトそのもののように扱える(=そのまま計算できる)
  48. 48. 代入の書き方 変数 <- オブジェクト 変数 <- 変数 変数 <- 何らかの計算※ “<-”は代入記号(山括弧とハイフン)※ 矢印(←)を表現している
  49. 49. 練習:関数 次のスクリプトを実行してみようfloor(1.999)x  <-­‐  sqrt(4)xy  <-­‐  sqrt(x)y
  50. 50. 関数とは? 何らかのインプットに対して 処理を加えアウトプットを 返すもの 関数アウトプット 処理 インプット
  51. 51. sqrtの場合アウトプット 関数 インプット x  <-­‐  sqrt(4) sqrt 2 平方根 4
  52. 52. 関数!関数!関数!関数の使い方が分かれば,Rの70%ぐらいは分かったようなもの必要な関数を選んで使い方を覚えていく
  53. 53. Tips 3 RStudio (2)• 変数や関数の入力途中でtabキーを押す と,補完候補を出してくれる• ヘルプつきで出してくれるのでとても便利• スペルミスでエラーを起こさないために も,積極的に使おう!
  54. 54. 練習:ベクトル 次のスクリプトを実行してみようx  <-­‐  c(2,  3,  5,  7,  11)sqrt(x)mean(x)
  55. 55. ベクトルは複数の値をまとめたもの Rは複数の値をまとめて処理できる ベクトルはc関数で作る(combine) ここがベクトルx  <-­‐  c(2,  3,  5,  7,  11)sqrt(x)mean(x)複数の値をまとめて処理
  56. 56. 練習:関数 2 次のスクリプトを実行してみようx  <-­‐  c(2,  4,  9,  5,  3)sort(x)sort(x,  decreasing  =  TRUE)
  57. 57. 関数のオプション 関数によってはオプションがある オプションにデフォルト値が設定 されている場合は,省略できる 降順か昇順かのオプションsort(x,  decreasing  =  TRUE) デフォルトは昇順(FALSE)
  58. 58. 真偽値真偽値は,オプションのオン,オフや条件判断に用いるTRUE(真)とFALSE(偽)
  59. 59. 関数のヘルプ 関数にはヘルプが用意されている ヘルプには,関数の用途やオプシ ョンなどの詳細が書かれているhelp(sort)?sort利便性のための省略記法
  60. 60. ここまでできればRが使える!実践に入っていきましょう
  61. 61. その前に,統計における データについて
  62. 62. データの基本単位統計に用いるデータの基本単位はベクトルこのベクトルを統計では変数と呼ぶRにおける変数とは微妙に意味が異なることに注意(Rの変数は箱)
  63. 63. #  国語の成績の変数kokugo  <-­‐  c(70,  53,  64,  82,  48)#  数学の成績の変数sugaku  <-­‐  c(51,  49,  86,  88,  71)#  各個人の平均点heikin  <-­‐  (kokugo  +  sugaku)  /  2#  全体の平均点mean(heikin)
  64. 64. 統計解析に用いるデータ最も基本的な形式は表形式データ
  65. 65. 表形式データの変数表形式データでは,列方向に変数を並べる
  66. 66. 統計解析は何をしているのか?多くの統計解析は,変数間の関係を見ている 変数Xにdと答えた人は,変数ex1Yにはeと答える傾向がある 変数Aの値が高いほど,変数Bex2の値も高くなる
  67. 67. データの読み込み
  68. 68. CSVの読み込み ① ②
  69. 69. CSVの読み込み画面
  70. 70. 読み込み設定を修正
  71. 71. 読み込んだデータが 表示される
  72. 72. 読み込まれたデータの扱い データフレーム(data.frame)と いう形式で読み込まれる 表形式データを扱うための形式
  73. 73. 変数名 変数データフレームは統計で使 う表形式データそのもの
  74. 74. 練習:データフレーム 次のスクリプトを実行してみようnrow(d1)ncol(d1)summary(d1)summary(d1$q2)mean(d1$q2,  na.rm  =  TRUE)
  75. 75. データフレーム内の 変数の使い方 データフレーム名$変数名 d1$q2 summary(d1$q2)データフレーム名 変数名
  76. 76. 統計解析のセオリー1.一つ一つの変数について特徴を見る2.二つの変数間の関係を見る3.複数の変数間の関係を見る(多変量 解析)
  77. 77. ※ お詫びサンプルデータは以降では使いません思った以上に使いにくかったRに付属のサンプルデータを使います
  78. 78. 練習:変数の特徴を見る 次のスクリプトを実行してみよう#  サンプルデータの読み込みdata(iris)hist(iris$Sepal.Length)plot(iris$Species)
  79. 79. hist(iris$Sepal.Length)
  80. 80. plot(iris$Species)
  81. 81. 練習:2変数間の関係 次のスクリプトを実行してみようcor(iris$Sepal.Length,        iris$Petal.Length)plot(iris$Sepal.Length,          iris$Petal.Length)
  82. 82. 相関係数Aの数値が大きいほどBの数値も大きい=AとBは相関がある,という相関の強さを数値化したものが,相関係数corは相関係数を計算する関数
  83. 83. 相関係数相関係数は-1から1の範囲を取る0のとき,無相関1または-1に近づくほど強い相関
  84. 84. plot(iris$Sepal.Length,          iris$Petal.Length)
  85. 85. 多変量解析などの より高度な分析重回帰分析,因子分析,クラスター分析,機械学習,…いろいろな分析がありますが,ほとんどが一行のスクリプトでできてしまいます!
  86. 86. いくつか例をお見せしたいですが…このあたりで時間がやばくなってる気がします!すばらしいサイトや書籍を紹介するので許してください
  87. 87. 逆引き編!
  88. 88. Rの基本を勉強したいR-Tipshttp://cse.naro.affrc.go.jp/takezawa/r-tips/r.htmlページを順番に見ていけば確実にRの基本をマスターできる!書籍化もされている
  89. 89. 『Rプログラミングマニュアル』プログラミング言語としてのRの使い方がまとめられているRでプログラミングをするなら持っておきたい
  90. 90. 『Rによるやさしい統計学』Rを使って統計学を勉強できるRも統計も初心者という人にお勧め
  91. 91. どんな分析ができるか 知りたいJINS PAGEhttp://www1.doshisha.ac.jp/~mjin/R/主要な分析手法をRで実行する方法がわかるハウツーだけでなく統計の解説が充実!
  92. 92. R基本統計関数マニュアルhttp://www.is.titech.ac.jp/is-wiki/?maselab%2FRR 本体の統計関連関数の全体をカテゴリー化して紹介すさまじい情報量!
  93. 93. CRAN Task Viewshttp://cran.r-project.org/web/views/Rの主要パッケージが分野ごとにまとめられている各分野の研究者が作成しているので信頼できる
  94. 94. Rで学ぶデータサイエンスシリーズhttp://www.kyoritsu-pub.co.jp/series/23/全20巻で,幅広い分野・手法をカバーしている
  95. 95. 『Rパッケージガイドブック』多種多様なパッケージが使用例と共に紹介されている,百科辞典的な書籍
  96. 96. Rについてわからないこと,詳しく知りたいことがある RjpWiki http://www.okada.jp.org/RWiki/ 日本のR業界の総本山 Q&AやTipsが蓄積されている サイト内検索しても分からなかった 場合は,Q&Aで新たに質問
  97. 97. 『R言語逆引きハンドブック』一言で言えばR大辞典これに載ってないことが知りたくなったら,あなたは立派なR上級者です
  98. 98. RStudioの詳しい使い方 が知りたい公式サイトのドキュメントhttp://www.rstudio.com/ide/docs/ただし英語のみ
  99. 99. 『Rで学ぶデータ・プログラミング入門 ―RStudioを活用する―』データ分析(あるいは統計解析)のためのプログラミング技法を解説した入門書Rの入門書であるとともにRStudioの使い方も学べる!
  100. 100. 目標は達成できたでしょうか?分からないことがあれば,いつでも聞いてください!twitter: @phosphor_mメール: rinm884 <at> gmail.com

×