インテージテクノスフィア技術ブログ

株式会社インテージテクノスフィアの社員達がシステム開発や仕事に関する技術情報を随時掲載いたします

【Tableau】コレスポンデンス分析をしたい - 環境設定編 -

こんにちは、アイダです。アドベントカレンダーの季節なのでたくさんの記事が公開されていて、読みたいのに追いつけないくらい情報があふれていますね。そんなどさくさにまぎれて、私たちも記事を公開しちゃいます!今回は Japan Tableau User Group(JTUG)の冬の総会で、DX共創センターの K さんとグループビジネス推進ユニットの T さんが紹介した内容の詳細解説をします。はりきってどーぞー。

f:id:intage-tech:20211209173747p:plain

はじめに

過去にもTableau Prepのブログを書いたKです。ひきつづき、アンケートデータを Tableau に載せる日々を送っております。 これまではシンプルに集計・可視化したり、トレンドデータにして時系列変化を捉えられるようにしたりといったことに取り組んでいました。

基本的なことができることがわかってくると、ユーザーはあれもこれもとやりたいことをどんどん投げてきてくれます、ありがたいことに。 そのうちのひとつが、クロス集計結果を散布図にして見やすくする手法「コレスポンデンス分析」です。コレスポンデンス分析自体についてはこちらをご参照ください。

コレスポンデンス分析とは|市場調査ならインテージ

Python や R であればサクッとできるのですが、BIツールでやろうとすると標準機能ではまずできなそう。 集計結果(クロス集計)をインプットとして、確率行列であんなことしたり、固有値をこんなことしたりして、あのプロットのもととなるスコアを算出するわけですから。

ということで、Tableau + TabPy で実現することにしました。 まず、今回は環境設定の部分を扱います。

TabPy とは

ここの説明は GitHub の about.md におまかせしちゃいましょう。

TabPy/about.md at master · tableau/TabPy · GitHub

TabPy framework allows Tableau to remotely execute Python code. Tableau can connect to the TabPy server to execute Python code on the fly and display results in Tableau visualizations. Users can control data and parameters being sent to TabPy by interacting with their Tableau worksheets, dashboard or stories.

なるほど、わかりやすい英語です。

どのレベル感で実現するか

Tableau でコレスポンデンス分析を実現しようとするときに、いきなり TabPy でやろうとするのではなく、 誰がどのように使うのか、立ち止まって考えてみましょう。 TabPy を共有環境として使うということは、実行環境となるサーバーを構築して運用していく、ということです。 もっと簡易的な実現方法で済む場合もあるはずです。

そのひとつが事前計算。 もし分析条件が数パターンなのであれば、コレスポンデンス分析を Python や R で事前実行しておき、 その結果を Tableau にデータソースとして取り込んでプロットすればよいのです。サーバーも TabPy もいりません。

そうではなくて、ユーザー自身でさまざまな分析条件を自由に変更して実行したい、 データもどんどん最新のものが入ってくるといった状況であれば、事前計算は手に負えなくなります。 そうなったら、TabPy での実現を検討しましょう。

システム構成

ささっと調べたところ、Tableau Server 内に TabPy をセットアップするのは推奨されないとのことだったので、TabPy サーバーを独立させて構築しました。 Python 実行環境をインストールして、TabPy をインストールすれば完了です。詳細は GitHub の server-install.md をご参照ください。

TabPy/server-install.md at master · tableau/TabPy · GitHub

Tableau Desktop を使ってワークブックを作成するときは、ローカルPC から TabPy サーバーへ接続をさせます。 ワークブックを作り終えてパブリッシュした後は、Tableau Server から TabPy サーバーへの接続となります。

f:id:intage-tech:20211209173908p:plain

Tableau Desktop からの設定

ヘルプ > 設定とパフォーマンス > 分析の拡張機能接続の管理 と進んで、TabPy を選択します。 TabPy サーバーのホスト名とポートを入力して、テスト接続が成功すれば OK です。

あとはワークブックをつくる中で Python スクリプトを入力していきます。 こちらについては次の記事で取り扱います。 f:id:intage-tech:20211209174037p:plain

f:id:intage-tech:20211209174048p:plain

f:id:intage-tech:20211209174059p:plain

Tableau Server からの設定

Tableau Server での設定も必要です。 設定 > 拡張機能 > 分析拡張機能と進み、"サイトの分析拡張機能を有効にする" にチェックを入れます。

"新しい接続の作成" を押下して、Desktop のときと同様に入力します。 接続に問題がある場合は、ここでエラーが発生します。

この設定をしておけば、TabPy 連携を必要とするワークブックをパブリッシュした時に、ちゃんと実行可能となります。 f:id:intage-tech:20211209174155p:plain f:id:intage-tech:20211209174212p:plain

ワークシート編に続く

ここまでが環境設定編です。 次の記事では、実際にどのようなスクリプトを計算フィールドに設定すればコレスポンデンス分析が実現できるのかを紹介していきます。 そこそこの分量になりそうな予感...