SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

rChartsでR言語のデータ解析結果をダイナミックに可視化しよう

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第7回

やってみよう

 データ解析結果の描画を、Rの標準関数とrChartsで比較してみましょう。

Rのインストール

 R Projectサイトのdownload Rのリンクから、一番近いCRANミラーサイト(日本からだと、東京、筑波、兵庫のいずれか)を選んで、R本体をダウンロードしてください(記事執筆時点での、Rの最新バージョンは3.0.1です。本記事で行った検証については、このバージョンを使用しています)。

 詳細なインストール方法の説明は、本記事では省略します。こちらのサイトで詳しく案内されていますので、必要な方はご覧ください。

rChartsのインストール

 devtoolsというRの開発ツールを使って、開発者のGitHubのリポジトリから直接インストールします。Rのコンソールより、以下のコマンドを実行してrChartsをインストールしてみましょう。

> library(devtools)
> install_github('rCharts', 'ramnathv') # GitHub からdevtools でインストール
> library(rCharts)

 エラーが発生していなければrChartsのインストールは完了です。

 なお、rChartsは開発中のツールです。本記事執筆時点からrChartsの内容が将来的に変更になる可能性もあり、本記事のコマンドは期待通りの動作をしなくなる可能性があります。

回帰分析

 基本的なデータ解析手法である回帰分析の結果をrChartsで描画してみたいと思います。

 回帰分析とは、とあるパラメータ(説明変数)が得られた場合のその結果(目的変数)を予測する統計的なモデルを、与えられたデータセットから推測する手法です。

 今回は1種類の説明変数を扱う単回帰分析を、R標準添付のサンプルデータセットであるcarsを使って行います。

 なお、carsデータセットとは以下の2つの属性を持つシンプルなデータセットです。speedが説明変数、distが目的変数です。

  • speed:車の速度(m/h)
  • dist:その速度のときに、ブレーキをかけて止まるまでに要した距離(ft)

 実際のサンプルデータcarsの中身は、コンソールからcarsと入力するだけで確認することができます。

> cars          # cars の中身を表示
     speed dist
1      4    2
2      4   10
3      7    4
4      7   22
(中略)
47    24   92
48    24   93
49    24  120
50    25   85

データ解析(チャート描画の事前準備)

 チャートを生成する前に、Rのlm関数で回帰モデルを計算しておきます。

 なお、データ解析については本記事では詳しい説明はしません。詳細な説明が必要な方は、参考文献の『Rによるデータサイエンス-データ解析の基礎から最新手法まで』を参考にしてください。

> cars.lm <- lm(dist ~ speed, data = cars) # 回帰直線を求める
> cars.lm # 回帰のモデルの概要を表示
Call:
lm(formula = dist ~ speed, data = cars)

Coefficients:
(Intercept)        speed  
    -17.579        3.932  

 上記のCoefficients(Intercept)speedが解析結果としての回帰直線の切片と傾きになります。つまり、回帰のモデルは以下の式で表せます。

dist = -17.579 + 3.932 * speed

 上式の意味するところは、説明変数speed1増えると、ブレーキをかけてから止まるまでの距離dist3.932増えるということになります。さらに、speed0のときはdist-17.579です。

 なお、ブレーキをかけてから止まるまでの距離distが負の値を取るということは、現実的にはあり得ませんが、今回採用した単純な線形モデル(distspeedの1次式に比例する)によると、こういう結果になりました。今回はこのまま描画します。

R標準のplot機能で描画

 まずは、Rの標準機能で描画します。plot関数で散布図を描画し、abline関数で回帰直線を描画します。abline関数は回帰分析結果、つまり、lm関数の結果を引数に指定するだけで、回帰直線を描画してくれます。

> plot(dist ~ speed, data = cars) # 散布図
> abline(cars.lm) # 回帰直線

 標準のplotでも、情報量としては不足はありませんが、やはり素っ気ないですね。

次のページ
クラスタ分析

この記事は参考になりましたか?

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

白石 康司(TIS株式会社)(シライシ コウジ)

TIS株式会社 コーポレート本部 戦略技術センター所属。現在、機械学習技術の研究、機械学習をベースとしたアプリケーションの企画・開発を、PythonやR言語をベースに行っている。 機械学習その他に関する社内研修やオープンな技術勉強会(Tech-Circle)の企画運営にも従事。 もともと、金融系基幹Webシステム開発でのアプリケーションアーキテクチャ/データモデル設計、データベース(Oracle)担当を経...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7383 2013/09/26 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー