TableauでRをつかってみよう!(実践編)

Nanaeです。
R連携の第二回目。TableauとRを連携させる手順は前回お伝えしました。
http://tableaujpn.blogspot.jp/2016/08/tableaur.html


今回は、じゃあ実際にTableauでどう使うのか?とか、TableauからRを使うときに浮かびやすそうな疑問点についてお伝えします。

まず接続できるデータソースが気になりますね。Tableauが取得してきたデータに対してRが計算しますので、Tableauが接続できればなんでもOKです。制限はありません

次に、どうやってTableauからRに指示を出すのか、です。Rを使うときはスクリプトを書く必要があるので、TableauでRを使うときも計算フィールドの中にRのスクリプトを書く必要があります。そのとき、Tableau側で処理するのではなくてRに計算させるとTableauにわからせるために、下記4つのどれかの関数の中にRのコードを書くことになります。ちなみにRを使ったフィールドは表計算が行われます。

SCRIPT_REAL ():実数
SCRIPT_STR():文字列
SCRIPT_INT():整数
SCRIPT_BOOL():ブール

これらの関数を使うときには、ルールがあります。

・関数の中に"..."を書き、その中にRのコードを書く。
・R内で使いたいメジャー部分は、.arg1, .arg2,...といったように.argに数字をつけた形で書く。
・"..."後に、カンマをつけて、.arg+数字にあたるメジャーを指定する。
・"..."後に指定するメジャーは、集計されている必要がある。

あとは、Rの関数を調べながら、Rstudioなんかで確認しながら、書いていくだけです。

使っているうちに、こんなエラーに遭遇することもあるかと思います。

これは、Rから持ってこようと思ったデータの型が、Tableauでは受け取れないときに出ます。データ型も意識して使ってください。
RからTableauに渡せるデータの型:小数、整数、ブーリアン、文字列
TableauからRに渡せるデータの型:小数、整数、ブーリアン、文字列、日付、日付時刻


では1つ、相関係数を出す例を示します。
傾向線はアナリティクスペインからすぐ出るし、マウスオーバーすれば、式やR^2値もP値もすぐ出ます。


でもR^2じゃなくて、感覚的に多くの人がわかりやすい相関係数Rを出したい場合もあるでしょう。そこでここでは、相関係数Rを、R連携で計算させてみます。

計算フィールドにRのスクリプトを書きます。
小数で返される相関係数を持ってきたいので、SCRIPT_REAL()を使います。その中に"..."を書き、Rで相関係数を出せるcor()を使って、2つのメジャーを指定します。


いったんこのフィールドを作っておけば、ディメンションとして顧客名を使えば顧客名単位での相関係数が出ますし、製品名を使えば製品名単位での相関係数が出るので、簡単に異なる観点で結果を出すことができますね。そういった場合、複数のディメンションをパラメータとして持たせておくと、閲覧者にやさしいですね。



その他、Rだからこそ、さまざまな分析が簡単にできます。以下、R連携のアウトプット例です。連携方法さえわかればあとはRの問題なので、いろいろ調べてTableauで表現してみてください!

異常値


回帰


予測


クラスタリング


ネットワーク図


