27 Mar 2015, 12:27

鮮やかにデータを可視化する! coursera で Exploratory Data Analysis を受けた

はじめに

R を利用してグラフを書く方法を学ぶために, coursera で Exploratory Data Analysis を受けた.

[toc]

R を利用してグラフを書く方を学べる内容

この講座は, 探索的データ解析を学ぶ講座. 探索的データ解析とは, 未知の関係性を データの可視化 によって探る方法.

といっても, 前半は グラフの書き方を学ぶ.

3 つの代表的なライブラリが紹介される.

  • Base: “artist’s palette” model
  • Lattice: Entire plot specified by one function; conditioning
  • ggplot2: Mixes elements of Base and Lattice

後半は, クラスタ分析を扱う. これもデータを可視化することで, データの関係性を調べる方法.

Exploratory Data Analysis:

未知の関係性を見つけることが目的.

可視化することで関係性を見つける.

  • To understand data properties
  • To find patterns in data
  • To suggest modeling strategies
  • To “debug” analyses

基本的な手法

  • Five-number summary
  • Histograms
  • Density plot (Scatter Plot)
  • Boxplots (for Numerical Data, ヒゲ)
  • Barplot (for categorical Data)

感想

部内意識調査アンケート

この講座をとったのは, 職場でアンケート調査をする機会があったから. これは, 学んだ統計的手法を生かす絶好の機会だと思った.

集計したデータをまとめて可視化するスキルの取得か急務だったので, 取り組んだ. こういう, 目的があるときは知識の吸収がはかどる ( \^ω\^ )

今まで, R に標準搭載されていた base package で グラフの描写を していたのだが, ggplot2 の qplot をつかうことで良さげなグラフがかける ことに喜んだ. 参考書には, 以下を利用した.

しかし, Excel に嫉妬…

R でグラフを書くには, スクリプトで設定を指定する必要があるので, 使いこなすまでに時間がかかる. なにを指定すれば, どんな図が生成され るのか, いまいちわからない. 試行錯誤しながらも, なんども試しつつ, ようやく一つのグラフをプロットできる. そんな繰り返しだ.

アンケート結果をなんとか R をつかって棒グラフで可視化してみた. しかし, すでに同僚が Excel をつかって帯グラフと折れ線グラフを ちゃちゃっと作成していた…

これには, ショックを受けた. 自分は, 結構苦労して R でグラフ をかけるようになるまでにけっこう時間がかかった. しかし, Excel つかえば, だれでも簡単に, それなりのグラフが作成できてしまうのだ.

Excel すごいと思うとともに, 嫉妬…

もしかしたら, 本格的なデータ解析をする場合以外は, R は必要ないのかも しれない.普通の一般人は, R をつかうよりも Excel を利用するほうが, 学習対効果においてよいのではないかと思う.

CLI と GUI

しかし, 自分はすでに中途半端に R を学んでしまった. こうなったら, い くところまでいこう. Excel にはもう戻れない, 戻らない!!

R と Excel の関係は, CLI と GUI の関係と同じ.

CLI は身につけるまでは苦労するが, 一旦身につければ GUi よりも高い 生産性が出せると信じている.

28 Feb 2015, 11:12

Coursera で Reproducible Research をうけた

はじめに

以前, org-mode と R を組み合わせたらとても気持ちがよかった.

そこで, もうすこし R と org-mode の可能性を知りたくて, Coursera で Reproducible Research をうけた.

内容

全部で 4 週間. 動画リストが以下にある.

初めの週で, Reproducible Research についての概要について語られる.

Reproducible Research という考え方の情報が少ないので, ネットで情報を検索するよりも, 講義資料が一番役に立つ.

2,3 週目では, 実際に Reproducible Research を実践するためのツール が紹介される. この講義では, knitr をつかう.

紹介された内容にしたがって, 課題が 2 つ出される. github, rpubs に課題を投稿してペアレビューをする.

以下, 自分の提出した課題.

最後の週は, Reproducible Research の実施例が紹介される. 動画は Youtube でも見れる.

感想

Emacs で頑張る

講義では RStudio を利用することが求められるのだが, もともとの動機が Emacs org-mode で Reproducible Research をしたかったので, RStudio を頑なに拒否して, Emacs をつかった.

文芸的プログラミングと R はとても相性がいい

文芸的プログラミングと R はとても相性がいい. この件について再認識した.

そしてなにより, 生成されるドキュメントがとてもかっこいいところが 一番気に入った. こういう感動を忘れずにいたい.

Reproducible blog を目指して

再現可能性という考え方もおもしろいと思った.

