Rによるデータ分析

ウェブアプリ R-EDA1

EDAは「Exploratory Data Analysis:探索的データ解析」の略です。 「EDA」という言葉は、 データマイニング の分野で昔から使われています。 モデリングの前に、データの表をよく調べる作業のことを指しています。

R-EDA1に入っているEDAは、筆者自身が「このデータは、どんなデータ?」、 「このデータに入っている因果関係のヒントは何か?」といった目的で、データ分析をする時のデータの見方になっています。 EDAの一般的な解説では、各変数の平均値などの統計量を計算したり、各変数をヒストグラムにする作業が紹介されるのが一般的なようです。 しかし、筆者の経験の話になりますが、各変数の単純な統計量やヒストグラムは、 その後のアクションにつながらないです。 R-EDA1には、筆者自身が使っていたり、「こんなことがしたい」と思って来たEDAの手法を入れています。
ウェブアプリ R-EDA1

R-EDA1の特長

無料

無料で使えます。

すぐに使い始められる

下記のリンクを開くと、ソフトが立ち上がります。 ソフトは、Rstudio社が提供しているサーバで動くため、自分のパソコンのインストール作業はありません。 (「自分のパソコンだと、うまく動かない!」ということがないです。) 「メールアドレスの登録」、といった作業もありません。

ソフトから、データの入っているcsvファイルを開いて、やりたい分析を選ぶだけです。 Rを使っているソフトですが、Rのコードを自分が書く必要はないです。
https://ecodata222.shinyapps.io/R-EDA1/
ウェブアプリ R-EDA1

実務向き

データ分析の解説書には、回帰分析、主成分分析、といった手法が説明されています。 実務では、それらの手法に加えて、質的変数を量的変数にする処理や、出力のグラフ作成を組合せていきます。 このソフトは、よく使われる組合せごとに、まとめています。

レストランで、「麺類」のページを選んでから、「鍋焼きうどん」を選ぶ感覚で使えるようにしようとしています。 一般的な、データ分析の解説書の内容は、 「うどんの作り方」、「出汁の取り方」、といった内容ですので、やりたいことに行き着くまでに時間がかかります。

数週間、数か月といった時間をかけても良いのなら、じっくり分析プランとコードの作成を進めても良いかもしれませんが、 R-EDA1は、 緊急事態対応の打合せをしている時に、その打合せの中で分析結果を出したいような場合も想定しています。

量的変数と質的変数が混ざっていても、分析できる

細かい話になりますが、このアプリでは、量的変数を前提とした手法を使う時は、質的変数は、 ダミー変換 をして、量的変数として使えるようにしています。 反対に、質的変数を前提とした手法を使う時は、量的変数は、 1次元クラスタリング をして、質的変数として使えるようにしています。 (このアプリのデフォルトでは、数値の範囲を5分割して、それぞれをカテゴリにします。)

この変換によって、量的変数と質的変数が混ざっていても、分析できるようになっています。 また、その手法がもともと前提としたタイプではないデータを扱うと、分析できることが増えます。 例えば、量的変数を前提とした手法は、量的変数の非線形の関係を扱うのが苦手ですが、 質的変数を前提とした手法を使うと、非線形の関係も分析できるようになります。

R-EDA1の弱点と、対策

表示が英語、日本語が不便

Rguiも、RStudioも、特に設定しなくても、日本語(ひらがな、カタカナ、漢字)が使えるソフトです。 ところが、Rを含んでいるコードをウェブアプリにする、Shinyというライブラリは日本語が扱えません。 コードの中に日本語が含まれているとエラーになります。 また、入力データの中に日本語が含まれていてもエラーになることがあります。

csvファイルの文字コードがANSIだと、読み込まれません。 UTF-8だと、読み込みはできます。