センチメント分析
Reuben Kearney(https://reubenkearney.com/2015/06/07/updated-sentiment-analysis-with-sentiment/)から引用。細かく実現方法が記載されています。



Nanae




TableauでRをつかってみよう!(準備編)

Nanaeです。お久しぶりです。

Tableau v10から、クラスター分析ができるようになりますね。Tableauがもつ分析機能もどんどん増えていってますが、あくまでTableauはBIであり可視化が得意な製品です。統計解析やテキストマイニングなど、もっといろんな分析をしたいときはRを使ってみましょう!

TableauRを連携させたダッシュボード例↓
高度な分析結果がTableauできれいに出せてます。


Rとは?
統計解析やデータマイニングができるOSSです。簡単にいうと、いろんな分析ができて、しかも無料で使えるソフト。

なんでわざわざTableauからRを使うのか?
Tableauなら、きれいに可視化できます。Rはすべてスクリプトで書きますが、Tableauを通すとドラッグアンドドロップだけで別の観点から結果が出せます。そのため、Rがわかる人がR関連の用意をしておけば、多くの人が深い分析ができるようになりますし、再利用もしやすい。Tableau Serverを使えば、共有も簡単・便利。

いろんな分析ができるRと、きれいに描画できるTableauを組み合わせて使ってみましょう。まずは、連携するための準備編です。

前提。Rと連携できるTableau製品は、Tableau DesktopとTableau Serverです。Tableau Online, Tableau Public, Tableau Readerでは、R連携したワークブックが見られないので注意!

それでは、Tableau Desktopを使って、Rと連携するための手順です!たった4ステップ!

1. TableauRを手に入れる

Tableau Desktopをインストール
http://www.tableau.com/ja-jp/products/desktop

R
をインストール
https://www.r-project.org/

必須ではないですが、Rで試行錯誤するならRStudioがあると便利。個人で使うならDesktop版。
https://www.rstudio.com/
RStudioとは、Rの統合開発環境。OSS。


2. Rを管理者権限で開く


3. R
にRserveというパッケージをインストールし、Rserveというライブラリを読み込ませる
Rserveとは、他のプログラム(Tableau)からRを使えるようにしてくれるサーバ。
パッケージとは、関数やデータやマニュアルなどが入ったまとまり。

install.packages()によってRserveをインストールし、library()によってRserveをRに読み込ませる。


Tableau ServerでR連携したワークブックを見る場合は、Tableau ServerもRserveに接続できることが条件になります。

4. TableauRに接続する
ヘルプ > 設定とパフォーマンス > 外部サービス接続の管理 (またはR接続の管理)から、


サーバー名とポートを入力します。デフォルトはポート6311。


最後に接続したサーバーとポート/APIキーは保存されます。

たったこれだけ!これでTableauRの連携は完了。
TableauRのスクリプトを書くと、それはRserve経由でRのコードとしてRで処理され、Rserve経由でTableauに戻ってきて、Tableauでは表計算として実行される、という流れになります。


以下、参考です。いろいろ見てみてください。

----Tableau×R----

■オンラインヘルプ

R 接続
http://onlinehelp.tableau.com/current/pro/online/ja-jp/help.html#r_connection_manage.html

■ホワイトペーパー

R と Tableau を使用する
http://www.tableau.com/ja-jp/learn/whitepapers/using-r-and-tableau

■Webページ

テクノロジー:R
http://www.tableau.com/ja-jp/stories/topic/r

■ブログ(日本)

Classmethod
Tableau&R連携(1) – Tableau Desktopからローカル環境のRServeに接続する
http://dev.classmethod.jp/business/business-analytics/tableau-desktop-and-r-01-local-rserve/
Tableau&R連携(2) – AWS上に構築したRserveとTableau Serverでコンテンツを共有
http://dev.classmethod.jp/business/business-analytics/tableau-desktop-and-r-02-centos-rserve/

GiXo
Geek at GiXoの分析ツール使いこなし術|TableauとRの連携(1)
http://www.gixo.jp/blog/3365
Geek at GiXoの分析ツール使いこなし術|TableauとRの連携(2)
http://www.gixo.jp/blog/3366
Geek at GiXoの分析ツール使いこなし術|TableauとRの連携(3)
http://www.gixo.jp/blog/3367

Qiita
Tableau × R で時系列分析をやってみる
http://qiita.com/yatarou/items/7bb9381e6586b9318aa6

----R----(日本のみ)

seekR
http://seekr.jp/

コピペで学ぶRでテクニカルデータプレゼンテーション
http://monge.tec.fukuoka-u.ac.jp/r_analysis/0r_analysis.html#basic


最後に。。。TableauのRとの連携部分はサポート対象ですが、Rのスクリプト自体はサポート対象外となっておりますので、上記サイト等で調べて使ってください!

TableauでRを使う実践編もご覧ください。
http://tableaujpn.blogspot.jp/2016/08/tableaur_12.html

Nanae

[データ] ペインの高さ自動調整~TableauこだわりのUI

みなさん、こんにちは! Kaoriです。
バタバタしてたらついに7月は記事を書き損ねました・・・ギャー!!!すびばぜん。。。

ありがたいことにいろんな方にこのブログも見ていただいているみたいですし、
今月はちょっと余裕ありそうなのでどしどし書いていきたいですね!

ということで、書きたいネタはいろいろあるのですが今日はTableauのこだわりUIについて語っていきたいと思います。

今日は[データ] ペインをじっくり眺めてみましょう。

あ、ちなみに[データ] ペインてなに??という方のために一応画像つけときますね。

コレです。
あ、コレねって感じですよね(笑)
見たら誰だってわかると思うんですがこれ[データ] ペインと言いますw
ま、名前知らなくても使えちゃうからいいんですけどね。

[データ] ペインを使わないと分析できません。
何気なく使っているところですが、そのくらいTableauの中で超重要なUIです。
そんな[データ] ペインの進化について今日は解説していきたいと思います♪

Tableau 9.0がリリースされた折には、[データ] ペインに並んで[アナリティクス] ペインが登場し、今までデータしかドラッグアンドドロップできなかったわけなんですが、分析方法もドラッグアンドドロップできるようになって、直感的な操作の幅がさらに広がりましたねなんていう話題で盛り上がったわけなんですが、、、、

[データ] ペインは縁の下の力持ち的なポジションで、当たり前のようにそこにあって、昔のバージョンを使っている人にとっても特に変わりはないように見えるかもしれません。
が、実はここもちょっとずつ進化しています。
Tableauは製品思想がしっかりしているので、変える必要のないところは変えませんし、
みなさんがせっかく覚えたテクニックが無駄にならない、いい進化を遂げている製品だと思います。
なのでベースは変わらないのですが、さりげな~~く進化を遂げているのがこの[データ] ペインなのです。

というわけで過去からの[データ] ペイン進化の過程をご覧ください。



[データ] ペインが変わったなと思えるバージョンをピックアップして載せてみました。
進化の過程が面白いですね。
8.0あたりからはなつかし~~なんていう方も多いんじゃないでしょうか。
私も日付データで使われているカレンダーのアイコンがシンプルになったときは驚いたものです。
(あ、ちなみに私も別に初代から使っていたわけではないです)
初代はディメンションとメジャーが分かれていなかったりしたみたいなんですね~~
これは2ですぐに分かれていましたが。
あとはアイコンがどんどん洗練されていきます。
まもなくリリースのv10.0でもそうなのですが、「アイコンは意味のわかる限界までシンプルにする」というのを実践しています。
なぜならVizを邪魔したくないからですね。
昔の日付や地球儀のアイコンが絵みたいだったのがシンプルな記号になってきているところからも、それは見て取れると思います。
その進化のまず一旦の集大成がv10.0になるわけなのですが、それはまた別のお話として・・・

アイコンはシンプルになったし、ディメンションとメジャーも分かれたし、で
一見もうやることのないように見える[データ] ペインなのですが、実はこっそり9シリーズ中に進化を遂げています。

こちらをご覧ください。


9.2で進化しています。
違いわかります?
答えは少しスクロールしてご確認ください。
































































そう、スクロールバーですっ!!!!!



9.2の新機能として、ディメンションとメジャーの高さ自動調整機能が加わっていたのでした。
つまり、ディメンションの数とメジャーの数を鑑みて適切な高さに調節してくれるってことです。
どうだ、すごいだろ!!!!!!!


え? すごさがわからないって???????

いや、でも、このディメンションがさ、一度に見れなくてメジャーがスカスカだったりすると仕切りの位置を変えるわけじゃないですか。
データにつないで最初にやることが[データ] ペインのウィンドウ調整になっちゃうわけじゃないですか。
そんなのナンセンスでしょ?
みなさんが見たいのは項目一覧ではなくデータですからね。
大体これを毎回やってたら何気に工数の無駄ですし。

というわけで、データに接続してからいかに素早くデータ分析のフェーズに入れるか!!!!
これを追及しているTableauなわけです。
どうですか。美しいでしょ?

そのシームレスさ、という意味では、
もしかしたら気づかれなくてもいいのかもしれないけど、ちょっと気づいたので書いてみました。
こまこましたところなんですがかゆいところに手の届く、こういう機能が意外と操作感に響いてくるものです。
ということで、古いバージョンをお使いの方はぜひぜひ最新バージョンへのアップグレードをお願いします!
もうすぐv10.0出るのでv10.0ですね。

そしてみなさんもTableauの素敵な魅力に気づいたらぜひ教えてください!




(おまけ)
さて、分析になくてはならない[データ] ペイン、主役ではないが超重要な[データ] ペイン・・・
時々予期せず消えちゃうことありますよね。



[データ] ペインの消失・・・



これはウィンドウのところから戻すことができます。




しかし、実はここを押すとワンクリックで戻すことができます!!
(左下の上下矢印です)




こんなところに隠れていたんですね~~
下にたたんであるイメージです。
押したときの動作もそんな感じですよね。

ちなみに、消えちゃうのはなぜかというと[アナリティクス] ペインの脇の上下矢印を誤まって押してしまっているからなのでした。
[アナリティクス] ペインを選ぼうとしたら間違って[データ] ペインたたんじゃった!ってことがよくありますねw



これで突然の[データ] ペイン消失も怖くない!!
というかたたんだり出したりして普通に活用してくださいw

画面が狭い時に、編集はしないけど、ピルの位置を確認しながらVizを見たいときにおススメです。


というわけで、今日は縁の下の力持ち、[データ] ペインについての記事でした。

ではではまた!!


Kaori

#MakeoverMonday in Japan!!!

と、いうわけで!!!!

ロンドン発のミニVizChallenge、 #MakeoverMonday がついに日本上陸です!!

先週、Tableauテクニカルエヴァンジェリズムディレクター Andy Cotgreave によるビジュアル分析に特化したワークショップで主催者本人が参加者にやってもらい、日本でもスタートすることになりました。

まだ知らない方のために説明すると、これは毎週Tableau Zen MasterであるAndy KriebelさんとTableau Technical Evangelism DirectorであるAndy Cotgreaveさんがチョイスした記事のチャートを自分なりに作り変えてみるというエキササイズです。

本家Webサイトはこちら。

Makeover Monday Challenge


チャートの元データはありがたいことにとっても使いやすい形にされたものが配布されます。
このデータをダウンロードして、Tableauでチャレンジします。

リンク先に書いてありますが、かんたんなやりかたを説明します。

1.Makeover Monday ChallengeのWebサイトにアクセスし、今週分(一番上のですね)データをダウンロードする。

2.元記事のリンクを見て、そのチャートを自分なりに作り変えてみる。

3.1時間以内に作る。
 (だらだらやらないことも重要なポイントです! 長続きの秘訣でもありますね)

4.作ったらみんなにシェアする。シェア方法は以下の2通り。
  ①Twitterに #MakeoverMonday と #タブロー をつけて投稿する。
  ②以下のアルバムに画像をアップする。
   http://bit.ly/MoMJ


【やりかたのポイント】
・まず大前提として、この試みは元記事を否定するものではありません。あくまで自分だったらこのデータを使ってどんなチャートやストーリーを作れるか、ということにフォーカスしてください。

・元チャートのどこがデータをよく表せていて、逆になにがうまく表せていないか考えてみてください。



シェアすると驚くくらいRTされたりいいねされたりするので、Twitterやっている方はTwitterでやっていただくことを強く!!強く!!!おススメします!!!!
Zen Masterと交流できるとかあまりないので面白いです。
投稿はもちろん日本語でOKです!
日本語のものだけ探しやすいように #タブロー をつけていただくのはJapanルールです。
英語のばっかりで見る気が起きない~~というのを防ぐための処置ですので(笑)ぜひお願いします!
ただ、メインは画像なので英語読まなくてもまったく気になりません!!
むしろ1時間でこんなのつくる人いるの?!っていうのがゴロゴロ出てくるので、#MakeoverMonday でどしどし検索してみてください。

↓こんな感じです。にぎわってます。
ハッシュタグ #MakeoverMonday

Twitterをお持ちでない方は②のアルバムにアップしてください。お名前を入れたい方は画像内にわかるように入れておいてくださいね。もちろん匿名でも可能です。
画像が溜まってきたら各所で紹介していけたらと思います。

短い時間で、データから何を導き出すかという主題、そしてそれをどう表現するか、というタイムマネジメント・ストーリーテリング・テクニックの3段構えが鍛えられるので、とてもよいチャレンジだと思います。
私も毎週チャレンジすべく頑張ってます(・ω・)

ちなみに、Makeover Mondayですが、もちろん月曜日にできなくても、他の曜日で全然大丈夫です(笑)
みんないつ投稿しているかというと、もちろん月曜日が多いですがその他の曜日に投稿している方も結構います。
土日にやってる方が多いのもすごいですね!!


1週間のうちのどこかでできればいいし、それに毎週が難しい方はできるときでもいいと思います。
無理のない範囲でぜひ気軽に参加してみてください!

普及イベントの一環として、2016/7/6の18:30からTableau JapanオフィスでMakeover Monday紹介ミニイベントやります!
ので、もし気になったけどやっぱりやりかたがよくわからないな~~という方はぜひ足を運んでくださいね。

Bar Chart × #MakeoverMonday

ではでは!!

用語について調べてみる~スタック マーク

そういえば適当に使っていたけどよく考えたら意味が分からない、ちょっと気になるカタカナ用語について調べていくコーナーです。
今日は「スタック マーク」について。

Tableauの一番上にある「分析」のところにある「スタック マーク」ってみなさん使ってますか?
私は結構よく使うのですが、そういえばそもそもスタックってなんだっけとかいまさら思ったので調べてみました。
英語が得意な方は何をいまさら・・というかんじでなまあたたかい目でご覧ください(^q^)

スタック マークはこれです!


どういうときに使うかというと、積み上げ棒グラフをつみあがっていない状態にするときに使います。
オフにしてみましょう。


こうなります。
あれ?カテゴリが減った???



と思われるかもしれませんが、安心してください。
減ってはいません。わかりやすくするためにサブカテゴリをサイズにも入れてみます。
すると、すべてのサブカテゴリがy軸0からスタートしていることがわかります。
つまり、積み上げていないんですね。


またオンに戻してみます。
スタックマークをオンにした状態というのは、積み重ねてくださいねと言っていたんですね。

そろそろスタックの意味も想像がついて来ている方もいらっしゃると思いますが、せっかくなのでじっくり極めていきましょう!
英語版で見るとスタックはStackです。


stackとは




主な意味積み重ね、(戸外に積み重ねた)干し草の山、たくさん、多量、(屋根にまとめてある)一群の煙突、(汽車・汽船などの単独の)煙突、(図書館の)書架、叉銃(さじゆう)、スタック
by weblio辞書

なんと、スタックとは干し草の山だったのですね!!
ふっくらいいにおいでダイビングしたくなりそうな干し草の山です。
この干し草を積んだ状態がスタック マーク オン、



積まないで置いた状態がスタック マーク オフ、


というわけですね。


・・・・・・いまだかつてないのどかな記事になってきました。




Stack marksそのまま訳してスタック マークになったんだろうけど、厳密に日本語にするとなると
「マークをスタックする」ってことなんでしょうね。


さて、このスタック マークですが。
デフォルトでは自動になっていて見ているビューによって変わっていることをみなさんはご存知でしたでしょうか?
なんとなく思い返してみたらたしかにそうだなってなると思うんですが、
冒頭で見た棒グラフはオンですよね。
積み上げ棒グラフになります。

では線グラフだと・・・



オフですね。
線グラフの時はすべての色の線がy軸0からスタートしていますよね。
なのでスタック マークはオフなんです。


ではエリアチャートだと・・・




オンですね。
上にのっているように見せた方がわかりやすいですもんね。

これらはデフォルトで一番よく見えるようにTableauが勝手に判断してやってくれています。
が、もちろん自分でオフにしたりオンにしたりすることで、いつでも変更できます。

線グラフをスタック マーク オフにすると、エリアチャートの塗ってないバージョンみたいなのができます。


使いどころを間違えるとハイパーミスリーディングなチャートになってしまうので注意が必要ですが、こんなこともできちゃうのでした。


干し草くんを積み上げるかどうかでなかなか違った見え方になるので、いろいろ試してみてくださいね(^o^)


Kaori

上半期と下半期の表示

Nanaeです。お久しぶりです。

ここから数回、よくご質問を受ける計算式の書き方をご紹介しようと思います。コピペして使えるようにしておきましたので、ぜひご活用ください。

今回は、日付のフィールドに上半期/下半期を表示させるには?という疑問に答えます。

 

Tableauでは、行列に入れた日付のフィールドをクリックするだけで簡単に、年→四半期→月→・・・とドリルダウンさせることができます。
でも、年と四半期の間に上半期・下半期がありません。これを表示させたい!という要望を時々聞きます。上半期・下半期を表す計算フィールドを作成して、それを年と四半期の間に入れ込むことで実現します。

Tableau Desktopに同梱されているスーパーストアのデータを使用し、日付フィールドは[オーダー日]を使って説明します。

まず、16月を上半期、712月を下半期とする計算式を以下のように作成してみます。

IF  month([オーダー日])<=6 THEN "上半期" ELSE "下半期" END
これを図のように日付フィールドの中に入れると、きちんと上半期と下半期が表示されました!


では次に、会計年度が4月だった場合どんな処理が必要になるでしょうか?

最初に会計年度を4月に変えます。
ここでは元の日付フィールドを複製して、複製したフィールドの会計年度を変えました。


そして、49月を上半期、103月を下半期となるように、次のような計算式を書きます。


IF month([オーダー日])>=4 AND  month([オーダー日])<10 THEN "上半期" ELSE "下半期" END

これを、年と四半期の間に配置します。
また、確認のために、会計年度を変更していない元のフィールドも同時に一番左に入れておきました。


すると・・・会計年度が1年うしろにずれています・・・!2011年は、3月までが2010年度で4月からが2011年度になるはずですが、2011年の中に2011年度と2012年度が存在しています。

これは締め日で年度を表していることが理由なので、マイナス1年する計算フィールドを作成します。こちらのフィールドを使って年・四半期・月を表現します。

DATEADD("year",-1,[会計年度を4月にしたオーダー日])


これで、会計年度が4月開始の日付フィールドで上半期・下半期を表現することができました

Nanae

ダウンロードはこちら↓

Tableauの処理の順番を知る(Query Pipeline)

Kaoriです!
今日はみなさんにQuery Pipelineをご紹介したいと思います。

Query Pipelineってなんぞや?と思われる方もいらっしゃるかと思いますが、
これはつまり、Tableauの中でどういう順番でデータを持って来て、計算するのです
というルールのことです。

Tableauはこのルールに従ってさまざまなデータを処理してビジュアライゼーションにしてくれてるわけですね。
おつかれタブロー!!いつもありがとうね!!!



特に見てほしいポイントとして、表計算はすべての処理のあとのあと、一番最後に動く、とか
LODはFIXEDとINCLUDE/EXCLUDEと動く位置が違うとか、なかなか面白いポイントが書いてあると思います。

この仕組みを使った例はこれからちょこちょこTipsとして紹介していきたいと思いますが、
まずはこの順番で動いているんだな、ということを念頭に入れていただくと、いろんな小技を思いついたりしますし、あるはずのデータがない?!といったときにスムーズに対処できるかもしれません。

昨日LODのWebinarをやったのですが、その際に公開してほしい、というご意見をたくさんいただきましたので、みなさんの役に立つかと思い、投稿させていただきます。

ではでは、そろそろダッシュボードの連載に戻らねばな、と思っているKaoriでしたw


Kaori