Reproducible Research が注目を集める背景には, 以下のようなことがある.

自分は研究者ではないので, いまいちピンとこないのだけれども, 身近な問題に置き換えると, ネット上でみつけたコード辺を動かしてみよう としても動かないことがままある.

もしかしたら, 動かないコードやコンパイルできないコードを, 何食わぬ顔で自分も公開しているかもしれない.

最近では, Web 上でコードを実行できるサービスも出てきた.

このようなサービスを利用することで,

Reproducible Blog 再現可能なブログ

を目指そうと思った.

学習メモ

以下, 自分の勉強メモを

Reproducible Research とは

再現可能な研究. 再現可能なデータ分析.

The ultimate product of academic research is the paper along with the full computational environment used to produce the results in the paper such as the code, data, etc.

Computational X の X の部分にすべて適用できる考え方

  • コンピュータ心理学
  • コンピュータ生理学
  • コンピュータ生物学 … etc.

クラシックの交響曲は様々な楽器かそれぞれのメロディーを奏でて, 一つの音楽をつくる.

テンポや曲調がまったく同じ音楽を再現することは不可能だ. (Replication:複製は不可能)

しかし, 楽譜にしたがって演奏することで, 演奏者が違っても, 世界中のどこでも, 作曲家の示した音楽を再現させることは可能だ. (Reproducible: 再現)

音楽における楽譜がデータ解析におけるスクリプトとなる.

以下のメリットがある.

  • Transparency
  • Data Availability
  • Software / Methods Availability
  • Improved Transfer of Knowledge

統計解析は異常値の除去の方法によって, 得られる結果が異なることがある. 得られた結果の論拠を強くするために, 論拠となったデータを誰もが分析で きるかたちで共有することが重要となる.また, だれもがデータを分析でき ることで, より議論をタイムリーに生み出しやすくできる.

登場の背景

技術の向上が, Reproducible Research の台頭を支えている.

  • コンピュータの計算能力が極めて向上し, 洗練された解析が可能になった.
  • 既存のデータベースが “megadatabeses”にマージ可能となった.
  • データ収集のスループットが新しい技術によって向上した.

Literate (Statistical) Programming

記事は text , code (chunks) からなる

  • A documantation Language (human redable)
  • P programming language (machine readable)

文芸プログラムは

  • 人間が読みやすいドキュメントに waved される.
  • コンピュータが実行可能なドキュメントに tangled される.

Research Pipeline

  1. Mesured Data
    • Processing code
  2. Analytic Data
    • Analytics code
  3. Computational Resuluts -> Presentation code
  4. Presentation Results
    1. Fugures
    2. Tables
    3. Numerical Summaries
  5. Articles

管理するファイルの分類

  • Data
    • Raw data: 生データ
    • Processed data: 前処理がおわったデータ
  • Figures
    • Exploratory figures 分析の途中でできる図.
    • Final Figures: 最終結果の図.
  • R Code
    • Raw scripts
    • Final scripts
  • Text
    • README.md
    • R markdown

R markdown

R Studio のための マークアップ言語.

RStudio と R markdown を利用することで 簡単に Reproducible な report が作成可能.

knitr

HTML や markdown, pdf への export. R と Markdown を利用して文芸的プログラミングをするためのツール.

CRAN から取得可能.

install.packages ('knitr', dependencies = TRUE)

evidence-based data analysis

01 Feb 2015, 06:58

Coursera で R 入門! Data Scientist の講座 2 つ

はじめに

今年の目標はデータサイエンスを学ぶこと.

coursera でデータサイエンスのシリーズ講座があるので, うけてみることにしました.