UTF-8に変換するには、EXCELの場合、「CSV UTF-8(コンマ区切り」で保存します。
R-EDA1

csvファイルはメモ帳で開いて、UTF-8で保存することもできます。
R-EDA1

ただ、UTF-8にしてもigraphを使ったグラフでは文字化けが起きます。 また、全角の記号で表示が元と違うこともあります。 これを避けたい場合は、ローマ字でも良いので、英数字のデータにしておく必要があります。

操作画面は、日本語版がありません。 ただ、最近のブラウザには翻訳機能がありますので、それを使うと、ある程度は日本語で読めるようになります。 下の例は、Microsoft Edgeですが、Google Chromeでも同じような感じになります。 ちなみに、筆者の名前は「哲朗」なのですが、どちらのブラウザも「哲郎」と変換します。。。 筆者の名前はともかく、専門用語の翻訳がおかしいことがあるので、この訳語をそのまま使わない方が良いです。 例えば、下図に「寸法縮小」とありますが、「次元削減」が一般的な訳語です。
ウェブアプリ R-EDA1

計算が遅いことがある

R-EDA1の本体は、RStudio社が提供している無料サーバにあります。 基本的に計算時間は、このサーバの能力で決まっています。

複数の人が同時に、このツールを使う場合にどうなるのかは、筆者はまだ知らないです。

Rなどにあるサンプルデータ(irisなど)の規模なら、計算時間が気になることはないと思いますが、 数秒くらい待つことがあります。 データがあまり大きいと、計算が止まることがあるかもしれません。 データが大きいと、データの通信時間もそれなりにかかります。

Rstudioが自分のPCにインストールされていれば、 「自分のPCで動かす」ということもできます。 以下の2行をRstudioのConsoleに入力すると、R-EDA1が起動します。 なお、自分のPCで動かす場合、R-EDA1で使うライブラリで、インストールされていないものがあれば、エラーが出ます。 エラーメッセージの中に、どのライブラリがないのかが書かれています。ないものはインストールが必要です。 最初は、ライブラリでないものが複数あるかと思いますので、「エラー → インストール」の作業の繰り返しになるかと思います。

library(shiny)
runUrl( "http://data-science.tokyo/R-EDA1.zip")

GitHubにコードを置いていますので、コードをダウンロードして使うこともできます。 ui.Rとserver.Rのどちらかを、Rstudioで読み込むと起動します。
https://github.com/ecodata22/R-EDA1
※ ダウンロードをしないで、GitHubのコードで起動する方法がShinyではできるはずなのですが、なぜか筆者の場合はできません。

また、筆者は試したことがないですが、AWSなどのクラウドでShinyを使うこともできるそうです。 自前で用意する必要がありますが、これを立ち上げて、R-EDA1のファイルを置けば、リッチな計算環境で計算することもできるようです。

入力データの形に制約がある

入力データは、csvファイルだけです。 Excelで、保存する時に「csv」を選ぶと、作ることができます。

また、細かいことはソフト自体に書いていますが、データの形がソフトが想定しているものと違うと、 エラーになったり、異常に計算時間がかかったりします。 例えば、量的変数の中に、質的なデータが混ざっていると、「質的変数」と判断され、膨大な数のカテゴリのある質的変数になるため、計算時間が異常に長くなります。

手法の分け方

データ分析の解説では、「教師あり学習・教師なし学習」、「目的変数が量的変数・質的変数」、といった観点で手法を分類するのが一般的です。

R-EDA1の手法は、EDAのレシピ集なので、「回帰分析」、「主成分分析」といった個別の素材を単独で選ぶようにはなっていません。 ほとんどが、前処理、複数のモデルの組合せ、グラフをセットにしたレシピになっています。

表形式のデータの見方で、まず、大きく3つに分類しています。 「列の項目の類似度を見る」、「行の項目の類似度を見る」、「行と列の項目の類似度を見る」、の3つです。 「カテゴリの類似度」は、「列の項目の類似度」の応用技です。

更新履歴

更新履歴は、 R-EDA1のリリースノート にあります。




Tweet データサイエンス教室