Successfully reported this slideshow.

はじめての「R」

386

Share

Loading in …3
×
1 of 100
1 of 100

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

はじめての「R」

  1. 1. はじめての「R」 林 真広 @phosphor_m Japan.R #3 @統計数理研究所 2012/12/01
  2. 2. 自己紹介 林 真広 大阪大学人間科学研究科 D3 計量社会学,インターネット研究 twitter:@phosphor_m
  3. 3. Rとわたし R歴 8年ぐらい Osaka.R主催(休止中) 『Rパッケージガイドブック』 foreign,memisc,psych,sem Rzパッケージ開発(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. 練習:HelloWorld 1.コンソールに以下のスクリプトを入 力し,実行してみよう print("Hello  World!") 2.同じスクリプトをエディタに入力 し,実行してみよう
  36. 36. スクリプトのルール 大文字と小文字は区別される printとPRINTは別のもの 全角と半角も区別される 記号を全角で入力しないように!
  37. 37. コンソールとエディタの 使い分けは? 基本的にはエディタを使う 作業の記録を残しておくため 残す意味のない一時的なスクリプ トは,コンソールで実行
  38. 38. 好きな方(どちらでも同じ) スクリプトは保存してお きましょう
  39. 39. 練習:Rで四則演算 + : 足し算 - : 引き算 * : かけ算 / : 割り算 3    +  5 10  -­‐  3 2    *  3 100  /  20 (12  +  34  -­‐  56)  *  78  /  90
  40. 40. 演算の優先順位は数学と同じ 括弧内の演算→掛け算・割り算→ 足し算・引き算
  41. 41. Tips 1 RStudio (1) • エディタで括弧や引用符を入力すると,閉 じ括弧や引用符を補完してくれる • さらに,括弧にカーソルを合わせると,対 応する括弧がハイライトされる • 括弧や引用符の対応関係がずれているとエ ラーになるので,常にチェックしよう!
  42. 42. Tips 2 入力待ち • コンソールが入力待ち状態になることがある • 括弧がちゃんと閉じられていない,計算式が 途中,などの場合 • escキーを押すと元の状態に戻れる
  43. 43. 変数・関数・ベクトル
  44. 44. 練習:変数 次のスクリプトを実行してみよう x  <-­‐  2 y  <-­‐  3  +  4 z  <-­‐  x  +  y z
  45. 45. 何をやっているのか? 変数 オブジェクト x  <-­‐  2 y  <-­‐  3  +  4 z  <-­‐  x  +  y z 変数にオブジェクトを代入
  46. 46. オブジェクト=データそのもの 変数=オブジェクトを保管する箱 代入=オブジェクトを箱に保管す ること 代入 変数 オブジェクト
  47. 47. なぜ変数が必要? 繰り返し使うデータを毎回入力す るのは面倒→変数に代入! 一度作った変数は繰り返し使える オブジェクトそのもののように扱 える(=そのまま計算できる)
  48. 48. 代入の書き方 変数 <- オブジェクト 変数 <- 変数 変数 <- 何らかの計算 ※ “<-”は代入記号(山括弧とハイフン) ※ 矢印(←)を表現している
  49. 49. 練習:関数 次のスクリプトを実行してみよう floor(1.999) x  <-­‐  sqrt(4) x y  <-­‐  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と答えた人は,変数 ex1 Yにはeと答える傾向がある 変数Aの値が高いほど,変数B ex2 の値も高くなる
  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-Tips http://cse.naro.affrc.go.jp/takezawa/r-tips/ r.html ページを順番に見ていけば確実に Rの基本をマスターできる! 書籍化もされている
  89. 89. 『Rプログラミングマニュアル』 プログラミング言語としてのRの 使い方がまとめられている Rでプログラミングをするなら持 っておきたい
  90. 90. 『Rによるやさしい統計学』 Rを使って統計学を勉強できる Rも統計も初心者という人にお勧め
  91. 91. どんな分析ができるか 知りたい JIN'S PAGE http://www1.doshisha.ac.jp/~mjin/R/ 主要な分析手法をRで実行する方 法がわかる ハウツーだけでなく統計の解説が 充実!
  92. 92. R基本統計関数マニュアル http://www.is.titech.ac.jp/is-wiki/?maselab %2FR R 本体の統計関連関数の全体をカ テゴリー化して紹介 すさまじい情報量!
  93. 93. CRAN Task Views http://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

×