今回は, その中の 2 つを同時にうけた.

  <div id="outline-container-unnumbered-2" class="outline-2">
    <h2 id="unnumbered-2">
      Coursera の データサイエンティストシリーズの紹介の講座
    </h2>

    <div class="outline-text-2" id="text-unnumbered-2">
      <p>
        データサイエンテス関連の講座が去年に公開された.
      </p>

      <ul class="org-ul">
        <li>
          <a href="https://www.coursera.org/specialization/jhudatascience/1">Data Science &#8211; Specialization | Coursera</a>
        </li>
      </ul>

      <p>
        去年はあまり余裕が無かったけれども, 今年はちょっと背伸びをして受けてみる.
      </p>

      <p>
        データサイエンスの分野が細かく 9 つに分けられて講座として用意されて いる.
      </p>

      <ol class="org-ol">
        <li>
          The Data Scientist&#8217;s Toolbox
        </li>
        <li>
          R Programming
        </li>
        <li>
          Getting and Cleaning Data
        </li>
        <li>
          Exploratory Data Analysis
        </li>
        <li>
          Reproducible Research
        </li>
        <li>
          Statistical Inference
        </li>
        <li>
          Regression Models
        </li>
        <li>
          Practical Machine Learning
        </li>
        <li>
          Developing Data Products
        </li>
      </ol>

      <p>
        ひとつの講座が 1 ヶ月単位. このシリーズの特徴は, 毎月同じ講座が開 講されていること. 半年や一年に一回開講される他の講座に比べると, 珍しい. 検索をかけると, 一年中トップに検索結果が表示されるので, よく目につく.
      </p>

      <p>
        毎月 1 つの講座をうけようとは思うものの, 終わるまで 9 ヶ月かかりそうな&#x2026;
      </p>
    </div>
  </div>

  <div id="outline-container-unnumbered-3" class="outline-2">
    <h2 id="unnumbered-3">
      Data Scientist&#8217;s Toolbox
    </h2>

    <div class="outline-text-2" id="text-unnumbered-3">
      <p>
        この講座は, シリーズのはじめにうける必要がある.
      </p>

      <ul class="org-ul">
        <li>
          <p>
            <a href="https://www.coursera.org/course/datascitoolbox">The Data Scientist&#8217;s Toolbox</a>
          </p>

          <p>
            2 つのトピックを扱う.
          </p>

          <ul class="org-ul">
            <li>
              データサイエンスの概要と, シリーズの別の講座の詳しいガイダンス.
            </li>
            <li>
              データサイエンティストに必要なツールを身につける
            </li>
          </ul>

          <p>
            以下のツールを利用する.
          </p>

          <ul class="org-ul">
            <li>
              R
            </li>
            <li>
              RStudio
            </li>
            <li>
              git
            </li>
            <li>
              github
            </li>
          </ul>

          <p>
            しかし, すべてのツールを利用したことがあったので, なんと 2 時間で 終わってしまった! あっけない.
          </p>

          <p>
            この講座は, データサイエンスシリーズのオリエンテーションだった.
          </p>
        </li>
      </ul>
    </div>
  </div>

  <div id="outline-container-unnumbered-4" class="outline-2">
    <h2 id="unnumbered-4">
      R Programming
    </h2>

    <div class="outline-text-2" id="text-unnumbered-4">
      <p>
        シリーズを通じて R を利用する用なので, まずは R 言語を学ぶ.
      </p>

      <ul class="org-ul">
        <li>
          R の基本文法
        </li>
        <li>
          R の基本データ構造
        </li>
        <li>
          R の 関数型の性質 (apply 系)
        </li>
        <li>
          デバッグ方法・プロファイリング方法
        </li>
        <li>
          Random 生成によるシミュレーション
        </li>
      </ul>
    </div>

    <div id="outline-container-unnumbered-5" class="outline-3">
      <h3 id="unnumbered-5">
        課題
      </h3>

      <div class="outline-text-3" id="text-unnumbered-5">
        <p>
          課題は, csv ファイルからデータを読み出して, 編集して表示するようなもの. 統計的なはなしはほとんどでてこない. せいぜい平均程度.
        </p>

        <p>
          言語の文法とデータの扱い型の説明に終始している.
        </p>
      </div>
    </div>

    <div id="outline-container-unnumbered-6" class="outline-3">
      <h3 id="unnumbered-6">
        感想
      </h3>

      <div class="outline-text-3" id="text-unnumbered-6">
        <p>
          week1,2 は基本文法を次から次へと紹介されるので, 頭が追いつかない. 少し忘れた.
        </p>

        <p>
          講座では, R の関数型の性質が強く説明されていたように感じた. apply の説明に week3 のほとんどが費やされるなど.
        </p>

        <ul class="org-ul">
          <li>
            値は代入では無くて, 束縛.
          </li>
          <li>
            loop を利用するよりも, apply を利用するとプログラムが短くなる.
          </li>
        </ul>

        <p>
          なんとなくだけれども R を身につけた. 文法は抑えたので, あとは R の関数の使い方を覚えていけば大抵のことはできる気がする.
        </p>

        <p>
          R を利用すると, 大きな CSV データが簡単に処理できることに驚いた.
        </p>

        <p>
          いままで, Excel しか知らなかった人間にとって, <b>データをプログラムで解析する</b> という新しい視点を手に入れた. こういう, 新しい知見を得ることも, MOOC に取り組む一つの目的だ. g
        </p>
      </div>
    </div>
  </div>