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.
Upcoming SlideShare
俺、俺。Rだよ!
俺、俺。Rだよ!
Loading in …3
×
1 of 109

More Related Content

You Might Also Like

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

×