2011-03-19

Javascriptの統計ライブラリ jStatについて

jStat (http://www.jstat.org/) とはJavascriptでMATLABやRのような処理をするためのライブラリです。
(同名のjvm統計データ監視ツールとは関係ないです)

http://www.readwriteweb.com/hack/2011/03/jstat-its-like-r-for-javascript.php
でも紹介されてます。
R開発者のEd Borasky氏によると、これからはJavascriptでビジュアライズするのがトレンドらしいです。

というわけでちょっと遊んでみました。

準備

jStatは以下のものに依存してるけど、http://www.jstat.org/download から依存ライブラリをまとめてパッケージにしたものがダウンロードできるので特になにもしなくてOK。

Bundleをダウンロードして(jstat-1.0.0.zip) 解凍すると、デモがindex.htmlにあるのでそれをブラウザで開くだけ。

デモ

試しにtwitterのpublic timelineに流れてるtweetの文字列長の正規分布のグラフをつくってみました。timelineがかわるとグラフも変わります。



ソースはこんなかんじです


$(document).ready(function() {
$.getJSON("public_timeline.php", function(json) {
            var x = new Array(json.length);
            var sum = 0;
            for (var i = 0; i < json.length; ++i) {
                x[i] = json[i]['text'].length;
                sum += x[i];
            }
            var mean = sum / json.length;
            var sum2 = 0;
            for (var i = 0; i < json.length; ++i) {
                sum2 += Math.pow((mean - x[i]), 2);
            }
            var variance = sum2 / json.length;
            var sd = Math.sqrt(variance);
            var distribution = jstat.dnorm(x, mean, sd);
            jstat.plot(x, distribution, {main: "tweet length distribution", type: "p"});
        });
});

本家サイトにデモがあるのでそっちもみると雰囲気がわかると思います http://www.jstat.org/demonstration

まとめ

  • 導入が簡単でブラウザさえあればいけるので、RやMATLABにくらべると敷居が低い感じ。
  • jQueryがつかえればUI的な面で有利
  • ブラウザでRを使いたい場合はRStudio ( http://www.rstudio.org/ ) とかもあるけど、RStudioは完全に開発者向けなのに対して、jStatはリアルタイムに集計結果を一般ユーザに見せたい、みたいなシチュエーションで重宝しそう

以下気になる点

  • まだドキュメントがない
  • Javascriptで実装されてるので複雑なことをやるにはちょっと非力かも??

0 件のコメント:

コメントを投稿

ZenBackWidget