Successfully reported this slideshow.
Your SlideShare is downloading. ×

SapporoR#6 初心者セッションスライド

More Related Content

SapporoR#6 初心者セッションスライド

  1. 1. SapporoR#6 初心者セッション 清水裕士 関西学院大学
  2. 2. 自己紹介 • 清水裕士 – 所属:関西学院大学 • ※「かんせいがくいん」 と読む – お仕事:社会心理学 – 趣味:Stan・統計ソフトウェア開発 • Web – Twitter:@simizu706 – ブログ:http://norimune.net HiroshimaR#3
  3. 3. 本セッションの目的
  4. 4. 主催者(@uranoken)さんに Rを使わせること
  5. 5. 「本当の」初心者セッション • Rを初めて使う人のため – Rにはたくさんの可能性があるが・・・ • 最初から可能性はあえて狭めて解説 • パッケージは使わずに説明 – Rstudioを使う前提で説明 • Rを「統計ソフト」として使いたい人のため – 即戦力としてのR • 統計ソフトとしての機能以外はあえて説明しない – それ以外の活用方法についてはLTをお楽しみに
  6. 6. Rとは • いろんなことができるソフト – 統計解析(一番得意) • データの可視化(得意) • データの分析(得意) • データのハンドリング(だいぶ便利になった) – プログラム開発環境(それほど得意ではない) – 文書作成(機能が増えつつある) • 今日は統計解析の機能のみに注目 – だって,統計解析したいんでしょ?
  7. 7. なぜRなのか • Rでできない統計分析はないから – 今や,多くの分野でRユーザーが増えている – パッケージ(機能拡張)も8000を超える – 査読で求められる分析がRでしかできないということも稀にある • Rがマジョリティになってきたから – S○SSやS○Sは下火 – 共同研究者がRを使ってるなんてこともよくあること • 無償だから – 研究環境が変わっても,分析環境は同じ状態を維持できる – といっても,上の理由から仮に有償でも使うべき
  8. 8. Rの特徴 • S○SSなどのソフトとの違い – ポチポチとマウスでボタンを押すタイプではなく, – 命令を文章で書くタイプ • STA○AやS○Sなどのソフトとの違い – プロシージャで分析法が分かれてるのではなく, – すべて関数で計算する
  9. 9. Rの特徴 • 短所 – スペルミスすると動かない • 小文字と大文字の区別もある – 日本語に対応してくれない場合がある • 長所 – 一度書いたコードは使いまわせる • ポチポチと押し続けなくていい – 分析の手順が記録される • 昔にやった分析を簡単に再現できる
  10. 10. Rstudio • Rを便利に使えるようにするインターフェース – Rはそのままだと若干使いづらい – それを便利に使えるようにしてくれるソフト • 無償,自由 – Rと同様,無償で使える
  11. 11. Rstudio • 必須ではないが必須だと思ってもらっていい – 素のRをあえて使うのは「ただ面倒なだけ」 – 便利なのですぐ使おう • この会に参加しているみなさんはすでにイン ストール済みのはずだが・・・ – まだの人は「Rstudio」で検索してインストールして ください – Rstudio前提で話をしていきます
  12. 12. Rstudioの便利機能 • 一部GUI搭載 – データの読み込みなどはGUIで可能 – パッケージのインストールも簡単 • コード補完機能 – コードを予測したり,引数リストを出してくれたり • 超便利 • 関数や変数の管理も簡単 – 新しく作った変数やデータセットをリストにしてくれる
  13. 13. Rstudioの画面 コードを書くところ 結果・出力が出るところ 変数や関数の管理 履歴の確認ができる ファイルの管理 パッケージの管理 図表の出力
  14. 14. Rstudioを起動しよう!
  15. 15. まずはプロジェクトを作る • プロジェクトとは – Rで分析するときの環境の単位 – SPSSでいうと,savファイルみたいなもの • 研究(データ)ごとにプロジェクトを分ける – 一つのプロジェクトにいろんなデータや分析コード をいれておくと,管理がしづらい – 最初は,「R練習用」プロジェクトとかを作っておい てもいいかも
  16. 16. FileからNewProject
  17. 17. New Directory
  18. 18. Empty Project
  19. 19. Directoryの名前を決める
  20. 20. ディレクトリ • フォルダのこと – フォルダにプロジェクト用のファイルを保存 • パス – フォルダの住所のこと – WindowsならC:¥Users¥・・・ みたいなやつ • パスに日本語が入らないフォルダを作る – Rさんは外国製なので日本語よくわからない – Windowsユーザーで,ユーザー名が日本語の場合 は,Cドライブ直下においておけば大丈夫
  21. 21. プロジェクトを作ったら・・・ • Rスクリプトを開こう
  22. 22. ででーん
  23. 23. スクリプトファイルを保存 • File→Save As… – 名前をつけて保存 • 拡張子は.R
  24. 24. これで準備OK! • 家でRを分析するときは・・・ – このプロセスをもう一度やってください – プロジェクト作るの忘れると,あとで絶対に混乱す るので,必ず自分でもう一度やること! • 別のPCでも環境を作るときもプロジェクト作成 – あまりやらないから忘れがち – まずは環境づくりから
  25. 25. Rを触ってみる
  26. 26. Rを使ってみる • 計算をしてみよう – エディタに計算式を書く • マウスカーソルを5+8のすぐ右においておくこと – 右の「Run」ボタンを押す
  27. 27. できたー!
  28. 28. 四則演算 • 複数行を走らせる
  29. 29. Rstudioの基本的な使いかた • エディタにコードを書く – 書き方はいまから勉強します – Tabキーを打つと,コードの補完機能を使える • コードを「Run」で実行する – Ctrl+EnterでもOK • 複数行を一度に走らせたい場合は走らせたい行をドラッグ してCtrl+Enter – するとRにコードが送られて,Rが処理 – 結果をコンソールに出力
  30. 30. 変数を使う • 変数 – いろんな数字や文字列が入る箱 • 変数に数字を代入してみる – 代入は”<-” を使う(不等号の”<“とマイナスの”-”) • 代入した変数の中身を呼び出す
  31. 31. 変数を使う • 変数も四則演算 • 変数の計算結果を別の変数に格納 • 変数同士の計算ももちろん可能
  32. 32. 関数を使う • 平方根の関数sqrt()を使う • 変数にももちろん使える • 足し算の関数sum()も使ってみる
  33. 33. Rで統計解析(の予備知識)
  34. 34. Rって電卓なの? • いやいや,統計ソフトです – わかります,まだ統計ソフト感ないですよね • というわけで,データセットを使いたい – サンプルデータがRの中にあるので,それを使っ て統計分析をしていきましょう
  35. 35. データセットといえば・・・ • こんな感じ?
  36. 36. S○SSでは・・・ • 一つのファイルにデータセットは1つ – そのデータセットに変数を追加していくイメージ • Rでは・・・ – データセットも「大きな変数」と考える – このあたりのイメージが結構違うので注意
  37. 37. irisデータ • あやめのデータ – 3種類のあやめの花弁や萼片の長さ,幅につい てのデータ • irisで呼び出せる – Rに最初から入ってる – head(iris)と書いてみよう
  38. 38. head(iris) • 最初の6個のデータだけを表示する関数 – このように,5つの変数で構成されている – データの数は150
  39. 39. データセットを使うこなすには・・・ • Rの「変数」についての知識が必要 – 変数の型と構造 – 今回は型は説明を省く • 変数の構造にもいくつか種類がある – 変数は1つの数字だけが入るわけではない • SPSSでは標本の大きさ分だけの数があつまって一つ の変数を形成する – Rにおける変数の構造の種類を説明
  40. 40. 変数の構造の種類 • ベクトル: vector – 数値が複数並んだもの • 数値が一つだけでもベクトル扱い • 行列: matrix – ベクトルが多次元になったもの • 行と列で要素を指定する • リスト: list – 複数の変数が集まったもの これも変数だけど • データフレーム: data.frame – 複数のベクトルが集まったもの – Rにおけるデータセットとは,このデータフレームのこと
  41. 41. 変数の構造をチェック • is.vector()でベクトルかどうかがわかる – ベクトルらしい • is.matrix()で行列かどうかがわかる – 行列じゃないらしい
  42. 42. ベクトル • 一番よく使う – 普通の統計ソフトにおける「変数」がこれ • 複数の参加者が回答した値の集合 • 複数の数値をまとめてベクトルにしたい場合 – c()を使う
  43. 43. 行列 • 行列演算をしたい場合に使うが・・・ – 単なる統計ソフトとして使うなら出番は少ない • 複数の数値を行列にしたい場合 – matrix()を使う 最初にベクトルを入れて, そのあと行,列の数を指 定する
  44. 44. リスト • よく出てくる – 複数のベクトルや行列などをまとめたもの – 主に,分析結果がリスト形式で出力される • 複数のベクトルや行列をリストにしたい場合 – list()を使う リスト”l”には, ベクトル”v”と行列”m” という構造が違う変数 が含まれている
  45. 45. データフレーム • データセットとして使う – 要素数が等しい複数のベクトルをまとめたもの – 分析するデータはこの構造で扱う • 複数の変数をデータフレームにしたい場合 – data.frame()を使う ベクトルが縦に並ぶ
  46. 46. ここで隣の窓を見てみると • これまで作った変数の一覧がすぐ確認できる
  47. 47. irisはデータフレーム • 確認してみよう • データフレーム=複数の変数(ベクトル) – 変数を指定して取り出したい場合 – $マークを使う Rstudioなら$と打ったら自動的 に中の変数がリスト表示される
  48. 48. $以外にも様々な指定方法がある • 1列目を選択 • 2列目から4列目を選択 • 5列目だけ省く
  49. 49. subset()を使う方法 • 絶対に覚えたいRの関数その1 データフレーム 変数名
  50. 50. Rで統計分析
  51. 51. 新しいデータフレームに移動 • 分析データセットは別に作る(オススメ) – ローデータと分析用データは分けておく – 処理でミスっても,最初からやり直せる • datにirisを代入
  52. 52. 要約統計量の計算 • 変数の全体的な要約をしたい – summary()を使う
  53. 53. 要約統計量の計算 • 変数の平均値が知りたい – mean()を使う • 変数の標準偏差が知りたい – sd()を使う
  54. 54. 注意! • データに欠損値がある場合 – NAが返ってくる – 「NA」はRの欠損値を意味する文字列 • 常に”na.rm=TRUE”を入れることをオススメ
  55. 55. 複数の変数の平均値を計算したい • apply()を使う – 絶対に覚えたいRの関数その2 – ベクトルを引数にして,一つの数値を返す関数を 複数のベクトルに適用する関数 • mean(),sd(),sum()など,ベクトルを入れて,一つの値が 返ってくる関数で使える データフレーム 関数名 2番めの引数は,行に適用したい場合 は1,列に適用したい場合は2を入力 する
  56. 56. 群ごとの平均値を計算したい • tapply()を使う 平均値を計算 したい変数 変数は1つだけ 群分けしたい 変数 関数名
  57. 57. 図表を描きたい • ヒストグラム – hist()を使う • 箱ひげ図 – boxplot()を使う
  58. 58. 図表を描きたい • 群分けして棒グラフ – tapply()とbarplot()を使う • 各変数を棒グラフ – apply()とbarplot()を使う
  59. 59. 図表を描きたい • 散布図 – plot()を使う • 散布図を群ごとに描く – plot() を使う
  60. 60. もっと気の利いた図表を! http://www.slideshare.net/nocchi_airport/ggplot2-kazutan-rver2
  61. 61. 新しい変数を作る • 任意の名前の変数に代入する – データフレーム名のあとに変数名を付ける
  62. 62. 関数を使って変数を作る • 複数の変数の平均を,新しい変数にする
  63. 63. 一部のサブジェクトだけ取り出す • 条件文を使う方法 – []に条件文を書いて,フィルターにする ==は等号を意味する
  64. 64. 一部のサブジェクトだけ取り出す • 再びsubset()が登場 – 種がバージニカのデータを全部取り出したい Speciesが“virginica”のデータの みを取り出している
  65. 65. データセットの扱い
  66. 66. データセットの出力 • write.csv()を使う – row.names=FALSEは必須ではないが,今回はこう しておく • あとで読み込み直すときに問題が生じない データセットを保存するファイル名 拡張子は”.csv”じゃないと上手くいかない
  67. 67. ちゃんと出力されてる • ででーん
  68. 68. フォルダから開いてみる
  69. 69. csvファイルとは • comma-separated values – カンマ区切りのテキストデータ – 書式などの余分な情報がないので軽く,汎用的 に使えるファイル形式 • Rを使うときはcsvファイルを使いこなそう! – データはcsvファイルで保存 – Rにcsvファイルを読みこませる
  70. 70. csvファイルの作成方法 • Windowsの場合(しか知らない) – Excelにデータを入れる • シートは1つだけ使う – 名前をつけて保存 • ファイルの種類を選択 – 「csv(カンマ区切り)(*.csv)」 を選択 – 下のウィンドウが出てきたらOK
  71. 71. csv(カンマ区切り)を選択
  72. 72. データセットの読み込み • read.csv()を使う – 絶対に覚えたいRの関数その3
  73. 73. データセットの読み込み • 欠損値をNAに変換するには・・・ – たとえば欠損値がピリオド”.”の場合 – こうすると,ピリオド”.”がNAに変換されてデータ セットを読み込むができる
  74. 74. RstudioのGUIからも可能 • Tools→Import Dataset→From Text File
  75. 75. RstudioのGUIからも可能 • csvファイルを選ぶ
  76. 76. RstudioのGUIからも可能
  77. 77. RstudioのGUIからも可能 • ででーん
  78. 78. もっとRで統計分析
  79. 79. 対応のない平均値の差の検定 • t.test()を使う デフォルトでWelchの検定
  80. 80. 対応のある平均値の差の検定 • 同様にt.test()を使う
  81. 81. 相関係数 • cor()を使う • 検定はcor.test()を使う
  82. 82. 回帰分析 • lm()を使う – モデルは • 目的変数~説明変数1+説明変数2+・・・ – チルダ”~”で結ぶ • 多くの線形モデルの関数で共通の書き方 • 分析結果をresultに格納 – resultはリスト型になっている モデルを指定 データフレーム
  83. 83. 分析結果の見方 • summary()を使う
  84. 84. summary() • 要約するための関数 – データフレームを引数にすると要約統計量 • 分析関数の出力リストを引数にすると・・・ – 分析結果の要約が出力される – 多くの分析用関数の出力は,summary()で結果を 知ることができる
  85. 85. 出力の中身を確認する • str()を使う – リストの構造を知ることができる
  86. 86. 回帰係数だけ取り出す • coefficientsを取り出す
  87. 87. 回帰直線を散布図に引く • plot()とablin()を使う 散布図は引数の順番が説明変数 が最初,目的変数が後なので注意
  88. 88. クラスタ分析 • 階層クラスタ – hclust()を使う
  89. 89. クラスタ分析 • 非階層クラスタ – kmeans()を使う
  90. 90. クロス表の分析 • クロス表を作る – table()を使う
  91. 91. 独立性の検定 • χ2乗検定 – chisq.test()を使う
  92. 92. もっともっとRで統計分析
  93. 93. パッケージ • Rの機能拡張 – ユーザーが作った関数のセットのこと • 世界中のいろんな人がパッケージを作ってる • 8000以上のパッケージが君を待っている! • インターネットからダウンロードできる – install.packages()を使う
  94. 94. RstudioのGUIからも • PackagesタブのIstallをクリック!
  95. 95. RstudioのGUIからも
  96. 96. パッケージを使うには • library()を使う
  97. 97. オススメのパッケージ • ggplot2 – 綺麗なグラフを描くことができる
  98. 98. オススメのパッケージ • dplyr – データハンドリングを飛躍的に便利にする – フィルタ,並び替え,グループ別処理などなど • pforeach – とても簡単に繰り返し処理を並列化してくれる • rstan – MCMC(*´Д`)ハァハァ
  99. 99. 分析別パッケージ • 心理統計 – psychパッケージ • 一般化線形混合モデル – lme4パッケージ • ベイズ推定 – rstan
  100. 100. Rでわからないことがあったら
  101. 101. Webで調べよう • 最近はググラビリティも高くなってきた – 「R グラフ 描き方」とかで検索する • R-Tipsも便利 – http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html • Rに関するブログ記事も豊富 – ぞうさん通信(http://blog.kz-md.net) • R関連の記事をまとめてくれている
  102. 102. ぞうさん通信
  103. 103. 人に聞いてみよう • Twitterで次の呪文を唱えると答えが返ってくる
  104. 104. よくある質問
  105. 105. Rではどんな分析ができるの? • 全部 • 膨大な量のパッケージ • なによりrstanがある • なかったら自分で書けばいい
  106. 106. Rでコピペばっかだと意味ない? • そんなことはない – 最初は誰でもコピペだった – 英語の勉強も最初は音読・復唱するのと同じ • 自分の分析に合わせてちょっとずついじる – するとだんだんわかってくる
  107. 107. コードがあってるか不安 • 複数のソフトで確認しよう – SP○Sを捨てる必要はない • 触りたくないなら無理にとは言わない – むしろ,同じ分析をいろんなソフトで実行してみて,同 じか,違ったら何が違ったのかを考える – 分析で思考停止してはいけない • 全部Rでやる,というのもよくない – Rが使えるようになればいいだけであって,なんでも かんでもRでやる必要はない
  108. 108. 最後に • Rを勧めるのは無償だからではない – Rを使えないとこれから仕事できないから – WordやExcelと同じようにRを覚える必要がある • 分析がさき,ツールはあと – S○SSじゃその分析できないから・・はただの怠慢 – 最適な分析があるなら,やればいい – Rはあらゆる分析手法に開かれている
  109. 109. Enjoy! 清水裕士 関西学院大学 Web: http://norimune.net Twitter:@simizu706

×