tag:blogger.com,1999:blog-23987165547553344612024-03-21T00:12:34.700+09:00Tableau Padawan's Tips & Tricksby Tableau Japan PresalesShingohttp://www.blogger.com/profile/16554187461943466265noreply@blogger.comBlogger71125tag:blogger.com,1999:blog-2398716554755334461.post-81580736773701578862024-02-09T11:37:00.002+09:002024-02-09T11:46:06.089+09:00Tableau Bridge for Linuxやってみた<div style="text-align: left;">こんにちは、Tableau SEのShintaroです。</div><div style="text-align: left;">今回はTableauの<a href="https://www.tableau.com/ja-jp/products/new-features#item-98056"><span style="color: #2b00fe;"><b>バージョン2023.3</b></span></a>で追加されたTableau BridgeをLinuxで動かす検証手順のようなものを紹介したいと思います。</div><div style="text-align: left;"><br /></div><div style="text-align: left;">前提情報は下記となります。</div><div style="text-align: left;"><ul style="text-align: left;"><li>クラウド→AWS</li><li>OS→CentOS 7 with HVM</li><li>スペック→m5.xlarge (4vCPU, 16GB)</li><li>ストレージ→150GiB</li><li>検証したデータソース→MySQL、PostgreSQL、Redshift</li><li>作業PC→Macでのターミナル</li></ul><div>また、具体的なアーキテクチャーはこのようになっています。</div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhcSv-3RKkT2_VzCDpIbA0X0iJ1QOoq_4OfdKk2hLpvymj5Mlhc3teib4V5Epvyq8c6Vvs2aWZwAJpfGN9k4MdUQ-j9efgBgFeyfp30oHh_2OkAcpRD6R2arjxGEi4q542A_BbqfUbWNDgIH08n079YTDdGtu0eB0mNdyuy2lD9S2d82w0uwcFMy39eiOg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="575" data-original-width="1239" height="297" src="https://blogger.googleusercontent.com/img/a/AVvXsEhcSv-3RKkT2_VzCDpIbA0X0iJ1QOoq_4OfdKk2hLpvymj5Mlhc3teib4V5Epvyq8c6Vvs2aWZwAJpfGN9k4MdUQ-j9efgBgFeyfp30oHh_2OkAcpRD6R2arjxGEi4q542A_BbqfUbWNDgIH08n079YTDdGtu0eB0mNdyuy2lD9S2d82w0uwcFMy39eiOg=w640-h297" width="640" /></a></div>Bastionは踏み台のことで、Tableau DesktopからはVPNを通じて各データソースにアクセスできるよう設定しておきました。</div><div><br /></div><div>今回はあくまでTableau BridgeをLinuxで動かすまでの手順のご紹介となりますので、AWSでの構築については割愛します。</div><div>1点重要な情報としては、Tableau Bridgeは基本的にはアウトバウンド通信しかしないので、Bridge→DB/DWH(アウトバウンド)、およびDB/DWH←Bridge(インバウンド)<br />の許可、およびTableau Cloudへのアクセス、つまりインターネットへのアウトバウンド許可は必須となってきます。</div><div>Tableau CloudのIPアドレスについては、Podごとに異なり、<a href="https://help.tableau.com/current/pro/desktop/ja-jp/publish_tableau_online_ip_authorization.htm"><span style="color: #2b00fe;"><b>こちら</b></span></a>に記載がありますので、ご参照ください。</div><div><br /></div><div>なお、実際の運用では、AWSやLinuxはもちろん、Dockerの知識は必要となり、オーケストレーションしていこうとするとKubernetesの知識もあると良いかもしれません。</div><div>ただし、今回のやってみた!はそこらへんがよくわからない方に向けてもなるべく丁寧に記載していきます。</div><div><br /></div><div>では開始!</div><div><br /></div><div><br /></div><div><b>(0) AWSで各サービスの起動</b></div><div><span id="docs-internal-guid-e99dd26f-7fff-1012-3b45-b620e13d01cb"><img height="318" src="https://lh7-us.googleusercontent.com/SF9mvKWnzd-QtocV31BlKpj8uR9hB9nSf9ApkGmEy0VmrHTN1SKK3u1B7AgrSpTp4A1hmCz6429CnnwVBnT7Dsl0ZR1u0IWcF6bPWk7kDwz-Tp38aRseK5cfSCqXEyhnJeGzqJU71mviEV8YCOqj-eT65g=w640-h318" width="640" /></span></div><div>これは言わずもがななので、はしょりますが、各サーバーや、サーバーを介したDB/DWHへの接続は確認しておきましょう。</div><div><br /></div><div><b>(1) 作業PCからBastion→CentOSへアクセス</b></div><div><br /></div><blockquote><div>ssh -i [キーパス] ec2-user@[パブリックIP] </div></blockquote><blockquote><div>ssh -i [キーパス] centos@[内部IP]</div></blockquote><p>これも言わずもがなでしょうか。もしここから・・・という場合はsshのコマンドの意味をインターネットでご確認ください。 </p><p>アクセスできたら、ユーザーがcentosとなります。</p><p><span id="docs-internal-guid-da261492-7fff-1aac-a466-a12a24fc3a6c"><img height="354" src="https://lh7-us.googleusercontent.com/qRwaUMWgHIr-o44rTmjmZs3zk6d3-x71Ene-07f4FpdL5afzi8wkz-eLQxSARR53as1c-76T97q64ppWx0Q8z_yhiK7MU6ig7B7iSRaSK_lGqyWaNzFY61FSD8AXeSQT4SAw7kucxVfQYPcWpb4WsSmweA=w640-h354" width="640" /></span></p><p><b>(2) Dockerエンジンのインストール</b></p><p>もし、Dockerエンジンがすでにインストールされているイメージを利用してEC2を立ち上げた場合はここはスキップで構いません。</p><p>また、 Dockerがアップデートされたらここはうまくいかなくなる可能性もあるので、ホームページでチェックしたほうが無難となります。</p><p>最初にリポジトリを設定し、</p><p></p><blockquote><p>sudo yum install -y yum-utils </p><p>sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo</p></blockquote><p>Dockerをインストールします。</p><p></p><blockquote>sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</blockquote><p></p><p>バージョンを指定する場合は、 yum list docker-ce --showduplicates | sort -r で確認して、docker-ceとdocker-ce-cliの後にバージョンを付けましょう。</p><p>そして、最後にDockerの開始とhello-worldイメージによるテストです。</p><p></p><blockquote><p>sudo systemctl start docker</p><p>sudo docker run hello-world</p></blockquote><p><span id="docs-internal-guid-c6b59879-7fff-516d-529a-95b4b67340bd"><img height="285" src="https://lh7-us.googleusercontent.com/T9wYrN-xgOimCS918nvEL-HvWPG3zIVT2LaYnZZpHJ8YFpDzZnClAb33y3lw8vvQYeSobIUvtz4CzEzDpv_t1tzAdTd8_z3R4AkS9VR_d5siNb_1mGJVjoUznaCu3Z9aYVSBoFxx3SpQ9DmPrex9He1HHw=w640-h285" width="640" /></span></p><p>これにて完了です。では次にいきましょう。</p><p> <b>(3) Bridgeコンテナイメージの作成</b></p><p>まずは、Tableau Bridgeのrpmパッケージが必要になるので、</p><p></p><blockquote>sudo curl -OL [ダウンロードURL]</blockquote><p></p><p>とかで持ってきましょう。ダウンロードのURLは<a href="https://www.tableau.com/ja-jp/support/releases/bridge"><b><span style="color: #2b00fe;">こちら</span></b></a>で確認できます。</p><p>続いて、作業ディレクトリを作っておき、</p><p></p><blockquote><p>sudo mkdir Docker</p><p>cd Docker/</p></blockquote><p></p><p>rpmファイルを移動させて、</p><p></p><blockquote>sudo mv ./~/[Tableau Bridgeのファイル名].rpm ./</blockquote><p></p><p>命令させるDockerfileを作ります。場所は任意です。</p><blockquote><p>sudo touch Dockerfile</p></blockquote><p>そして、Dockerfileには下記のような命令文をviで書きます。</p><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><span face="'Salesforce Sans',sans-serif" style="background-color: transparent; color: #333333; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"></span></p><blockquote><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i># Centos 7 is the supported base image</i></span></p><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>FROM centos:7</i></span></p><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i># Update Packages</i></span></p><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>RUN yum -y update</i></span></p><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i># Copy the bridge RPM package, install it, then remove it from the image</i></span></p><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><i><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">COPY <</span><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tableau Bridgeファイル名</span><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">>.rpm/ </span><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><コンテナパス</span><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">></span></i></p><p><i><span id="docs-internal-guid-49b65212-7fff-1d9f-815b-1f5fe855ef14"></span></i></p><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><i>RUN ACCEPT_EULA=y yum install -y $(find . -name *.rpm) && rm -rf *.rpm</i></span></p></blockquote><p><コンテナパス>はコンテナ内でrpmファイルを置く場所なので/app/とかが一般的な気がします。</p><p>そしてRUN_ACCEPT_EULA=yはTableau利用規約に沿ったインストールという意味なので必ずつけましょう。</p><p>最後にイメージの構築です。</p><blockquote><p> sudo docker buildx build --platform=linux/amd64 -t bridge_base .</p></blockquote><p>うまくいけばここでいうと、bridge_baseというイメージが作成されます。</p><p><span id="docs-internal-guid-acddf1dc-7fff-b62f-94bb-a4b23f469321"><img height="196" src="https://lh7-us.googleusercontent.com/S1gfXGruEsk20XZfQ0dJ1Sk07nJywNntzSucNyXzqfe-LazF1Hx5hO48CmTsOD6APyw71kjS3LBbnm4G5ignRB7X8ZkDBk0mhKtomTiIU3saQcurR5ketXjTDo-3DB-mwpz3mU2gnhG8NZnxVSpPIa0X2w=w640-h196" width="640" /></span></p><p>ここで2つのオプションを紹介します。</p><p>・構成設定ファイル</p><p>Tableau Bridgeの構成設定に関しては、TabBridgeClientConfiguration.txtファイルで管理しており、編集してコンテナをアップデートさせるよう設定する必要があります。</p><p>詳しくは割愛しますが、<a href="https://help.tableau.com/current/online/ja-jp/to_bridge_site_settings_linux.htm"><b><span style="color: #2b00fe;">こちら</span></b></a>に情報がまとまっています。</p><p>・ドライバー</p><p>Tableau BridgeではWindows版でもそうでしたが、MySQLやRedshiftへのアクセスにドライバーのインストールが必要になります。</p><p>ですので、例えば、ドライバーインストール用に別のDockerfileを用意して、ドライバーをインストールする命令文を記載し、</p><p></p><blockquote><p>sudo touch Dockerfile_driver</p><p>sudo vi Dockerfile_driver</p></blockquote><p></p><p>ここには↓書く(MySQLの場合)</p><p dir="ltr" style="line-height: 1.38; margin-bottom: 15pt; margin-top: 15pt;"><span face="'Salesforce Sans',sans-serif" style="background-color: transparent; color: #333333; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"></span></p><blockquote><p dir="ltr" style="line-height: 1.38; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"><i># Using previously built bridge_base image</i></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"><i>FROM bridge_base</i></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"><i>COPY [ドライバーファイル名].rpm ./</i></span></p><p><i><span id="docs-internal-guid-4cac836d-7fff-2940-d754-89b564338085"></span></i></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 15pt; margin-top: 15pt;"><span face=""Salesforce Sans", sans-serif" style="background-color: transparent; color: #333333; font-variant: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"><i>RUN yum install -y [ドライバーファイル名].rpm</i></span></p></blockquote><p dir="ltr" style="line-height: 1.38; margin-bottom: 15pt; margin-top: 15pt;"><span face="'Salesforce Sans',sans-serif" style="background-color: transparent; color: #333333; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"></span></p><p>最後に先ほど作ったbridge_baseのイメージの上位レイヤーとしてイメージを作成すれば自動化できます。</p><blockquote><p>sudo docker build -t bridge_final -f Dockerfile_driver .</p></blockquote><p>これは結構マストの可能性高いですね。</p><p><b>(4) Tableau CloudのPAT作成</b></p><p>今回Tableau BridgeからTableau Cloudへ繋ぐ場合、PAT(パーソナルアクセストークン)が必要になりますので、あらかじめ作っておきましょう。</p><p>Tableau Cloudにログインをして、右上のユーザーアイコンから[マイアカウント設定]より、個人用アクセストークンを作成可能です。</p><p>トークン名とシークレットが必要になるので保管しましょう。</p><p><span id="docs-internal-guid-24009970-7fff-44f1-e9f8-d8c2c4f9581a"><img height="329" src="https://lh7-us.googleusercontent.com/y8Iy2Y8BhV9gFe2Y2bm6RjtpQPmNx1I8L1GUmlmnZRvZPvvsgDHBd-AI3jdd_-uv62Q7iJ0aFY8C9tr0uUdIQp6_iAdbd3oJgKxgs1LYVL4TFWF2JvCgEywe7Y0Tqw_jomRq7kvyfk_rXlboD8_19j8UgA=w640-h329" width="640" /></span></p><p><b>(5) Bridgeワーカー起動</b></p><p>これで最後です。</p><p>ただ、まずはロケールの設定ですね。特にMySQLではこれやってないとエラーになる事象は確認が取れています。</p><p>Docker側で設定を毎回するか、CentOS上で設定していまうかどちらかとなりますが、後者だと、</p><p><span id="docs-internal-guid-511fdf92-7fff-cac7-f992-8873a08b4963"><span face=""Salesforce Sans", sans-serif" style="color: #333333; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><i></i></span></span></p><blockquote><i><span face=""Salesforce Sans", sans-serif" style="color: #333333; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">export LANG="en_US.utf8"</span><span face=""Salesforce Sans", sans-serif" style="color: #333333; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /></span><span face=""Salesforce Sans", sans-serif" style="color: #333333; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">export LANGUAGE="en_US.utf8"</span><span face=""Salesforce Sans", sans-serif" style="color: #333333; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /></span><span face=""Salesforce Sans", sans-serif" style="color: #333333; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">export LC_ALL="en_US.utf8"</span></i></blockquote><span face=""Salesforce Sans", sans-serif" style="color: #333333; font-size: 12pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"></span><p></p><p>を/etc/profileに追記する流れとなります。</p><p>続いて、Bridgeコンテナと対話型で繋がっていきましょう。</p><p>sudo docker container run -it bridge_final /bin/bas</p><p>でコンテナが開始され、rootでアクセスできます。</p><p>そして、先ほど作成したPAT情報をtxtファイルにJSON形式で書込み保存します。</p><p></p><blockquote>cd /home/ touch MyTokenFile.txt</blockquote><p></p><blockquote><p>vi MyTokenFile.txt</p></blockquote><p>ここでは、</p><p>{"トークン名": "シークレット"}</p><p>のような形で書き込みます。</p><p>そしてそして、セキュリティ強化のためのchmodです。</p><blockquote><p>chmod 600 MyTokenFile.txt</p></blockquote><p>では最後にワーカー起動です。</p><p></p><blockquote>/opt/tableau/tableau_bridge/bin/TabBridgeClientWorker -e --patTokenId="[トークン名]" --userEmail="[ログインID]" --client="myBridgeAgent" --site=”[サイト名]" --patTokenFile="/home/MyTokenFile.txt"</blockquote><p></p><p>TabBridgeClientWorkerのヘルプを見るのがいいですが、引数にTableau Cloudへの接続情報を入れないといけないので、間違いがないようコマンドを用意します。</p><p>無事に成功すると下記のようにService Startedとなり、終了です。</p><p><span id="docs-internal-guid-6c307da6-7fff-768f-3205-215753f72160"><img height="60" src="https://lh7-us.googleusercontent.com/Q8QlQxJohQnIazm2w5xSQqqYLJJp4IUQ1JgxtS1M9Ie1uZbn-NAgb_-xmvwzLmX5nSQGlhy1jOEqIbbVaaPVDkpG4r36tiGVLbBW-RombtZptHkInVCkX8bu7olgArtrZX6zBqzuIZ3bUtoUZEB3needgg=w640-h60" width="640" /></span></p><p>念のためTableau Cloudで左メニューの[設定]からBridgeタブに遷移すると、先ほど--clientにて設定したBridge名がコンピューター名として接続済みとなっていることが確認されました。</p><p><span id="docs-internal-guid-47d768ca-7fff-46a8-7efc-d3202cca61c3"><img height="489" src="https://lh7-us.googleusercontent.com/We2P01s3Uy6687iaDIpvnqT4bCi534Yu9Mab9a9lLAXjLJ0DvKthNs85y-so3XS1xCcLI2eNUcdu9Q5aJ0rCfX3I-_eK1tWVPmiv2-av7w1iBNMd9SEHKcz1MA_Z_YhqMsFIpmVXftms9rihsVHiSHo5GQ=w640-h489" width="640" /></span></p><p>このページでは必要に応じて、プライベートネットワークの許可リスト(ドメイン/IP)とプールを構成して、Bridgeを割り当ててください。</p><p>また、MySQLなどDB/DWHで実際Tableau Cloudで接続確認すると、無事抽出が確認できました。</p><p><span id="docs-internal-guid-303581ab-7fff-2d6c-86db-015113984b96"><img height="488" src="https://lh7-us.googleusercontent.com/1ejm51Ee5E0UOOyQQugYoH9suzwrCxDauqWBKfwZX5g5S3jzonKc8UeEA5499BTHWis6p-ENrS0AcPbWxbqVzez38Vn5Mvx6tB6kMEKxh2VwSesCiak0XQP1mPd4PFCa2HNOoW7NsPV7oaQnrMV3a1QZxw=w640-h488" width="640" /></span></p><p><span>万が一できない場合は、</span>プールの設定、もしくはネットワーク設定などを再度確認しましょう。</p><p><br /></p><p>いかがでしたでしょうか。</p><p>私の個人的な感覚ですが、Linux慣れていたら、Windowsよりはるかに楽だと思います。また、Kubernetesで複数コンテナをオーケストレーションさせるよう構成を組んであげれば、コストパフォーマンスが著しく向上すると思います!</p><p>今後Kubernetesも挑戦していこうかと思いますので、その際は記事を投稿しようかな。</p><p>読んで頂きありがとうございました。</p><p>なお、Salesforceの公式とまではいきませんが、手順をまとめた資料がありますので、<a href="https://tableau.egnyte.com/dl/8hPrMn5Lnc"><b><span style="color: #2b00fe;">こちら</span></b></a>もぜひご参照・ご活用くださいませ!</p><p>また、<a href="https://help.tableau.com/current/online/ja-jp/to_bridge_linux_install.htm"><b><span style="color: #2b00fe;">Tableauのヘルプページ</span></b></a>も参考になるかと思います。</p><p><br /></p><p dir="ltr" style="line-height: 0.84; margin-bottom: 15pt; margin-top: 15pt;"><span face="'Salesforce Sans',sans-serif" style="background-color: transparent; color: #333333; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"></span></p><p></p><p></p></div>Shintarohttp://www.blogger.com/profile/03295929043721793677noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-1904311161774700692023-06-26T10:56:00.013+09:002023-12-08T21:14:19.035+09:00管理ビュー for User Engagement<p><span style="font-family: times;">SalesforceでTableauのSEを担当しているShintaroです。</span></p><p><span style="font-family: times;">はじめての投稿となります。</span></p><p><span style="font-family: times;">今回はTableau Serverの管理ビューのご紹介となります。</span></p><p><span style="font-family: times;">いきなりですが、Tableau Serverの管理者の方、管理ビューはどのくらい使っていますか?</span></p><p><span style="font-family: times;">管理ビューはTableau Server内のサイトやプロジェクトにおいて、様々な種類のアクティビティをモニタリングできます。</span></p><p><span style="font-family: times;">https://help.tableau.com/current/server/ja-jp/adminview.htm</span></p><p><span style="font-family: times;"><br /></span></p><p><span style="font-family: times;">管理ビューにはプレビルト管理ビューとカスタム管理ビューがあり、プレビルト管理ビューはあらかじめ様々な単位のダッシュボードが用意されており、手軽に各単位のKPIをチェックすることができます。</span></p><p><span style="font-family: times;">例えば、ビューのパフォーマンスやユーザーのアクション、ロード時間や使用量の統計値などです。</span></p><p><span style="font-family: times;">https://help.tableau.com/current/server/ja-jp/adminview_bucket.htm</span></p><p><span style="font-family: times;"><br /></span></p><p><span style="font-family: times;">一方、カスタム管理ビューは、リポジトリ(あらゆるユーザーインタラクション、抽出の更新などに関するデータを格納している内部のPostgreSQL)にアクセスして、御客様自身で管理ビューを作ることができる機能となっています。</span></p><p><span style="font-family: times;">今回は後者のカスタム管理ビューについて取り上げますが、やっぱり御客様自身で・・・とはいってもリポジトリはデータ構造がやや複雑で、よくお問合せをいただきます。</span></p><p><span style="font-family: times;">リポジトリに接続して、データを見ていくのは少しハードルが高く、慣れが必要ですよね。</span></p><p><span style="font-family: times;">Tableauのコミュニティでは、様々な観点での管理ビューのテンプレートに関してインターネット上に転がっていますが、今回はユーザーエンゲージメントという観点で弊社のSEメンバーで作ったテンプレートをご紹介します。</span></p><p><span style="font-family: times;"><br /></span></p><p><span style="font-family: times;">まずTableauを通じたデータドリブン文化の醸成の道のりには、Tableauをどう社内で定着化させるか、という課題があり、Tableau Serverの使用状況を的確に把握する必要があります。</span></p><p><span style="font-family: times;">そんな中で既定のプレビルト管理ビューでは、各ユーザーのアクションは特定できるものの、どのワークブックがどのくらい見られているか、あるいはどのユーザーが積極的に活用、あるいは逆に課題感を感じ、あまり活用をしていないかを探るには使い勝手が悪いです。</span></p><p><span style="font-family: times;">今回は、そういった課題に対し、「Tableauが定着し、安定飛行ができるまで」の点で、「対象となるロール・ユーザ・部門の利用が目標に達しているか・達していない場合、利活用の濃淡により対策を打つためのドリルダウン」を意思決定としたテンプレートとなるワークブックをご用意しました。</span></p><p><span style="font-family: times;">管理ビューテンプレートの利用方法(PDF)は<a href="https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000002E7iG/Ox0EkSSBOcL1kaV40WTLhSmJ_b0O54SMJTfEM96AkXA"><b><span style="color: #2b00fe;">コチラ</span></b></a></span></p><p><span style="font-family: times;">テンプレートのダウンロードは<a href="https://org62.my.salesforce.com/sfc/p/000000000062/a/3y000000iaAK/DZ5P9Rr_vkPOat385JmZ23gfgMH2dNQEfomhmdvBhPA"><b><span style="color: #2b00fe;">コチラ</span></b></a></span></p><p><span style="font-family: times;">(組織テーブルを導入したテンプレートは<a href="https://org62.my.salesforce.com/sfc/p/000000000062/a/3y000000iaAF/KD7P.EnF4JaZE9gEVRbUboa_veX6aV2NjLsyXMwsbeo"><b><span style="color: #2b00fe;">コチラ</span></b></a>)</span></p><p><span style="font-family: times;"><br /></span></p><p><span style="font-family: times;">ワークブックは3つのダッシュボードで構成されています。</span></p><p><span style="font-family: times;"><b>① ユーザーエンゲージメントの指標分析</b></span></p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjNFcBEANXc3Hvlpl34pQ4nEi2-ro1JLyTbQhN7ynPP0rM3aSF4EgTRCqE7K5hZpVlDoZoLVNI1vujRRxsyxo9jDI8NmEp6D8A5EbNwD505AaTt8nIe0nSR7NQSy14R11kXfmjbRcnx8xNirrjCjVF-Me0BTqYF0YnPOvat7kXX1uRTWoub9bB0g4wKxr8" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="872" data-original-width="1376" height="229" src="https://blogger.googleusercontent.com/img/a/AVvXsEjNFcBEANXc3Hvlpl34pQ4nEi2-ro1JLyTbQhN7ynPP0rM3aSF4EgTRCqE7K5hZpVlDoZoLVNI1vujRRxsyxo9jDI8NmEp6D8A5EbNwD505AaTt8nIe0nSR7NQSy14R11kXfmjbRcnx8xNirrjCjVF-Me0BTqYF0YnPOvat7kXX1uRTWoub9bB0g4wKxr8=w360-h229" width="360" /></a></div></div></div><p>こちらはいわゆるまとめのようなダッシュボードになっており、</p><p>・全体としてどのくらいのユーザーがいるか</p><p>・それぞれのロールでのワークブックへのアクセス率はどうか</p><p>・アクセス率の推移は計画どおりか</p>のような情報を知るために活用するよう設計されており、ロール別のアクセス率や推移を確認可能です。<p></p><p><b>② ワークブックの閲覧数分析</b></p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgMbH-plyI7UUG2xO2OnWFuUUZ9uPllLpNXtBjr1ZEZ-BsmNu8EsI-jjxCTifPhVPDBY6oVp-RLJVFLGt3nXkqpvqMMgXA075_SQS1VCHUVhIYqmAS3rBgXwgI4J9SWx5rfAN0ZawifJmchmn1Ry5YXxbkmeXchLwZ_D-9mCmTaXR0Icx8J3QSsB0gDHZg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="872" data-original-width="1376" height="223" src="https://blogger.googleusercontent.com/img/a/AVvXsEgMbH-plyI7UUG2xO2OnWFuUUZ9uPllLpNXtBjr1ZEZ-BsmNu8EsI-jjxCTifPhVPDBY6oVp-RLJVFLGt3nXkqpvqMMgXA075_SQS1VCHUVhIYqmAS3rBgXwgI4J9SWx5rfAN0ZawifJmchmn1Ry5YXxbkmeXchLwZ_D-9mCmTaXR0Icx8J3QSsB0gDHZg=w352-h223" width="352" /></a></div></div></div><p>こちらはワークブック単位で着目したダッシュボードとなっており、閲覧数とユニークユーザー数をワークブック単位で追える内容になっています。</p><p>主に、</p><p>・ユーザーはワークブックにアクセスしているか</p><p>・よくアクセスされている、またはアクセスされないワークブックはどれか</p>などを把握でき、例えば公開してから閲覧数が伸び悩んでいるワークブックを特定し、改善を促す等の措置を施すことに使えます。<p></p><p><b>③ ワークブック所有者の貢献度分析</b></p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEif49zTef57urc4jmwgvhYsajUTPCGkR58_GZwU7oF3VyiRzTYW1y91CDfLcUoq40jZpz7SWqtZ5s0m7Y_Y2GYCARf7O211auMmok1Qv4QM6EOMq3khi1bSh-ySZTkfQQRvJNA6bQrC-ODwQ8AZlLC0WTVXXjs0BWMSEjNZYP2KmmZfbonLjWru6NY1wAs" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="860" data-original-width="1031" height="290" src="https://blogger.googleusercontent.com/img/a/AVvXsEif49zTef57urc4jmwgvhYsajUTPCGkR58_GZwU7oF3VyiRzTYW1y91CDfLcUoq40jZpz7SWqtZ5s0m7Y_Y2GYCARf7O211auMmok1Qv4QM6EOMq3khi1bSh-ySZTkfQQRvJNA6bQrC-ODwQ8AZlLC0WTVXXjs0BWMSEjNZYP2KmmZfbonLjWru6NY1wAs=w348-h290" width="348" /></a></div></div><p>こちらは非常にユニークです。ワークブック所有者という軸とアクセス数という軸でパブリッシャーを4象限に分割しています。</p><p>・Creator/Explorerライセンスの中でも良く利用しているユーザー、または期待通りの利用に至っていないユーザーの把握(セグメントで定義)</p><p>・各セグメント別のユーザーに対して、より利用率を上げてもらう為に、どのようにアクションするべきか</p><p>などの利用シーンが想定され、Tableauチャンピオン候補、トレーニング育成候補、適切なKPIの設定を支援する候補のパブリッシャーを特定できるので、ユーザーエンゲージメント向上に大いに期待できる可能性があります。</p><p>また、あらかじめ下記のような組織テーブル(<a href="https://org62.my.salesforce.com/sfc/p/000000000062/a/3y000002FJPI/2EKoLXY_OurtVci9CePnKY1KkYF.5gaglve.UdvHoGY"><b><span style="color: #2b00fe;">サンプル</span></b></a>)を用意し、データを追加することで例えば部門別の使用状況把握や改善施策のアクションなどができるようになります。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZqxvGLYN41h_srkosOlg9UJ740CtvyHDqPsve1gyFXHPw9gk_VE0_jOpiJNqhXA0JD6VqgRL8SojYqiD6z3DlX-1ER-4lgy4ely0aTX0EhwEAcK0bVjb522HKb2FKNcR5ftpAfyeIIRbiNdXHGF64rwjIxPpngSbK9mtG8NrH7y_mxyUILXVOva6wqf8/s838/blog4.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="838" data-original-width="552" height="395" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZqxvGLYN41h_srkosOlg9UJ740CtvyHDqPsve1gyFXHPw9gk_VE0_jOpiJNqhXA0JD6VqgRL8SojYqiD6z3DlX-1ER-4lgy4ely0aTX0EhwEAcK0bVjb522HKb2FKNcR5ftpAfyeIIRbiNdXHGF64rwjIxPpngSbK9mtG8NrH7y_mxyUILXVOva6wqf8/w262-h395/blog4.png" width="262" /></a></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>いかがでしたでしょうか。</div><div>なお今回のものはあくまでテンプレートで、そのままご活用いただくのも結構ですし、こちらのテンプレートをもとに、カスタマイズをして管理ビューを使いこなしていただけると幸いです。<br /><p><br /></p><p><br /></p></div>Shintarohttp://www.blogger.com/profile/03295929043721793677noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-7267607981274543612021-03-16T15:41:00.006+09:002021-03-17T12:58:05.739+09:00Tableau Metadata APIを使ってみよう!<p> </p><div class="separator" style="clear: both; text-align: center;"><br /></div>Tableau Server/Onlineには各種API機能がありますが、今日はあまり目立たない存在のMetadata APIについて取り上げたいと思います。なかなか便利なAPIですのでTableau Server管理者やコンテンツ管理者の方はぜひご一読ください。<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNz7caDgvdJh-6lMl5K1z0pLNh2OS3b5mCPjyvf5qkBwFSIyt9wI6FXIeSPbLZWp_obUd_y0kLt9xc4DZ5jrivh2feJ9C3o0TXxi-7utqLHgUCHPtlF28xxjP7PAxJUPrQEXBkbkaJYeo/s425/01Graphql.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="203" data-original-width="425" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNz7caDgvdJh-6lMl5K1z0pLNh2OS3b5mCPjyvf5qkBwFSIyt9wI6FXIeSPbLZWp_obUd_y0kLt9xc4DZ5jrivh2feJ9C3o0TXxi-7utqLHgUCHPtlF28xxjP7PAxJUPrQEXBkbkaJYeo/s16000/01Graphql.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Tableau Metadata APIとは、<a href="https://help.tableau.com/current/blueprint/ja-jp/bp_extensibility.htm" target="_blank"><span style="color: #2b00fe;">こちらのヘルプ</span></a>に概要が書かれていますが、ワークブックやデータソースのつながりを、APIを通じて取得できるものです。データカタログの機能を持つData Management Add-onと同じタイミングでリリースされましたが、実は<a href="https://help.tableau.com/current/api/metadata_api/en-us/docs/meta_api_start.html" target="_blank"><span style="color: #2b00fe;">Add-onライセンスがなくてもこのAPIは使えます</span></a>。</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">利用するにはサーバでの準備が必要です(Tableau Onlineは常にONなので準備不要)。まずバージョンが2019.3以上のサーバを利用していること、そしてサーバでmetadata-servicesがアクティベートされていることです。アクティベートしていないと、API呼び出し時にこんなエラーがでます。</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3KlX9B4HhlmCM1dcoYnEgHgclTZTZW-cdCErCrsRrfyxrab1g7jEDzCFdNz0w01-rs5mKR5_CGfkiSijfiDg79sdPY67ZaM5nhzRw2Iv_XEaomUJTqBSx0eeOiedVLr2XO118UCEyXcs/s850/02Disabled.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="190" data-original-width="850" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3KlX9B4HhlmCM1dcoYnEgHgclTZTZW-cdCErCrsRrfyxrab1g7jEDzCFdNz0w01-rs5mKR5_CGfkiSijfiDg79sdPY67ZaM5nhzRw2Iv_XEaomUJTqBSx0eeOiedVLr2XO118UCEyXcs/s16000/02Disabled.png" /></a></div><br /><div class="separator" style="clear: both;"><br /></div><div><div>管理者ユーザでサーバにログインし、以下のコマンドを打って機能をアクティベートしましょう。</div><div><i>tsm maintenance metadata-services enable</i></div><div><br /></div><div>しばらくするとメタデータAPIサービスが起動されます。</div></div><div><br /></div></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiImGX4E2mx2WLr9NUkdM-tCVhblWbCEyymoW4C8blP_pBw90LVrZ3QBPpiU2fKlncMS2JNQXkIQyxdWLNCWErKOqvNIdNNGVRrTB5S_cKrt14IEygjVRCVZQC_mSMwnwc62fn9FUrNcbE/s850/03Enabling.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="850" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiImGX4E2mx2WLr9NUkdM-tCVhblWbCEyymoW4C8blP_pBw90LVrZ3QBPpiU2fKlncMS2JNQXkIQyxdWLNCWErKOqvNIdNNGVRrTB5S_cKrt14IEygjVRCVZQC_mSMwnwc62fn9FUrNcbE/s16000/03Enabling.png" /></a></div><div><br /></div><div>GUIでAPIが有効になったかを確認しましょう。Metadata APIはGraphiQLという技術を使っており、UIも搭載しています。Tableau ServerのURLの後半を変更してUIを呼び出します(リンク等がないので手動でURL欄に打ち込んでください)</div><div><br /></div><div><i>http://(またはhttps://)サーバ名/metadata/graphiql/</i></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOfRxPPoUTnrZSN0bLxL-g_ogkAkWmNeAkGP_d7ING2TWQqRSB3Zd0k9xtrXTfqYm1pAVkjkBly3Ep7lU51RY2jycqlMM-ghJWKms3ra5XC0AzDefmYN4rdh4e4do6tMJJODrkLHs8gFU/s850/04URL.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="108" data-original-width="850" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOfRxPPoUTnrZSN0bLxL-g_ogkAkWmNeAkGP_d7ING2TWQqRSB3Zd0k9xtrXTfqYm1pAVkjkBly3Ep7lU51RY2jycqlMM-ghJWKms3ra5XC0AzDefmYN4rdh4e4do6tMJJODrkLHs8gFU/s16000/04URL.png" /></a></div><br /><div><div>表示された画面でGraphQLクエリを記述することにより、メタデータ検索が行なえます。</div><div>左側のペインに試しに以下を打って再生ボタンを押してみましょう。最初に表示されているコメントは全部消してしまってOKです。</div></div><div><div><br /></div><div>query{</div><div> workbooks{</div><div> name</div><div> }</div><div>}</div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYIO81lyGom8CLDAxjoSYlDBjAIykK48PoYZCcOdhpKXkba4AeAA2UXGWzztBp0IntHSEaovYrUOoklgXaOZfAvg0iyx7w1akPPXa2_0M9mCSOrE09oV06WHygs41UU8kHMxwVTJAl8J4/s850/05simplequery.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="280" data-original-width="850" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYIO81lyGom8CLDAxjoSYlDBjAIykK48PoYZCcOdhpKXkba4AeAA2UXGWzztBp0IntHSEaovYrUOoklgXaOZfAvg0iyx7w1akPPXa2_0M9mCSOrE09oV06WHygs41UU8kHMxwVTJAl8J4/w640-h211/05simplequery.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div>右側にサーバ上のワークブック名がずらっと出てくるはずです(このサーバでは2つしかブックがないため2つだけ表示)</div><div><br /></div><div>このGUIを使って自分が欲しい情報を、GraphQLクエリを使って取ってくることができます。補完機能が充実しているので手打ちで色々試すと面白いですよ。GraphQLはオブジェクト間のつながりをもとにデータを芋づる式に取ってきますので、例えばサーバにパブリッシュされたワークブックの全カラムを取ってきて、そのカラムに紐付いているワークブックをとってきて、等をクエリとして書いていきます。参照可能なオブジェクトを補完機能が教えてくれます。例えば「workb」と打つだけで、ワークブックを取るための候補が出てきます。名前が取りたければ中括弧のあとにnameと入れれば出力されます。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffm_YUjeccH-uA_ES73yQsEpmm_zWz54K7A9zY4VzKv-NDsXN7Ii7OxOGlfzn75INgWLdZommX9cC7bFWbEIy1Y02I3Ms9316ZukKMlgzNK5Zgzysl-5xWg6f_BU4MCW60jQXarkZ6ig/s393/06hokan.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="183" data-original-width="393" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffm_YUjeccH-uA_ES73yQsEpmm_zWz54K7A9zY4VzKv-NDsXN7Ii7OxOGlfzn75INgWLdZommX9cC7bFWbEIy1Y02I3Ms9316ZukKMlgzNK5Zgzysl-5xWg6f_BU4MCW60jQXarkZ6ig/w640-h298/06hokan.png" width="640" /></a></div><br /><div>試しに以下を貼り付けて実行してみてください。そのサーバにある「ワークブックの名前とオーナー」から「そのワークブックが参照しているデータソース」と「そのワークブックが参照しているデータベース」の名前を出し、さらに「データベースのテーブルの名前」も出します。</div><div><br /></div><div><div><i>query{</i></div><div><i> workbooks {</i></div><div><i> id</i></div><div><i> name</i></div><div><i> owner {</i></div><div><i> id</i></div><div><i> name</i></div><div><i> }</i></div><div><i> upstreamDatasources {</i></div><div><i> id</i></div><div><i> name</i></div><div><i> }</i></div><div><i> upstreamDatabases {</i></div><div><i> id</i></div><div><i> name</i></div><div><i> connectionType</i></div><div><i> tables {</i></div><div><i> name</i></div><div><i> columns {</i></div><div><i> name</i></div><div><i> remoteType</i></div><div><i> }</i></div><div><i> }</i></div><div><i> }</i></div><div><i> }</i></div><div><i>}</i></div></div><div><br /></div><div><br /></div><div><div>管理者が調べたいタイミングでGUIを使って調べるのでも十分有用だと思いますが、APIを使う方はこういう作業も自動化したいと思うはずです。その場合はAPIを直接叩きましょう。動作をわかりやすくするためにCURLで叩いていきます。</div><div>まずはREST APIと同じようにサーバにログインしてトークンをもらいます。RESTのでのトークンももらい方は<a href="https://www.slideshare.net/vt5001/tableau-developers-club-season2-tableauapi-tableau-server-rest-api-workshop" target="_blank"><span style="color: #2b00fe;">こちら</span></a>を参照してください。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgykeBOBj_iUU9Z3pVuar_8DexoXtAvKNgp13C6MJXPVzBaXwRQUX3Piu4zPUHS8WqL7m-g7CR7C_dpnEE7BccN1Z24290tYf6g75636CmRr8Zr5lk6ts3ZLizocVPBDZxFRfb6QQHTOk8/s850/07token.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="206" data-original-width="850" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgykeBOBj_iUU9Z3pVuar_8DexoXtAvKNgp13C6MJXPVzBaXwRQUX3Piu4zPUHS8WqL7m-g7CR7C_dpnEE7BccN1Z24290tYf6g75636CmRr8Zr5lk6ts3ZLizocVPBDZxFRfb6QQHTOk8/w640-h156/07token.png" width="640" /></a></div><br /><div><br /></div></div><div><div>そのトークンを使ってPOSTでAPIにクエリを投げます。このとき注意が必要なのはクエリの最初に「{“query”:」をつける必要があることです。ヘルプにもあまり記載がないのですが、本家GraphQLの方に注意が書いてあったりします。curlで投げるときは必要に応じてダブルクォーテーション等をエスケープしましょう。先程GUIで使ったクエリの先頭に「{“query”:」をつけて、ボディで渡します。</div><div><br /></div><div><i>curl "http://<サーバ名>/api/metadata/graphql" -X POST -H "X-Tableau-Auth: <トークン>" -d "{ \"query\": \"query { workbooks { name }}\"}"</i></div></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuKMGjdIBomkr0DwNUpNcNdWNR7X4lQf1xiINenZY-CsnwvB1JXFIZOExvi5VXCQs54ke-e1f0ykcMzullJxyWK75mc_XolXX7Z3ic7OdK_Morpe431eeve1KyZqqLXryVVYwun4SksBQ/s850/08APIQuery.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="108" data-original-width="850" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuKMGjdIBomkr0DwNUpNcNdWNR7X4lQf1xiINenZY-CsnwvB1JXFIZOExvi5VXCQs54ke-e1f0ykcMzullJxyWK75mc_XolXX7Z3ic7OdK_Morpe431eeve1KyZqqLXryVVYwun4SksBQ/w640-h82/08APIQuery.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div>戻り値もJSONです。「{“data”:}より後に検索結果が返ってきています。GUIと同様、2件返ってきました。</div><div><br /></div><div>長いクエリならファイルに保存して呼び出すこともできます。別ファイルにする際にはエスケープは必要ありませんが、先頭に「{“query”:」と入れる必要があることは変わりません。上で使った長めのクエリをquery.jsonとして保存しました。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJaswEuM07D6mylM71DoibmGCxI5UCJuffm5-2V-FEcADfq90i5VbDpUD10nnOp4tNZxAKZUf6_FzwOqB2lUd0eq0YTS2jT5KSNIe-z6FUIELteUjII2AE8koNc8sC1T73mRxcTxhdUi0/s850/09querysave.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="358" data-original-width="850" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJaswEuM07D6mylM71DoibmGCxI5UCJuffm5-2V-FEcADfq90i5VbDpUD10nnOp4tNZxAKZUf6_FzwOqB2lUd0eq0YTS2jT5KSNIe-z6FUIELteUjII2AE8koNc8sC1T73mRxcTxhdUi0/w640-h270/09querysave.png" width="640" /></a></div><br /><div><div>そのファイルを使ってクエリを実行してみます。さらに、結果をリダイレクトしてファイルに保存してみましょう。</div><div><i>curl "http://<サーバ名>/api/metadata/graphql" -X POST -H "X-Tableau-Auth: _<トークン>" -d @query.json>kekka.json</i></div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaVN7EUaVI8iG0PIEy-otHRQ2LzSYZuU5kT0vRf_O1vCKu8SHR5HGsWs3d4mg634t6l9zOikrYROxT210W_x6JV0sTGbEOZ5oCbcXLctHbi1qqUhAiLv1JVzLulNcajneH2JLf-eLv-cs/s850/10queryredirect.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="154" data-original-width="850" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaVN7EUaVI8iG0PIEy-otHRQ2LzSYZuU5kT0vRf_O1vCKu8SHR5HGsWs3d4mg634t6l9zOikrYROxT210W_x6JV0sTGbEOZ5oCbcXLctHbi1qqUhAiLv1JVzLulNcajneH2JLf-eLv-cs/w640-h116/10queryredirect.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div>保存したJSONファイルをTableau Desktopで可視化してみます。</div><div>こんな形で可視化ができました。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj98-9XT66fE1kDWY_AP99LSrSzovkjBAp6zbK7xrPEdJpLrv9XYzpUV-rQu3kvyHj1C-v1ITNUCA0y9kiWBZA0g-TPhocsG_XkT2n8wBK5iQeBeAxo86-TkO2CcKcbVcLJkb-b3V7i604/s850/11visualize.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="822" data-original-width="850" height="618" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj98-9XT66fE1kDWY_AP99LSrSzovkjBAp6zbK7xrPEdJpLrv9XYzpUV-rQu3kvyHj1C-v1ITNUCA0y9kiWBZA0g-TPhocsG_XkT2n8wBK5iQeBeAxo86-TkO2CcKcbVcLJkb-b3V7i604/w640-h618/11visualize.png" width="640" /></a></div><br /><div>可視化はおまけでやってみましたが、データソースを管理する方であれば「このテーブルを使っているワークブックを全部知りたい」等の要望が多くあると思います。Metadata APIを使えば効率的に調査や管理ができるはずです。ぜひご活用ください!</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div>Shingohttp://www.blogger.com/profile/16554187461943466265noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-38518266910105013942020-03-08T18:32:00.001+09:002020-03-08T18:32:13.451+09:00Tableau Prepで半角カナを全角カナに変換(Pythonを利用)Tableau Prep Builderはデータクリーニングのために様々なクリーニング作業ができますが、「半角カナから全角カナに変換」というメニューは有りません(2020年2月現在)。今回のブログでは、<a href="http://tableaujpn.blogspot.com/2020/03/tableaupythontabpydocker.html">前回作ったPython環境</a>を使って、半角全角変換処理を実施したいと思います。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkUzHNKfSetXdi_La5w0ppDrEvXO_YksCNO8MD58ZqNTjWr66GLYG5luEMUB9130AMsrTounafenD9EDzFWMIV06JGRLGQTxLlE3xzK4RVVEyUsa3HCllUxHieu0u_qahm_JOpSelx_Cw/s1600/1+henkan.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="327" data-original-width="1092" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkUzHNKfSetXdi_La5w0ppDrEvXO_YksCNO8MD58ZqNTjWr66GLYG5luEMUB9130AMsrTounafenD9EDzFWMIV06JGRLGQTxLlE3xzK4RVVEyUsa3HCllUxHieu0u_qahm_JOpSelx_Cw/s1600/1+henkan.PNG" /></a></div>
<br />
<br />
なお、今はまだTableau Prep Builderだけでは半角全角変換はできませんが、<a href="https://community.tableau.com/ideas/9497" target="_blank">こちらの投票サイト</a>より機能リクエストができるので、是非標準機能として搭載されるよう皆さん投票をお願いします。<br />
<br />
では手順をご紹介します。<br />
<br />
Tableau Prepを起動し、半角カナが含まれているファイルやデータベースを入力として定義します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6edmOo9489gklLeI5KEcYIrF7PEwRBzGLe7d78jKxtruPaPhWIevqulz9uBfPd_UB2tHq8qFbOJSfmcisPkQxPcplP4slSE1I96s77JT2KyF-MBcpcHwjjAtXC91X2YtSAaDWbt4l8sw/s1600/2+data.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="418" data-original-width="345" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6edmOo9489gklLeI5KEcYIrF7PEwRBzGLe7d78jKxtruPaPhWIevqulz9uBfPd_UB2tHq8qFbOJSfmcisPkQxPcplP4slSE1I96s77JT2KyF-MBcpcHwjjAtXC91X2YtSAaDWbt4l8sw/s320/2+data.PNG" width="264" /></a></div>
今回はサンプルスーパーストアのデータで、製品名の一部を半角にしてみました。半角にしたのは「パック」と「コンロ」だけで、その他のカナは全角です。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLSOsgbW-SZIClvuXCYxBHToA6qHjymXTMYUL_wJNg38O0ptQdX8NyxcrT1ahHd_nVMhQ6zbUYmX8ijiWaZw3XtRKdBUz2WGD9JmB_9TBauaODXdzgOivzUp79sow0xLwG33x1lBzAsA8/s1600/3+script.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="452" data-original-width="622" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLSOsgbW-SZIClvuXCYxBHToA6qHjymXTMYUL_wJNg38O0ptQdX8NyxcrT1ahHd_nVMhQ6zbUYmX8ijiWaZw3XtRKdBUz2WGD9JmB_9TBauaODXdzgOivzUp79sow0xLwG33x1lBzAsA8/s320/3+script.PNG" width="320" /></a></div>
<br />
Pythonを呼び出すには、「スクリプト」を配置します。+をクリックして「スクリプト」を選択します。最初は赤い!アイコンが出ますが、気にせず設定を続けます。<br />
「接続タイプ」の「Tableau Python(Tabpy) Server」を選択します。つぎに「サーバー」の「Tableau Python(Tabpy) Serverに接続」ボタンをクリックします。<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEJjKfZocqY5UqxRcRfQTBx5MZ0H7qcx9g84RyOWLkfS3dupvNfOpD9N-4aLSPvnc1WzqVY5328A9t8Mjp5cvN6lV0uIPz1kzkRC7Q1cv612ApwlG21CVisI6XUFAwWTejv2q1IOc1iaA/s1600/4+tabpy.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="503" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEJjKfZocqY5UqxRcRfQTBx5MZ0H7qcx9g84RyOWLkfS3dupvNfOpD9N-4aLSPvnc1WzqVY5328A9t8Mjp5cvN6lV0uIPz1kzkRC7Q1cv612ApwlG21CVisI6XUFAwWTejv2q1IOc1iaA/s320/4+tabpy.PNG" width="320" /></a></div>
<br />
<br />
「サーバー」にlocalhost、「ポート」に9004を入力します。ユーザやパスワードは空欄でかまいません。「サインイン」ボタンをクリックします。<br />
<br />
<br />
<br />
<br />
<br />
<br />
スクリプトを準備します。下記青字を全部コピーし、メモ帳やエディタに貼り付けて保存してください。今回は「製品名」というフィールドを半角から全角に変換するスクリプトを用意しました。単純に1列のデータで半角を全角に変更するだけなら、2箇所あるdf['製品名']をご自身のデータの列名に変更するだけでOKです。任意のフォルダに名前をつけて保存します。今回私はc:\python\hankaku_zenkaku.pyという名前で保存しました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGdetl_quPmD07MSe16yS6y45Ga9BqK58IaRTb6DPvDW5PdJfpJxsr9iQnzhpAm4TJIK-ZduwWOn57AvNCz0oJavYeB3z9RuAY9GiObUMRp81ck5sNwVWlW9gsSP514-DHOa-mq0R6-Kk/s1600/6+python.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="288" data-original-width="901" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGdetl_quPmD07MSe16yS6y45Ga9BqK58IaRTb6DPvDW5PdJfpJxsr9iQnzhpAm4TJIK-ZduwWOn57AvNCz0oJavYeB3z9RuAY9GiObUMRp81ck5sNwVWlW9gsSP514-DHOa-mq0R6-Kk/s1600/6+python.PNG" /></a></div>
<br />
<span style="color: blue;">import mojimoji</span><br />
<span style="color: blue;">def hankaku_zenkaku(df):</span><br />
<span style="color: blue;"> df['製品名'] = df['製品名'] .apply(mojimoji.han_to_zen, ascii=False, digit=False)</span><br />
<span style="color: blue;"> return df</span><br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbctNIiIkGScXnYRspQns7DZTpeD93b_wIkVFrFNSVronI1DYFOWTVI68O-as-Lojhyphenhyphen-IUDiwfR1bgOlen86eO-rvXDOVPOK_0EosNj_TXt3vDm7J5PkgB88HT4ag7HTuCwnvXaAaMXss/s1600/7+scriptsettei.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="701" data-original-width="584" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbctNIiIkGScXnYRspQns7DZTpeD93b_wIkVFrFNSVronI1DYFOWTVI68O-as-Lojhyphenhyphen-IUDiwfR1bgOlen86eO-rvXDOVPOK_0EosNj_TXt3vDm7J5PkgB88HT4ag7HTuCwnvXaAaMXss/s320/7+scriptsettei.PNG" width="266" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
最後にPythonのスクリプトを参照します。先程保存した.pyのファイルを参照し、「関数名」には先程のスクリプトの関数名、defの後の「hankaku_zenkaku」を入力します。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTOUjYc85Z2iM8u4LyZVzP1lbpUOmeEWKdzJB81uQqQAu2bqrkVl5Oe-AIDRQ6pAzZt-JjKvOjXK9envoJk_4qQP80YYMbr5vGWMU4idKpfOISfXnIR2WMpOMpw_TTZxmXTlPqWaoTHu0/s1600/8+kakunin.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="492" data-original-width="988" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTOUjYc85Z2iM8u4LyZVzP1lbpUOmeEWKdzJB81uQqQAu2bqrkVl5Oe-AIDRQ6pAzZt-JjKvOjXK9envoJk_4qQP80YYMbr5vGWMU4idKpfOISfXnIR2WMpOMpw_TTZxmXTlPqWaoTHu0/s320/8+kakunin.PNG" width="320" /></a></div>
すべてを入力すると自動的にスクリプトが実行され、アイコンの上の!マークが消えます。「製品名」の値を確認すると、もう全角に変換されています。<br />
<br />
<br />
<br />
<br />
<br />
今回のテストでは少し意地悪に「パック」という文字で変換してみました。半角カナは「パ」等の文字を2文字にしてしまうため、それを全角に変換するのは処理として難しいのですが、ちゃんと1文字の「パ」に変換してくれていました。<br />
<br />
半角全角の変換には「<a href="https://github.com/studio-ousia/mojimoji" target="_blank">mojimoji</a>」を利用しました。<a href="http://tableaujpn.blogspot.com/2020/03/tableaupythontabpydocker.html">前回の手順で</a>python上にmojimojiと、mojimojiを動作させるために必要なものをインストールしていました。そうするとスクリプトを数行用意するだけで文字の変換をPythonに実行させることができました。<br />
<br />
今回はTableau Prep BuilderとPythonを連携させ、半角カナを全角カナに変換する処理を作りました。古いシステムからデータを取ったら半角カナばっかりで困っている、という方、クリーニングのフローの途中で半角を全角に変換する、などに是非活用してみてください。<br />
<br />
<br />
<br />Shingohttp://www.blogger.com/profile/16554187461943466265noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-37055272185520370022020-03-08T18:28:00.004+09:002020-03-08T18:29:59.962+09:00Tableau+Python連携環境(Tabpy)をDockerで作ろうTableau Desktop、Tableau Server、Tableau PrepとPythonを連携できる、というのをご存知の方もいらっしゃると思いますが、連携させるための環境をつくるのに尻込みされている方々、こちらの手順で簡単に環境をつくることができます。コンテナ技術のDockerを使って、Tabpyサーバを作ってみましょう。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6O1QmueiNmZdzG5nM6gto8O0G2o4lmSghrsAFQkUUPEcD-YmFIImK3J4svV9c8bl0SlkzjyrgU3JlAPMxxt8mPioduUVJaOCRL_VMzJoh4KqCDcE7qoiQKG2gwlT_fxYaI82j9Y9mkWg/s1600/1+logo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="337" data-original-width="1397" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6O1QmueiNmZdzG5nM6gto8O0G2o4lmSghrsAFQkUUPEcD-YmFIImK3J4svV9c8bl0SlkzjyrgU3JlAPMxxt8mPioduUVJaOCRL_VMzJoh4KqCDcE7qoiQKG2gwlT_fxYaI82j9Y9mkWg/s640/1+logo.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
まず、環境を作りたいマシンにDockerをインストールします。今回は私のPC(Windows 10)に環境を作ります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4uqgXJTwj1bjfZ2STa2ab7yQQoqEBcKQA6cPg9ReqO2YcUsJMSrr_z_sXrzcKMHMv7ywmRbH5-KZ1z3gzfvYI2rH55J5abgKMSRcr7U1HdbWzE__IiIRQ8kzG6AB5iT4heKmIbUcDqjQ/s1600/2+download.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="479" data-original-width="886" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4uqgXJTwj1bjfZ2STa2ab7yQQoqEBcKQA6cPg9ReqO2YcUsJMSrr_z_sXrzcKMHMv7ywmRbH5-KZ1z3gzfvYI2rH55J5abgKMSRcr7U1HdbWzE__IiIRQ8kzG6AB5iT4heKmIbUcDqjQ/s320/2+download.png" width="320" /></a></div>
<br />
<br />
Dockerのダウンロードは<a href="https://docs.docker.com/docker-for-windows/install/" style="background-color: white;" target="_blank">こちら</a>から。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizVG4p7GmSggwRKh5MQrRhA3ItjhvgxG_YM7b-QFIbAqVr7-UHPBCy_TA95u02yFKvBeluIPC9WKeaEXIa8ymXAW5uo1dycrTKNveWkNhl5hSU69IwbaKLVZG1fnYJGrCVlT9vIPx7juk/s1600/3+installer.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="886" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizVG4p7GmSggwRKh5MQrRhA3ItjhvgxG_YM7b-QFIbAqVr7-UHPBCy_TA95u02yFKvBeluIPC9WKeaEXIa8ymXAW5uo1dycrTKNveWkNhl5hSU69IwbaKLVZG1fnYJGrCVlT9vIPx7juk/s320/3+installer.png" width="320" /></a></div>
<br />
インストーラーを実行します。選択項目はすべて初期値のままでOKを押下。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx7GEUNCnm6N0JGrWBpMx6FhCwJRCkrMNjIMvE6tz-oGvHDM_RCidWcrJWTvwhcT8TXxKyqo5ZS42-ZFHxol1VhPF22gxOIQzUVVMWfrvVagR2Uke3MvJ7sTTwzaC7QjikXwknsjLGAIs/s1600/4+reboot.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="886" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx7GEUNCnm6N0JGrWBpMx6FhCwJRCkrMNjIMvE6tz-oGvHDM_RCidWcrJWTvwhcT8TXxKyqo5ZS42-ZFHxol1VhPF22gxOIQzUVVMWfrvVagR2Uke3MvJ7sTTwzaC7QjikXwknsjLGAIs/s320/4+reboot.png" width="320" /></a></div>
<br />
<br />
再起動が完了すると以下のような画面があらわれ、Dockerの環境が整います。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhizYmrf5zlLdqUxZYJEdtpc7OF5jTn0CLBl5umZRN_3pXzWxhg-0-k5Lab4gQlw3Xf3AwMdZ5dRVI16LCvTsS2XMR5M_raTWEqGuwVefBoISH5odkS23rcTnt4bnJ14pHpKxuFI__eZ-Y/s1600/5+docker.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1181" data-original-width="681" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhizYmrf5zlLdqUxZYJEdtpc7OF5jTn0CLBl5umZRN_3pXzWxhg-0-k5Lab4gQlw3Xf3AwMdZ5dRVI16LCvTsS2XMR5M_raTWEqGuwVefBoISH5odkS23rcTnt4bnJ14pHpKxuFI__eZ-Y/s320/5+docker.png" width="184" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
再起動が完了すると以下のような画面があらわれ、Dockerの環境が整います。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
次にDockerファイルを準備します。DockerファイルはDocker上につくるコンテナイメージを定義したテキストファイルです。メモ帳やエディタ等を使って作成します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRWBjzM_x9HvxuXKQUrAC4hK0TRtP8tfpQZq3EqoN9wIVXZurWIGwY5KyqMlHoBQVdEIEiBwnNhSht-W82PZ1Vd63I5QLHgl81lQTySnx6pkTwjTLiU-wS_A1apU-u8FCxCK5ItNCN2R4/s1600/6+dockerfile.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="361" data-original-width="694" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRWBjzM_x9HvxuXKQUrAC4hK0TRtP8tfpQZq3EqoN9wIVXZurWIGwY5KyqMlHoBQVdEIEiBwnNhSht-W82PZ1Vd63I5QLHgl81lQTySnx6pkTwjTLiU-wS_A1apU-u8FCxCK5ItNCN2R4/s1600/6+dockerfile.PNG" /></a></div>
<br />
<br />
今回はCent OSにPython3とTabpy、そしてTabpyを使って全角半角の文字変換を行いたかったのでそのライブラリを入れるように書きました。よくわからなければとりあえずこのままの状態で、下記青字部分をコピーし、メモ帳に貼り付けてPC内のフォルダにDockerfileという名前で保存しましょう。<br />
<br />
<span style="color: blue; font-size: x-small;"># Cent OSをベースイメージとして使用</span><br />
<span style="color: blue; font-size: x-small;">FROM centos:latest</span><br />
<span style="color: blue; font-size: x-small;"><br /></span>
<span style="color: blue; font-size: x-small;"># Tabpyとその前提パッケージ、半角変換のためのmojimojiとその前提パッケージをインストール</span><br />
<span style="color: blue; font-size: x-small;">RUN yum install -y python3</span><br />
<span style="color: blue; font-size: x-small;">RUN yum install -y gcc-c++</span><br />
<span style="color: blue; font-size: x-small;">RUN yum install -y python3-devel</span><br />
<span style="color: blue; font-size: x-small;">RUN python3 -m pip install --upgrade pip</span><br />
<span style="color: blue; font-size: x-small;">RUN pip install tabpy</span><br />
<span style="color: blue; font-size: x-small;">RUN pip install pandas</span><br />
<span style="color: blue; font-size: x-small;">RUN pip install mojimoji</span><br />
<span style="color: blue; font-size: x-small;"><br /></span>
<span style="color: blue; font-size: x-small;"># コンテナのポート9004をホストに開示</span><br />
<span style="color: blue; font-size: x-small;">EXPOSE 9004</span><br />
<span style="color: blue; font-size: x-small;"><br /></span>
<span style="color: blue; font-size: x-small;"># Tabpyを実行</span><br />
<span style="color: blue; font-size: x-small;">CMD ["tabpy"]</span><br />
<span style="color: blue; font-size: x-small;"> </span><br />
<br />
私はCドライブの下にdockerというフォルダを作成し、その中にDockerfileを作成しました。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCx0TMA1MU2qw8F_pZKJhRbKGhVBmTE4rW7Fz3YRER6S9dyjOFFu6CdPJvRHd4C42GWn6vjxExXBd8MJv8Zo5K-Gx81NQBzvjQ3eTqO1YBnDicxvlUBt-1_SRR7ys4kFZ8qzpo9gaU20g/s1600/7+Dockerfile_save.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="117" data-original-width="612" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCx0TMA1MU2qw8F_pZKJhRbKGhVBmTE4rW7Fz3YRER6S9dyjOFFu6CdPJvRHd4C42GWn6vjxExXBd8MJv8Zo5K-Gx81NQBzvjQ3eTqO1YBnDicxvlUBt-1_SRR7ys4kFZ8qzpo9gaU20g/s640/7+Dockerfile_save.PNG" width="640" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0s4UN1UQjEb7ivavICgmcuOPlwIlqU0KOnfJuTbUM4fJTURZvbMCDEHJr32AInaZll9eSADKv82oCV-U9WSAbTCmLZ0Ull8SSPCiaI6fNxksx19UBTuv_eJl_TG10xzDyKe4fZtLu1as/s1600/8+cmd.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="691" data-original-width="435" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0s4UN1UQjEb7ivavICgmcuOPlwIlqU0KOnfJuTbUM4fJTURZvbMCDEHJr32AInaZll9eSADKv82oCV-U9WSAbTCmLZ0Ull8SSPCiaI6fNxksx19UBTuv_eJl_TG10xzDyKe4fZtLu1as/s320/8+cmd.PNG" width="201" /></a></div>
<br />
コマンドプロンプトを起動します。コマンドプロンプトはWindowsアイコンを押してcmdと入力すると候補が出てきます。コマンドプロンプトが起動されます。黒い画面にコマンドを打ちますが、もうすぐ完了ですのでめげずに頑張ってください。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidLYHpUwbP3tz_RE3sLFH12b5BmSbHw5n_EZgijIxABHwi3XzaOnHvfIzkeE_bgR6lk3xiZLZtPAT-ypKFrTDxCwy-byh3CaFbdpD348uiAYE_Qn1hiWiMMKHdB67o8X8HYJD6zJ2os1w/s1600/9+cd.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="198" data-original-width="442" height="143" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidLYHpUwbP3tz_RE3sLFH12b5BmSbHw5n_EZgijIxABHwi3XzaOnHvfIzkeE_bgR6lk3xiZLZtPAT-ypKFrTDxCwy-byh3CaFbdpD348uiAYE_Qn1hiWiMMKHdB67o8X8HYJD6zJ2os1w/s320/9+cd.PNG" width="320" /></a></div>
<br />
Dockerファイルを保存した場所へ移動します。cd (シー、ディー、スペースキー)と入力し、保存先フォルダをドラッグ・アンド・ドロップします。フォルダの場所が自動入力されるので、キーボードのEnterキーを押します。<br />
<br />
次に、以下の青字をコピーし、コマンドプロンプトの上で右クリックします。コマンドが貼り付けらえるのでEnterキーを押します。(最後のピリオドまでコピーします)<br />
<br />
<span style="color: blue;">docker build -t tabpy/tabpy .</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJXm6Y7HOX3shuhyphenhyphenZ2groR68deepES0XChd051El9muJNiIuEuuvYJ_-MO-MTrEjQI7uFIOn9F2QyvMk4dQ9JsIFXBV4OFZQOm-CT5EDXxsuanntf_-O8-VWrBEoFMnYAtliTqC3viFq0/s1600/10+build.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="295" data-original-width="731" height="129" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJXm6Y7HOX3shuhyphenhyphenZ2groR68deepES0XChd051El9muJNiIuEuuvYJ_-MO-MTrEjQI7uFIOn9F2QyvMk4dQ9JsIFXBV4OFZQOm-CT5EDXxsuanntf_-O8-VWrBEoFMnYAtliTqC3viFq0/s320/10+build.PNG" width="320" /></a></div>
Dockerイメージを作成する処理が始まります。しばらく待って処理が終わると、最初の画面のようにC:\docker> 等のように入力できるようになります。<br />
<br />
<br />
<br />
イメージが正しく作成されたか確認します。以下の青字を貼り付けます。<br />
<span style="color: blue;"><span style="color: black;"><br /></span></span>
<span style="color: blue;">docker image list</span><br />
<span style="color: blue;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgigSgGLKO8wtmutIDEQnGCKdshrusG-uZVnPhabdRtZQ0fisorRUwpqI84Z4n4NpkhGD1QGFv8RMShU0y5_JaaH-xMCrGjdCbZama1soYIw7x6Sc3La_iPkTnqd98WpM1DU4lWqrCwFHI/s1600/11+list.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="105" data-original-width="803" height="41" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgigSgGLKO8wtmutIDEQnGCKdshrusG-uZVnPhabdRtZQ0fisorRUwpqI84Z4n4NpkhGD1QGFv8RMShU0y5_JaaH-xMCrGjdCbZama1soYIw7x6Sc3La_iPkTnqd98WpM1DU4lWqrCwFHI/s320/11+list.PNG" width="320" /></a></div>
tabpy/tabpyがリストの中にあればイメージ作成は成功です。<br />
<br />
<br />
<div class="MsoNormal">
<span lang="EN-US"><span style="color: blue;"><span style="color: black;">作成したイメージをつかってコンテナを起動します。以下のコマンドを貼り付けます。</span></span></span><br />
<span lang="EN-US"><span style="color: blue;"><span style="color: black;"><br /></span></span></span>
<span lang="EN-US"><span style="color: blue;">docker run -it -d -p 9004:9004 tabpy/tabpy</span></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmU3WIhtEixNyn4jLeEGLVixjthEA3onytHdhTnvJkB_m96a6UUtCycxtINt7UMEzhlXrHIfhKeNvYiikid_b2_xiZ4dXmK3n4NCKYgee9x-qHHVwgF5F8YXP3pRom3MDtzhqNPnRI0sc/s1600/12+run.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="94" data-original-width="558" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmU3WIhtEixNyn4jLeEGLVixjthEA3onytHdhTnvJkB_m96a6UUtCycxtINt7UMEzhlXrHIfhKeNvYiikid_b2_xiZ4dXmK3n4NCKYgee9x-qHHVwgF5F8YXP3pRom3MDtzhqNPnRI0sc/s320/12+run.PNG" width="320" /></a></div>
<br />
これでTabpyサーバが起動ができました。<br />
<br />
<br />
動作確認してみましょう。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrCo4v3-H9yU135FOYsRTjwJnt2sa3ULqDSqhUNtY2jVGohnWS9A9wEqPiSFazPFxifxQJDoW4VuXSeMzRF_4ifWuyhIUGT4GzQux28Gx7usmVJ7tK2hWGqNPj775KuxwsoXDhrRnjH1w/s1600/13+doukaku.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="456" data-original-width="536" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrCo4v3-H9yU135FOYsRTjwJnt2sa3ULqDSqhUNtY2jVGohnWS9A9wEqPiSFazPFxifxQJDoW4VuXSeMzRF_4ifWuyhIUGT4GzQux28Gx7usmVJ7tK2hWGqNPj775KuxwsoXDhrRnjH1w/s320/13+doukaku.png" width="320" /></a></div>
Tableau Desktopを起動し、ヘルプメニューから「設定とパフォーマンス」>「外部サービス構成の管理」を選択します。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijiOw7LhR0BtJ24VrAaVo_DZ23ZZQjzr2bsFTp3DOYgeiTdmYks-m1yHdEjvJCU3_CFApZ4RvocpGTVP7B7FjFl6WIeqxSZBAr2gfXhErtefnQ6vnZgQkmOnE5hIytAOSA6AkGx7hMrB8/s1600/14+gaibuservice.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="358" data-original-width="351" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijiOw7LhR0BtJ24VrAaVo_DZ23ZZQjzr2bsFTp3DOYgeiTdmYks-m1yHdEjvJCU3_CFApZ4RvocpGTVP7B7FjFl6WIeqxSZBAr2gfXhErtefnQ6vnZgQkmOnE5hIytAOSA6AkGx7hMrB8/s320/14+gaibuservice.PNG" width="313" /></a></div>
外部サービスはTabpyを選択し、サーバーにはlocalhostと入力、ポートには9004と入力し、左下の「テスト接続」をクリックします。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYlxhCfJqnBi4FWCIJofGnB9v5pVHZMb_48SK6_0Ro31TmWih4JUh8_io2uGLl5pTW9WxunweMGETHGxyzYnpKLDO1-5wzB03QYfPGk6WDVpiwG6VIvoR1UbOoI4pzisKI7NPIQXUwtIc/s1600/15+testcomplete.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="154" data-original-width="538" height="91" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYlxhCfJqnBi4FWCIJofGnB9v5pVHZMb_48SK6_0Ro31TmWih4JUh8_io2uGLl5pTW9WxunweMGETHGxyzYnpKLDO1-5wzB03QYfPGk6WDVpiwG6VIvoR1UbOoI4pzisKI7NPIQXUwtIc/s320/15+testcomplete.PNG" width="320" /></a></div>
<br />
接続が成功するとこのようなメッセージが出ます。<br />
<br />
<br />
<br />
これでご自身のPC上にTabpyが動く環境ができました。<span style="color: red;">PCを再起動したりするとTabpyは停止するので、docker runコマンドで再度実行してください</span>。<br />
<br />
今回はTabpyを動作させる環境をつくる手順をご紹介しました。次回はこの環境を使ってTableau Prepで半角文字を全角文字に変換する処理を作りたいと思います。<br />
<br />
なお、2020.1リリースとともに、<a href="https://www.tableau.com/about/blog/2020/1/python-tableau-now-10">Tabpyはバージョン1.0となり、Tableauからのサポートが受けられるようになりました。</a>より安心してお使いいただけます。<br />
<br />
<br />Shingohttp://www.blogger.com/profile/16554187461943466265noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-2628955757281325522019-02-13T17:32:00.000+09:002019-02-13T17:32:26.524+09:00Tableau Prep Conductor を使って見よう!みなさん、こんにちは bashii です。<br />
<br />
Tableau 2019.1 の発表にて、Prep Conductorが発表になりました。さて、”Prep Conductor"とはいったいどのようなものなのでしょうか?<br />
<br />
<span style="font-size: xx-small;">(以下資料はβ版の画面を利用しています。実際の2019.1の画面とは異なる可能性があります。当資料はTableau社の正式なレビューを受けていません。最新技術情報の共有を目的とした一技術文書としての公開となります。)</span><br />
<br />
<strong>◇ Prep Conductor とは何ですか?</strong><br />
<strong><br /></strong>Tableau は<a href="https://www.tableau.com/ja-jp/trial/tableau-prep?utm_campaign_id=2018114&utm_campaign=Prospecting-CORE-ALL-ALL-ALL-ALL&utm_medium=Paid+Search&utm_source=Google+Search&utm_language=JP&utm_country=JPN&kw=tableau%20prep&adgroup=CTX-JP-Brand-Tableau+Prep-JP-E&adused=265662494288&matchtype=e&placement=&gclid=CjwKCAiA1ZDiBRAXEiwAIWyNC77_SF5NZo4VjmxvJj9qatm0zfbEtvhzqydTfEzod-ZaQ_qhjVMo4RoCo5cQAvD_BwE&gclsrc=aw.ds">Tableau Prep</a>というデータ準備のツールを提供しており、PC上で複雑なデータ前処理をフロー化してバッチ実行するプロダクトを提供しています。前処理した結果は、CSV、<a href="https://onlinehelp.tableau.com/current/pro/desktop/ja-jp/extracting_data.htm">Tableau の抽出</a>、またはTableau Serverにデータソースとしてパブリッシュし、Tableau Desktopから可視化、分析をすることができます。可視化をする際に複雑な前準備を完了した状態の結果に対してアクセスすることで、大元のデータソースへのアクセス処理を回避し、分析処理のパフォーマンス向上が望めます。<br />
<br />
一言でいえば、「Prep Conductor 」はいままでPC上で実行していた<b>Prep</b><b>フローをサーバー側で一括管理、スケジュール実行</b>する機能です。<br />
<br />
例えば…<br />
<br />
① 当日の売り上げを夜間に締めて、マスターデータや他のデータと結合して前処理し、分析用のデータソースを作成、パブリッシュしておく (Prep Conductorでバッチのスケジュール実行)<br />
<br />
② 翌日の朝、ユーザーに①で前処理しておいたデータソースを提供し自由に分析してもらう (Tableau Desktop または Tableau Server の Web-Edit を利用する)といった運用を考えるとイメージが付きやすいでしょうか。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIE89vB97d4Te62Mrn6NlR2yZLwGF_Q2b0eq2HuiRuUnyFeEjYTffhTmXMnaEz6eldUwbUZ-0Uma5GGmMti77i3wwOyh9yc0WqXG1-E3hKAJxHQCvMXLMTboz07j4ypDcPVCyzv_NgHMg/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="391" data-original-width="728" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIE89vB97d4Te62Mrn6NlR2yZLwGF_Q2b0eq2HuiRuUnyFeEjYTffhTmXMnaEz6eldUwbUZ-0Uma5GGmMti77i3wwOyh9yc0WqXG1-E3hKAJxHQCvMXLMTboz07j4ypDcPVCyzv_NgHMg/s640/1.JPG" width="640" /></a></div>
<br />
<br />
<div id="kzGUeCr">
<img alt="" class="alignnone size-full wp-image-1292 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c42855ea2ac7.png" /></div>
なお、Prep ConductorはTableau Server / Tableau Online のコンポーネントとして含まれます。(別途ライセンスを有効化することで利用可能となります。)ですので、Prep Conductor用の製品を別途インストールする必要はありません。<br />
<br />
<br />
<strong>◇ Prep Builderとは何ですか?</strong><br />
<strong><br /></strong>今までのTableau Prep(デスクトップ製品) は Prep Conductorが登場したことで、Prep Builderに名称変更になります。ちょっとややこしいですが、デスクトップ環境で稼働する製品をPrep Builder、サーバーで稼働する製品をPrep Conductorと呼び方を分けることになりました。<br />
<br />
<strong>◇ Prep Conductorの利用ケース例</strong><br />
<strong><br /></strong>Prep Conductor の利用構成として以下のようなケースが考えられます。<br />
<br />
① フローの作成<br />
Prep BuilderからCloud上のデータソースを入力とした前準備を行い、出来上がった結果をTableau Serverに共有のデータソースとしてパブリッシュするフローを作成。<br />
<br />
② フローのパブリッシュ<br />
Prep Builder から Prep Conductor (実際はTableau ServerまたはTableau Online)にフロー自体をパブリッシュする。<br />
<br />
③ フローのスケジュール実行<br />
Prep Conductor上で定期的にフローがスケジュール実行され、パブリッシュされたデータソースの内容が更新される。<br />
<br />
④ データの可視化分析<br />
ユーザーは定期的に更新される、パブリッシュされたデータソースを利用して日々の分析を行う。<br />
<div id="PoRxAXG">
<img alt="" class="alignnone size-full wp-image-1318 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c42f370e3c86.png" /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRR4eBIti1QWv_7I6Er6J0pOTt89M1q0mcN_Uup6q6Ctveq6APyUH2yli3kgyHZCdFtpLkO-YziCXAUdF826F655tfJxB2dSrAaaYGscM3hAQ6bjPBQYpW9LYyo_NCrWVSe8bg1fQgGEw/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="596" data-original-width="1128" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRR4eBIti1QWv_7I6Er6J0pOTt89M1q0mcN_Uup6q6Ctveq6APyUH2yli3kgyHZCdFtpLkO-YziCXAUdF826F655tfJxB2dSrAaaYGscM3hAQ6bjPBQYpW9LYyo_NCrWVSe8bg1fQgGEw/s640/2.JPG" width="640" /></a></div>
<br />
<br />
<strong>◇ それでは実際に触ってみましょう</strong><br />
<strong><br /></strong>今回は、クラウド上のデータソース(Google Cloud SQL)に売上データが毎日入ってくる想定で、一日の終わりにこれを集計し、分析用のデータソースを作るフローを定期実行し、Tableau Serverにパブリッシュして分析に利用するというシナリオを考えます。<br />
<br />
① まずはPC上のPrep Builderでフローを作成し、Tableau Server にパブリッシュします。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuCqtt2C5x19R7W-JqU6m3ZIlW5ZI8aHYl22I9KdeLH7-aykHTGLPFQghWq9COFLjgc4L4y7ulNSzFleo19qcW5mvet7jgfAVWxnsN6A4WMCdIsA6nAPSpUXAxkQyShhwz3BtWmdcRMbI/s1600/3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="623" data-original-width="928" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuCqtt2C5x19R7W-JqU6m3ZIlW5ZI8aHYl22I9KdeLH7-aykHTGLPFQghWq9COFLjgc4L4y7ulNSzFleo19qcW5mvet7jgfAVWxnsN6A4WMCdIsA6nAPSpUXAxkQyShhwz3BtWmdcRMbI/s640/3.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm1S5AzQDTZyu8FK1C6eT38kJz2GG39bIhezpZkGjUuB043xQs9WftgMNZ6GiEzfK9D3GKOyuj3Gjg-qaHR2a-ubF7iznSYJyb079Q6emOgJU8qt4VnaKhmz2-ahIXp9RR2sE0Lp2zER8/s1600/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="257" data-original-width="588" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm1S5AzQDTZyu8FK1C6eT38kJz2GG39bIhezpZkGjUuB043xQs9WftgMNZ6GiEzfK9D3GKOyuj3Gjg-qaHR2a-ubF7iznSYJyb079Q6emOgJU8qt4VnaKhmz2-ahIXp9RR2sE0Lp2zER8/s400/4.JPG" width="400" /></a></div>
<br />
<br />
<div id="mLqBpfv">
<img alt="" class="alignnone size-full wp-image-1325 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c4513ca4d3d7.png" /></div>
<div id="wnHgASa">
<img alt="" class="alignnone size-full wp-image-1326 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c4515b989224.png" /></div>
パブリッシュが完了するとPrep Conductor(Tableau Server上)にパブリッシュされたフローがブラウザの画面に表示されます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgifoirMhCJoEmKF6bKjDsDLUS0QJ7HlhfwLe-HfnMtbrrSBE3ZyOx8-BcYBB72BOOX-v0S8ibo9JgTeyi05eiqYrGdjK4-5pdCmH8X_ETglZOebM2VLxSQrA5wpEb7u8flPx8C0lSErUU/s1600/5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="522" data-original-width="807" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgifoirMhCJoEmKF6bKjDsDLUS0QJ7HlhfwLe-HfnMtbrrSBE3ZyOx8-BcYBB72BOOX-v0S8ibo9JgTeyi05eiqYrGdjK4-5pdCmH8X_ETglZOebM2VLxSQrA5wpEb7u8flPx8C0lSErUU/s640/5.JPG" width="640" /></a></div>
<br />
<br />
<div id="RxmeIQi">
<img alt="" class="alignnone size-full wp-image-1328 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c4516a2b1135.png" /></div>
Scheduleから"Every night End of the Day" のスケジュールを作成します。(午前2:00に実行するためのスケジュールを作成します。)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0y8ZJ_c9hTIXHvR0l-_pylwrorjitLkuwjo-g_nOLmX32UCOC9NV5LQdeqFh7iwO8eHWWznbrmJlA2-LmrPFhhuBk64Gpd1hL_oktKQbiiP4bsEAFKIaIVx1Zah4S8RZ8l1K-VvR4j6E/s1600/6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="563" data-original-width="813" height="442" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0y8ZJ_c9hTIXHvR0l-_pylwrorjitLkuwjo-g_nOLmX32UCOC9NV5LQdeqFh7iwO8eHWWznbrmJlA2-LmrPFhhuBk64Gpd1hL_oktKQbiiP4bsEAFKIaIVx1Zah4S8RZ8l1K-VvR4j6E/s640/6.JPG" width="640" /></a></div>
<br />
<br />
<div id="zvslOls">
<img alt="" class="alignnone size-full wp-image-1330 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c4517b93aef8.png" /></div>
FlowのCreate new task で先ほど作成したSchedule(実行タイミング)でTaskを作成します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxOBxhRg9V3kw-7GnEnxovB4cOyOG2ZW25Xg4-FvJKktal8sxFOuDS4LJsHltxvHE03XsQB7-mmL-C8Dyk1vsXHUJtEV94ouAQ5RyDgkLsv0h9GyT1OIngA22vboKnTqcO5jzSa6eaCsg/s1600/7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="552" data-original-width="810" height="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxOBxhRg9V3kw-7GnEnxovB4cOyOG2ZW25Xg4-FvJKktal8sxFOuDS4LJsHltxvHE03XsQB7-mmL-C8Dyk1vsXHUJtEV94ouAQ5RyDgkLsv0h9GyT1OIngA22vboKnTqcO5jzSa6eaCsg/s640/7.JPG" width="640" /></a></div>
<br />
<br />
<div id="KqrLfPn">
<img alt="" class="alignnone size-full wp-image-1329 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c45175a90e82.png" /></div>
タスクがスケジュールされたことを確認します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOqhkxjtzrcpFQkdwtxkoeyvtRj9_OMV9thm-rUIrHBVZ4fYYZ-Sn4IPMYTRPHKPIA_rjL-D2y2nZap8LDhJsBVEnBtqFWYQGwccWM3jr5yICbeH2VdNvvls1vmDYSftrgoRUeWOhPekU/s1600/8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="612" data-original-width="819" height="478" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOqhkxjtzrcpFQkdwtxkoeyvtRj9_OMV9thm-rUIrHBVZ4fYYZ-Sn4IPMYTRPHKPIA_rjL-D2y2nZap8LDhJsBVEnBtqFWYQGwccWM3jr5yICbeH2VdNvvls1vmDYSftrgoRUeWOhPekU/s640/8.JPG" width="640" /></a></div>
<br />
<br />
<div id="GHWCDDT">
<img alt="" class="alignnone size-full wp-image-1331 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c451879a60ec.png" /></div>
ブラウザから即時実行することもできますので、動くかどうか一回確認してみます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIBK32vITky5yJjJ0XpiGa8KaL2ruDZ8EkcUC5nHBrllni7PDUI67XbrFNjjGXMMrb97I6ddrwLeWRGOI7xA-cJmpNy0daeu6VWjQcUAMz1FHrgVnHjiNg3heQnF2p8P5Yf6OrPXmVYnU/s1600/9.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="537" data-original-width="837" height="410" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIBK32vITky5yJjJ0XpiGa8KaL2ruDZ8EkcUC5nHBrllni7PDUI67XbrFNjjGXMMrb97I6ddrwLeWRGOI7xA-cJmpNy0daeu6VWjQcUAMz1FHrgVnHjiNg3heQnF2p8P5Yf6OrPXmVYnU/s640/9.JPG" width="640" /></a></div>
<br />
<br />
<div id="sDWedhx">
<img alt="" class="alignnone size-full wp-image-1332 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c4518d94de27.png" /></div>
成功しました。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlWVBBVxW2G-K_mES1ffExz_GrmCQwk24kvR5ArXE518sUFnapkkQ7_lBe94KLbap_nv5QGGeXCc0dykgNtkFIkjHabkEp3BVL65QYkUr_NM1MiEDfFlgucDlODmAJL94BiZ2B6POocRw/s1600/10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="533" data-original-width="846" height="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlWVBBVxW2G-K_mES1ffExz_GrmCQwk24kvR5ArXE518sUFnapkkQ7_lBe94KLbap_nv5QGGeXCc0dykgNtkFIkjHabkEp3BVL65QYkUr_NM1MiEDfFlgucDlODmAJL94BiZ2B6POocRw/s640/10.JPG" width="640" /></a></div>
<br />
<br />
<div id="aPVEnnx">
<img alt="" class="alignnone size-full wp-image-1333 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c45193d3517d.png" /></div>
Run History でフローが実行された履歴、所用時間を確認します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi14XUlgvkk5mHdpw7G3RUHtUdnNNvsDqGGiQbcOWwDHjIunkfawmz02tMqg1pjbuEYu20mh8o-qYRlYYxzQ0xX4Fz5iS_GWF3qPWa9RJU9EUa3z8VKpF5PLv-Z4b9SkRbU-B4eq7WRv3U/s1600/11.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="399" data-original-width="856" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi14XUlgvkk5mHdpw7G3RUHtUdnNNvsDqGGiQbcOWwDHjIunkfawmz02tMqg1pjbuEYu20mh8o-qYRlYYxzQ0xX4Fz5iS_GWF3qPWa9RJU9EUa3z8VKpF5PLv-Z4b9SkRbU-B4eq7WRv3U/s640/11.JPG" width="640" /></a></div>
<br />
<br />
<img alt="" class="alignnone size-full wp-image-1334 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c45196f63b74.png" /><br />
後はこのフローが定期的に実行されるのを待ちます。<br />
<br />
ここで、Tableau Desktopに戻ってデータの分析をしてみましょう。<br />
<br />
Tableau DesktopからTableau Serverに接続し、フローによってパブリッシュされたデー<br />
タソースに接続します。<br />
<div id="aZlBthH">
<img alt="" class="alignnone size-full wp-image-1335 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c4519f97fa00.png" /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV-2_O90Hq55baYudshLb9xOPyqx-8H-jHR2XAq7kd_EIr2frOmAOmnFCur4GTxEYF2SMkd56lfHibOMt0VIqHVAMY1Grn6UWkfTLgC7co1DlUhBc1TXT5SE3spkhtDpJEKVtCLdP7Ew4/s1600/12.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="636" data-original-width="916" height="444" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV-2_O90Hq55baYudshLb9xOPyqx-8H-jHR2XAq7kd_EIr2frOmAOmnFCur4GTxEYF2SMkd56lfHibOMt0VIqHVAMY1Grn6UWkfTLgC7co1DlUhBc1TXT5SE3spkhtDpJEKVtCLdP7Ew4/s640/12.JPG" width="640" /></a></div>
<br />
<br />
次に可視化を行います。この時点では2019/04/02までのデータが入っています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjme4sBcOTYYfYyix0msxcctu4I0hdvewNKLG4608btzadYZIk76pvy-5vjAzPlRqNw7ejbOe9EDbTgZVdxqIb552uqjtzGkgTbnPdoiKQ1g2tkqDUfJkq48JxdvWx9eMo8f-JhK26hes8/s1600/13.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="627" data-original-width="905" height="442" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjme4sBcOTYYfYyix0msxcctu4I0hdvewNKLG4608btzadYZIk76pvy-5vjAzPlRqNw7ejbOe9EDbTgZVdxqIb552uqjtzGkgTbnPdoiKQ1g2tkqDUfJkq48JxdvWx9eMo8f-JhK26hes8/s640/13.JPG" width="640" /></a></div>
<br />
<br />
<br />
<div id="nxCXkWd">
<img alt="" class="alignnone size-full wp-image-1336 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c451a5cdebd0.png" /></div>
この間にもトランザクションデータベースにはその日のトランザクションが更新されています。営業時間が終わり、夜中のフローが流れ、実行履歴が追加されます。ここでは疑似的にGoogle Cloud SQLのMySQLに2019/04/03 のデータを追加してみます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrKD8j3d369SbrREVcASBseliH2Iij9z0SaFuPvlxCLeOs0Fb0zK5-uYAfMDxpkWqQMs6_rvW7-n84O3rwAGxTNyOAqc3gv4eLBxXqwFuaJ9hV1X1rij59Fyk0aOslfmd4sNms-GFii4w/s1600/14.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="494" data-original-width="665" height="474" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrKD8j3d369SbrREVcASBseliH2Iij9z0SaFuPvlxCLeOs0Fb0zK5-uYAfMDxpkWqQMs6_rvW7-n84O3rwAGxTNyOAqc3gv4eLBxXqwFuaJ9hV1X1rij59Fyk0aOslfmd4sNms-GFii4w/s640/14.JPG" width="640" /></a></div>
<br />
<br />
<div id="HNciLJg">
<img alt="" class="alignnone size-full wp-image-1341 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c451de73ba60.png" /></div>
夜中にTableau Server上のバッチが実行されます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2x3AYGI9eMSbRu6BMdFFWDswtScqfqxEmm4bZ_odi8bL53qLH3MalgfPtsCSMfzKX850PJL3d-lXu395_PCzqFtQVLxPlNxqgmGo-dMfUviyc7ie_g1oFk3nLgmUCgDoAozmiDJngxiU/s1600/15.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="340" data-original-width="727" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2x3AYGI9eMSbRu6BMdFFWDswtScqfqxEmm4bZ_odi8bL53qLH3MalgfPtsCSMfzKX850PJL3d-lXu395_PCzqFtQVLxPlNxqgmGo-dMfUviyc7ie_g1oFk3nLgmUCgDoAozmiDJngxiU/s640/15.JPG" width="640" /></a></div>
<br />
<br />
<div id="nFEmXAN">
<img alt="" class="alignnone size-full wp-image-1310 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c42eaa4ebf96.png" /></div>
次の日の朝に、データ分析ユーザーはTableau Desktop 上でデータソースの更新を行います。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Ex5-OltciXciI8OwyAeh9mbEvvO_tiH5jqxH6d46hKZn-m71E8fk2sIC8nEV772fJPFAy8FqizSltYIlYy0iDrMa6_4lCpb5U94UNo1lhrFNUjpZ6qgDD6qN1zjQbkdvTLO9onUCxnE/s1600/17.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="630" data-original-width="922" height="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Ex5-OltciXciI8OwyAeh9mbEvvO_tiH5jqxH6d46hKZn-m71E8fk2sIC8nEV772fJPFAy8FqizSltYIlYy0iDrMa6_4lCpb5U94UNo1lhrFNUjpZ6qgDD6qN1zjQbkdvTLO9onUCxnE/s640/17.JPG" width="640" /></a></div>
<br />
<br />
<div id="kbTZxFP">
<img alt="" class="alignnone size-full wp-image-1337 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c451ac90faac.png" /></div>
すると、夜間に更新された前日の更新を含むデータソースが参照できるようになります。以下のエリアチャートで、2019/04/03 の日付のデータが入ってきていることが分かります。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj72OXN6U81tlEhEWSXKvZFgoMedD-9Esizi8D245VpwJ0xaoZzNG15nU8sDITcT45ZMYpHRcIavn3Achyphenhyphen8gnLDi50i2OXnNvAO0fR7TpCrhOzBv-S0wGGkx-iIrdjdljfbVJLsZaZ9btw/s1600/16.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="637" data-original-width="928" height="438" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj72OXN6U81tlEhEWSXKvZFgoMedD-9Esizi8D245VpwJ0xaoZzNG15nU8sDITcT45ZMYpHRcIavn3Achyphenhyphen8gnLDi50i2OXnNvAO0fR7TpCrhOzBv-S0wGGkx-iIrdjdljfbVJLsZaZ9btw/s640/16.JPG" width="640" /></a><br />
<br />
<div id="aXQpqUR">
<img alt="" class="alignnone size-full wp-image-1338 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c451b25c9133.png" /></div>
また、Server Status -> Flow Performance History より、パブリッシュされたフロー全体を見て、いつ何時にどのフローが成功、失敗したか、また処理時間にどれだけ所要したかを一覧で見ることができます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmiBSwvvauo4i8yYMSFwXT1nxLF57B52mYO1JVfdzCzfn1YjmoZwP2SA4afEdRmSkEpxB4jVyEmOvqICQj9jBdHsjJB2A_9wzGTUBcsSsVxm9W75uEWYe65FWimEC5ggJ6jtZdgbhWTSg/s1600/18.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="444" data-original-width="824" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmiBSwvvauo4i8yYMSFwXT1nxLF57B52mYO1JVfdzCzfn1YjmoZwP2SA4afEdRmSkEpxB4jVyEmOvqICQj9jBdHsjJB2A_9wzGTUBcsSsVxm9W75uEWYe65FWimEC5ggJ6jtZdgbhWTSg/s640/18.JPG" width="640" /></a></div>
<br />
<br />
<div id="tkkMaqr">
<img alt="" class="alignnone size-full wp-image-1316 " src="https://lovedata.main.jp/wp-content/uploads/2019/01/img_5c42efa6af49e.png" /></div>
また、ユーザーごとにフローを実行できるか、編集できるかなど異なるパーミッション設定を行えることも特徴です。<br />
<div id="iSGHjpN">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUm-nKC5KysGiHloimPbc9s5Ue79uaU7FSZ3dsEmJnZnWZeqqKa0F5AQc-gwQ0awgiMvET_2xR7g-ZtduTQygbFdYBBaLFGGDCNISBunZlPy_BuBoQR51PpPfv9_11rnYpJ4xTei5k7mQ/s1600/19.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="371" data-original-width="621" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUm-nKC5KysGiHloimPbc9s5Ue79uaU7FSZ3dsEmJnZnWZeqqKa0F5AQc-gwQ0awgiMvET_2xR7g-ZtduTQygbFdYBBaLFGGDCNISBunZlPy_BuBoQR51PpPfv9_11rnYpJ4xTei5k7mQ/s640/19.JPG" width="640" /></a></div>
<br />
<br />
<br /></div>
<strong>◇ Prep Conductorを使うメリット</strong><br />
<strong><br /></strong>最後に、Prep Conductorを使うメリットについて、まとめます。<br />
<br />
① フローをサーバー側でスケジュール実行<br />
フロー実行のためにクライアントPCを常時起動しておく必要がない<br />
<br />
② スケーラビリティ<br />
サーバーまたはクラウドのリソースをフロー実行時に有効活用できる<br />
(多くの場合、クライアントPCよりリソースが潤沢)<br />
<br />
③ フローの一括管理<br />
個々に作成していたフロー成果物を一括管理できる<br />
<br />
④ セキュリティ<br />
フローの実行、ビュー、ダウンロード可否などのをユーザーごとに設定できる<br />
<br />
⑤ フロー実行のモニタリング<br />
フローの実行の履歴、実行時間をモニターし集中管理できる<br />
<br />
<br />
<div id="tvmpAHK">
以上、Tableau Prep Conductor を使ってみた報告でした!! 参考になれば幸いです。</div>
Anonymoushttp://www.blogger.com/profile/14420530895344867351noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-10117006486826438152019-02-12T16:59:00.000+09:002019-02-12T16:59:24.846+09:00Tableau Prepを利用したデータ前処理の有用性皆さまこんにちは。Tableau Prepがリリースされてもう少しで一年が経ちます。<br />
そこでTableau Prepについてもテクニカルな情報を配信していこうと思います。<br />
<br />
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="line-height: 13.8px;">今回の記事では、<span lang="EN">Tableau Prep</span>によるデータ前処理の有効性についてお話いたします。</span><span lang="EN" style="line-height: 13.8px;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">Harvard Business Review </span><span style="color: black;">誌が行った調査によると、調査対象者はデータ前処理であるクリーニングとデータ形式の変換に作業時間の<span lang="EN-US"> 80% </span>を費やしており、分析に費やす時間は<span lang="EN-US"> 20% </span>に留まるとのことです。<span lang="EN-US"><br style="mso-special-character: line-break;" /><br style="mso-special-character: line-break;" /><o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">ビジネスの目標を管理するには、データ品質が重要です。業務で直面するデータはクレンジングが必要であり、これに加えて実際に分析画面として利用され、メンテナンスされ続ける業務サイクルが必要となります。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">この現実は必然的で避けられるものではありません。<span lang="EN"><o:p></o:p></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: black;">データの大半がすぐに分析に利用できないのは、データが分析に適した形式になっていない為、あるいは多種多様なデータソースに分散しているためです。</span><span lang="EN"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: black;">そこで データ準備ツール<span lang="EN-US"> </span></span><span lang="EN">Tableau Prep</span><span lang="EN-US" style="color: black;"> </span><span style="color: black;">では、データ準備に特化したビジュアルインターフェイスにより、結合やユニオン、ピボット、集計などの、一般的でありながら複雑な作業をシンプルに行えるようにしました。<span lang="EN-US"><br /></span></span><span lang="EN">Tableau Prep</span><span lang="EN" style="color: black;"> </span><span style="color: black;">を使えば、データ定義や表記ゆれの確認が視覚的に確認でき、直感的な操作でデータ前処理を行うことができます。<span lang="EN-US"><o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="color: black;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></span>
<span style="color: black;"><span style="font-family: "arial" , "helvetica" , sans-serif;">例えば、以下のように分析画面側で実装されがちなピボットも、列から行、行から列といったようにデータ前処理でシンプルに変換する事ができます。<span lang="EN-US"><o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="color: black;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfHpeaaZxlnWTbRL-UQikbO47Jr50HWked3lwqXHx_VQh77fFtX3IgspGsXj98dhvG2kbf7grPoDoTkVLGObgfmhuZ1eQYz9ruB8MjFQ7nRWe4syu9BKZKZq8oPoV36wxiKdwL3BtdcVs/s1600/data_maesyorist_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="779" data-original-width="1126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfHpeaaZxlnWTbRL-UQikbO47Jr50HWked3lwqXHx_VQh77fFtX3IgspGsXj98dhvG2kbf7grPoDoTkVLGObgfmhuZ1eQYz9ruB8MjFQ7nRWe4syu9BKZKZq8oPoV36wxiKdwL3BtdcVs/s1600/data_maesyorist_1.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="line-height: 13.8px;">また、データ前処理において重要な事は</span><span style="color: black; line-height: 13.8px;">クリーニングとデータ形式の変換に</span><span style="line-height: 13.8px;">だけではありません。<span lang="EN-US"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">分析画面をとして利用する為のデータビジュアライゼーションの過程では集計処理は必ず発生します。加えて計算処理も発生します。<span lang="EN-US"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">こうした処理がデータをビジュアライゼーションとしてユーザーに提供されるまでに数十秒と係るケースもあります。<span lang="EN-US"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">優れたビジュアライゼーションであってもユーザーへ提供時間を要する事でフラストレーションが溜まり「使いに行くツール」と評価されてしまっては非常に残念です。<span lang="EN-US"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">そこで、レスポンス改善の為のデータ前処理についてお話します。<span lang="EN-US"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN" style="line-height: 13.8px;">Tableau Desktop</span><span style="line-height: 13.8px;">では強力な<span lang="EN">LOD</span>という考え方が搭載されています。しかし場合によっては、このデータ生成を前処理で実装する事でビジュアライゼーションのパフォーマンスを各段に改善する事が可能です。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span lang="EN" style="line-height: 13.8px;">Point 1:</span><span style="line-height: 13.8px;"> </span><span style="line-height: 13.8px;"> <span lang="EN">Desktop</span>での<span lang="EN">LOD</span>を利用したサンプル</span><span lang="EN" style="line-height: 13.8px;"><o:p></o:p></span></b></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormalCxSpLast">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">ユーザーをグループごとに分類し、その行動や定着率を分析する手段として「コホート分析」があります。この分析手法を利用した例として、長く取引のある顧客は、売上への貢献度も高いか?を判定してみます。次の<span lang="EN">Viz</span>では、年毎の売上を比較しています。ここで初回購入の年で顧客をグループ化し「コホート分析」を行おうとした場合、この<span lang="EN">Viz</span>では顧客ごとにデータが表示されていないので、顧客の最小オーダー日付が、最初の購入日として表現する事ができません。そこで<span lang="EN">LOD </span>表現を使って顧客ごとの最小オーダー日付を固定する必要があります。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN" style="line-height: 13.8px;"><span style="mso-list: Ignore;">※<span style="font-stretch: normal; line-height: normal;"> </span></span></span><span style="line-height: 13.8px;">出典:<span class="MsoHyperlink"><span lang="EN"><a href="https://www.tableau.com/ja-jp/about/blog/LOD-expressions">https://www.tableau.com/ja-jp/about/blog/LOD-expressions</a></span></span><span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN" style="line-height: 13.8px;">Tableau Desktop</span><span style="line-height: 13.8px;">では、まず計算フィールドを追加し<span lang="EN">LOD</span>表現を行い「初回購入年」を表現します。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">集計とオーダー日と売上で表現されていますが、顧客を切り口とした<span lang="EN">LOD</span>表現を色に設定する事で初回購入年毎の集計を表現できます。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
<span style="height: 22px; margin-left: 116px; margin-top: 524px; mso-ignore: vglayout; position: absolute; width: 95px; z-index: 251659776;"><br /></span></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqWyrZmzvkxR1GRe5gulSj-ToZl0u1ROTjkIjB2-wE7ww5oo1A4lNAwzo9oxE_FFYQsLrMjBnAsIunrb3WB64FqyFOcfq4SZm26nH0FD9zVoSbZHDwAJyLu2WUiLvK3nzyPhOHibXCVcE/s1600/data_maesyorist_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="762" data-original-width="1405" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqWyrZmzvkxR1GRe5gulSj-ToZl0u1ROTjkIjB2-wE7ww5oo1A4lNAwzo9oxE_FFYQsLrMjBnAsIunrb3WB64FqyFOcfq4SZm26nH0FD9zVoSbZHDwAJyLu2WUiLvK3nzyPhOHibXCVcE/s1600/data_maesyorist_2.jpg" /></a></div>
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">しかし、<span lang="EN">Desktop</span>上で指定された行列での集計以外に、<span lang="EN">LOD</span>表現として計算式を実行する必要があり別の切り口での集計が発生する為にレスポンスに影響がないとは言い切れません。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">そこで、計算式を用いた集計自体をデータ前処理として生成する方法を検討します。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span lang="EN" style="line-height: 13.8px;">Point 2:</span><span style="line-height: 13.8px;"> </span><span style="line-height: 13.8px;"> <span lang="EN">LOD</span>を<span lang="EN">Prep</span>で作成したサンプル</span><span lang="EN" style="line-height: 13.8px;"><o:p></o:p></span></b></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="height: 50px; margin-left: 207px; margin-top: 660px; mso-ignore: vglayout; position: absolute; width: 106px; z-index: 251661824;"><br /></span><span style="height: 50px; margin-left: 496px; margin-top: 662px; mso-ignore: vglayout; position: absolute; width: 106px; z-index: 251652608;"><br /></span><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="line-height: 13.8px;">LOD</span><span style="line-height: 13.8px;">の計算式では「顧客」毎の「初回購入年」を算出しているので、<span lang="EN">Prep</span>のフローでは「顧客」毎の「最も小さい購入年」のデータを集計します。</span></span></div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="line-height: 13.8px;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ed6SQ387_j4VFifDBOXKE3wavG5eM0fjagii9EwHhlal91WCXgFnd2JE3Wov33gvjFDqF5pZ6ldtqTCKd3rLJkLHuC92nDO8EmRV1WyM-qs6ctQuKeSvSjMsLHX3MooprjfaYhJyR40/s1600/data_maesyorist_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="670" data-original-width="1405" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ed6SQ387_j4VFifDBOXKE3wavG5eM0fjagii9EwHhlal91WCXgFnd2JE3Wov33gvjFDqF5pZ6ldtqTCKd3rLJkLHuC92nDO8EmRV1WyM-qs6ctQuKeSvSjMsLHX3MooprjfaYhJyR40/s1600/data_maesyorist_3.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="line-height: 13.8px;"><br /></span></span></div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="line-height: 13.8px;"><br /></span></span></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">これにより集計された「顧客ごとの初回購入年」データを元の<span lang="EN">Raw</span>データに対して付加する必要があります。 <span lang="EN">JOIN</span>を用いて結合します。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8bXuUOBEKeBLkrHfoCJdDKUkW4nMgGD4VGka62yaFX1xU5oiM-0ltu6PN1dEQuuiMtHiPJwV3gXvLBQQqEFa5hnSKUyExKAU4qAmVri__ndj2PINt09gfgLai-BFYgVIBTa3IRpqlkoo/s1600/data_maesyorist_4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="778" data-original-width="1388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8bXuUOBEKeBLkrHfoCJdDKUkW4nMgGD4VGka62yaFX1xU5oiM-0ltu6PN1dEQuuiMtHiPJwV3gXvLBQQqEFa5hnSKUyExKAU4qAmVri__ndj2PINt09gfgLai-BFYgVIBTa3IRpqlkoo/s1600/data_maesyorist_4.jpg" /></a></div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
<span style="height: 49px; margin-left: 524px; margin-top: 755px; mso-ignore: vglayout; position: absolute; width: 106px; z-index: 251658752;"><br /></span><span style="height: 53px; margin-left: 26px; margin-top: 748px; mso-ignore: vglayout; position: absolute; width: 171px; z-index: 251656704;"><br /></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">こうして生成したデータを<span lang="EN">Tableau Desktop</span>が高速に読み取る事ができる<span lang="EN">Hyper</span>形式のファイルとして出力し、<span lang="EN">Tableau Desktop</span>で読み込み、購入年毎の売上を集計し<span lang="EN">Viz</span>を生成します。新しく「顧客ごとの初回購入年」として生成した列を色に設定する事により、<span lang="EN">Viz</span>上では色情報を計算する事なく表現でき、<span lang="EN">Viz</span>は高速に表示できます。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<span style="height: 25px; margin-left: 113px; margin-top: 875px; mso-ignore: vglayout; position: absolute; width: 106px; z-index: 251662848;"><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid9eedvKEmrx4RphzjGOHHD1GmdgUzVmocDLCLUZutOeNzey4927OlDQ5fEFUdNWfapvCln5GBm-wMnGMMty88ydipkfLZ9CNQavYXtwaCOB95_MKUairQuzWYNGflO5iaSqO9PutrtLQ/s1600/data_maesyorist_5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="774" data-original-width="1376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid9eedvKEmrx4RphzjGOHHD1GmdgUzVmocDLCLUZutOeNzey4927OlDQ5fEFUdNWfapvCln5GBm-wMnGMMty88ydipkfLZ9CNQavYXtwaCOB95_MKUairQuzWYNGflO5iaSqO9PutrtLQ/s1600/data_maesyorist_5.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span lang="EN" style="line-height: 13.8px;">Point 3:</span><span style="line-height: 13.8px;"> </span><span style="line-height: 13.8px;">レスポンス改善効果</span><span lang="EN" style="line-height: 13.8px;"><o:p></o:p></span></b></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">今回は<span lang="EN">LOD</span>表現を前処理で生成しましたが、他にもデータの集約と結合などが前処理で利用されるケースがあるかと思います。特に予算と実績など粒度の異なるデータは、<span lang="EN">Tableau Desktop</span>ではブレンディングを用いる事でデータソースを実装できますが、前処理で実装する手段も考えられます。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">実際にデータブレンディングを用いた際に<span lang="EN">Viz</span>を表示する為に数分かかっていたが、<span lang="EN">Prep</span>でデータ前処理を行う事で<span lang="EN">Viz</span>表示が数秒に改善されユーザーへの負担を軽減したというケースもあります。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">また、各<span lang="EN">Desktop</span>側で同じようなデータソースに対する処理が分散している場合、前処理として1つに統合する事で相乗的にパフォーマンス向上を発揮する事ができます。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">分析は、データの発生元から業務で実際に活用する場まで繋がることにより効果的に活かされるものです。発生するデータの前処理としての<span lang="EN-US">Tableau Prep</span>利用をご検討いただく事により、<span lang="EN-US">Viz</span>を通して最適な分析への一助になり得るかもしれません。<span lang="EN-US"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="line-height: 13.8px;"><span style="font-family: "arial" , "helvetica" , sans-serif;">以上、データ前処理の有用性についてご紹介しました。<span lang="EN"><o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
Takahirohttp://www.blogger.com/profile/15200641931278060860noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-24071124826975080492019-01-24T16:21:00.000+09:002019-01-24T16:21:03.888+09:00セットアクションとは?<br />
<div class="MsoNormal">
<span style="font-family: メイリオ;">皆様こんにちは。Keikoです。だいぶご無沙汰してしまいました…。</span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">バージョン<span lang="EN-US">2018.3</span>で新たに追加された機能の1つ、セットアクション。もう皆様お試しいただきましたでしょうか。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">このセットアクション、非常にパワフルな、<span lang="EN-US">Tableau</span>のインタラクティビティを更に深化させる機能なのですが…。機能の説明としては、「セットの中身を、シート上での操作に応じて動的に変更する」。ただそれだけです。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">…うん、それで?となる方、多いかもしれません。実は、動的なセットを作っただけではあまり意味がありません。それを色カードや計算フィールドと組み合わせてどう使うか、ここが大きなポイントになります。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">セットアクションの例の前に、そもそもの「セットとは?」のご説明を。<span lang="EN-US"><o:p></o:p></span></span><br />
<span style="font-family: メイリオ;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;"><a href="https://onlinehelp.tableau.com/current/pro/desktop/ja-jp/sortgroup_sets_create.htm" target="_blank">オンラインヘルプ</a>によると<span lang="EN-US"><o:p></o:p></span></span><br />
<span style="font-family: メイリオ;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">"セットは、いくつかの条件に基づいてデータのサブセットを定義するカスタム
フィールドです。"</span><br />
<span style="font-family: メイリオ;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">とあります。何かしらの条件(例:家具カテゴリの製品を買っている)に該当するデータレコードを、<span lang="EN-US">1</span>つのサブセットとしてまとめておく機能です。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;"> (条件に該当してセットに含まれるデータ = <span lang="EN-US">IN<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-char-indent-count: 1.0; text-indent: 10.5pt;">
<span style="font-family: メイリオ;"> 条件に該当せずセットに含まれないデータ = <span lang="EN-US">OUT</span>)<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXvhwz0VNY0W08aRohA774iqliQTvYdrI5PzKQ40If8x1m075SvlYitCTMj9iaUekEw5nxyCCSw-oWhGH8zqcpQ5oZhyphenhyphenywRfPxE7poyBc7zp7d5aWRE8Ijo7KeukKoH2C90GtfbxMDZzQm/s1600/IN_OUT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="365" data-original-width="959" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXvhwz0VNY0W08aRohA774iqliQTvYdrI5PzKQ40If8x1m075SvlYitCTMj9iaUekEw5nxyCCSw-oWhGH8zqcpQ5oZhyphenhyphenywRfPxE7poyBc7zp7d5aWRE8Ijo7KeukKoH2C90GtfbxMDZzQm/s1600/IN_OUT.png" /></a></div>
<span id="goog_209758845"></span><span id="goog_209758846"></span><br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">セットを使用するメリットは幾つか考えられるのですが、今回注目したいのは、<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: メイリオ;"> セットの<span lang="EN-US">IN</span>だけでなく、<span lang="EN-US">OUT</span>も確認できる<span lang="EN-US"><o:p></o:p></span></span></b></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">という点です。</span><br />
<span style="font-family: メイリオ;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">条件に該当するデータのみを分析対象とするのであれば、フィルター機能を使っても同じですよね。もちろんセットをフィルターシェルフに配置して<span lang="EN-US">IN</span>のみに絞り込むことも可能ですが、行シェルフに配置したり色カードに配置したりすることで、<span lang="EN-US">IN</span>のデータと<span lang="EN-US">OUT</span>のデータにどのような違いがあるのかを、視覚的に確認することが可能になります。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTIeFZEHRfkPxMLek3D-odwNruw0A4aB2e0b74MTXvT2b082ZAIE0h-sQeX-9BrJWgnlE47JLnkKfrTlEv-EqDaXV_maJmW_sZhNzppcufLLI3oRDchrNZgE_F3QVruC3EA1NxdQBXX2-4/s1600/sample1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="712" data-original-width="879" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTIeFZEHRfkPxMLek3D-odwNruw0A4aB2e0b74MTXvT2b082ZAIE0h-sQeX-9BrJWgnlE47JLnkKfrTlEv-EqDaXV_maJmW_sZhNzppcufLLI3oRDchrNZgE_F3QVruC3EA1NxdQBXX2-4/s1600/sample1.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5WgUvTRxwm9B4QSq0vzicaDeG8MxlemNT237oM85M4H63CU73SoS2z2YSnyuIlL6QAjlT4shrnzFYuyfuB5QwDRXice4LNMu0aqOCehVnBOnHrfNNspO9CqOOaRBN2_De30N0wWZgGdnU/s1600/sample2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="781" data-original-width="1216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5WgUvTRxwm9B4QSq0vzicaDeG8MxlemNT237oM85M4H63CU73SoS2z2YSnyuIlL6QAjlT4shrnzFYuyfuB5QwDRXice4LNMu0aqOCehVnBOnHrfNNspO9CqOOaRBN2_De30N0wWZgGdnU/s1600/sample2.png" /></a></div>
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">ここまでは、通常のセット機能のお話。では、バージョン<span lang="EN-US">2018.3</span>で追加されたセットアクション機能で、何がどう変わったか。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">冒頭にも書きましたが、「セットの中身を、シート上での操作に応じて動的に変更する」ことが出来るようになりました。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">例えば「家具カテゴリの製品を買っている」というセットの設定を「事務用品カテゴリの製品を買っている」に変更しようと思ったら、これまでは「セットの編集」メニューから変更するしかありませんでした。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidXSBPxojHXFbPRpxHkjrozJALep9Q7ZKIDFNbEHoUrcb_On9ChAr_rswzaT1bHXFn8EUUIAcWw6fXyEgU_w_hWjNDsoGfaUtO7Amczz7C6hpTDwIhswVyEcp9ty7ZxxQTxyRfucOX2bFv/s1600/set+edit+menu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="524" data-original-width="899" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidXSBPxojHXFbPRpxHkjrozJALep9Q7ZKIDFNbEHoUrcb_On9ChAr_rswzaT1bHXFn8EUUIAcWw6fXyEgU_w_hWjNDsoGfaUtO7Amczz7C6hpTDwIhswVyEcp9ty7ZxxQTxyRfucOX2bFv/s1600/set+edit+menu.png" /></a></div>
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">でもセットアクションを設定すれば、<span lang="EN-US">Viz</span>の中身を選択すること(例えば下の図では棒グラフの棒をクリックすること)によって、自由に設定変更することが出来ます。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLhEb5DfReADRtc0h01KigxnMwjvdXWxNL3Se0ptodqHixIokEVSpPwmHqAFHIKOYS3T_mFLojnk1nmW4Bm_LQkn7uxF67xXzJgGKmi_GMdWWzMCOYqUUrI-HWLw0dCYHzf6EPjXpaKDiI/s1600/set+edit_action.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="664" data-original-width="1046" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLhEb5DfReADRtc0h01KigxnMwjvdXWxNL3Se0ptodqHixIokEVSpPwmHqAFHIKOYS3T_mFLojnk1nmW4Bm_LQkn7uxF67xXzJgGKmi_GMdWWzMCOYqUUrI-HWLw0dCYHzf6EPjXpaKDiI/s1600/set+edit_action.png" /></a></div>
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">閲覧している人が、分析している人が、「パターン<span lang="EN-US">A</span>の場合はこうなのか、じゃあパターン<span lang="EN-US">B</span>の場合はどうだろう?<span lang="EN-US">C</span>の場合は?」と、頭に浮かんできた疑問に即座に回答することが出来ますよね!!<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br />
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">セットとは何か、セットアクション機能で何が出来るようになったのか、イメージいただけましたでしょうか。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">セットアクションの詳細な設定方法は<a href="https://onlinehelp.tableau.com/current/pro/desktop/ja-jp/actions_sets.htm" target="_blank">オンラインヘルプ</a>をご参照いただくとして、本日はこのセットアクションの活用例を3つご紹介します。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 18.0pt; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: メイリオ; mso-bidi-font-family: メイリオ;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span style="font-family: メイリオ;">選択した都道府県の売上合計は?利益総額に占める割合は?<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">非常にシンプルに、セットアクションを設定したセットを、色カードに配置するだけ、で出来ます。地図上で選択(=セットアクションのトリガー)された都道府県がセットの<span lang="EN-US">IN</span>、選択されていない都道府県がセットの<span lang="EN-US">OUT</span>になります。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="tableauPlaceholder" id="viz1548295180897" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/_v/_vs_0/1/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='site_root' value='' /><param name='name' value='_vs_0/1' /><param name='tabs' value='no' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/_v/_vs_0/1/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1548295180897'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1000px';vizElement.style.height='827px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: メイリオ;">2</span><span style="font-family: メイリオ;">.選択した各地域と、未選択地域の売上合計の推移は?選択した地域を基準としたとき、各地域の売上は何%差がある?<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">この例は、セットアクションを設定したセット + 計算フィールドの組み合わせで出来ています。計算フィールドに<span lang="EN-US"> [</span>セット名<span lang="EN-US">] </span>を入れるだけで、そのセットに含まれるか含まれないか(<span lang="EN-US">IN/OUT</span>)の判定が可能なところが便利です。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="tableauPlaceholder" id="viz1548295963346" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/_v/_vs_/1/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='site_root' value='' /><param name='name' value='_vs_/1' /><param name='tabs' value='no' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/_v/_vs_/1/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1548295963346'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1000px';vizElement.style.height='827px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: メイリオ;">3. 1</span><span style="font-family: メイリオ;">つのメンバーだけドリルダウンして詳細を見たい!<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">上記<span lang="EN-US">2</span>つが分析寄りの使用例なのに対して、これはレポーティング目的、閲覧者の方が日々の意思決定をデータドリブンに行う際に活用できる例かもしれません。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">セットアクションを設定したセット + 計算フィールドという組み合わせは同じで、今回は<span lang="EN-US">2</span>段階のドリルダウンをしたいので、2つのセット(とセットアクション)を使用しています。<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="tableauPlaceholder" id="viz1548295998512" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/__/__949/1/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='site_root' value='' /><param name='name' value='__949/1' /><param name='tabs' value='no' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/__/__949/1/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1548295998512'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1000px';vizElement.style.height='827px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">セットアクションの活用イメージ、掴んでいただけましたでしょうか。「<span lang="EN-US">A</span>が<span lang="EN-US">B</span>の場合は<span lang="EN-US">C</span>をする」といったロジカルな処理を動的に行う場合、これまではパラメーターや<span lang="EN-US">LOD</span>表現を駆使して事前に作りこんでおく必要がありました。でもセットアクションを使えば簡単ですね!皆様も是非触ってみて、ご自身の分析の、ダッシュボードのどこに適用できるか考えてみてください。<span lang="EN-US"><o:p></o:p></span></span><br />
<span style="font-family: メイリオ;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: メイリオ;">こちらのTableau公式ブログ(英語)に、より詳細な、より高度な活用例もございますので、併せてご参照ください。</span><br />
<span style="font-family: メイリオ;">- <a href="https://www.tableau.com/about/blog/2018/11/8-ways-bring-powerful-new-comparisons-viz-audiences-set-actions-97207" target="_blank">8ways to bring powerful new comparisons to viz audiences with Tableau setactions</a></span><br />
<span style="font-family: メイリオ;">- <a href="https://www.tableau.com/about/blog/2018/12/8-analytic-concepts-express-tableau-set-actions-99108" target="_blank">8analytic concepts to express with Tableau set actions</a></span></div>
<br />Keikohttp://www.blogger.com/profile/09833705005028823713noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-12763036378898301452018-07-02T18:52:00.001+09:002018-07-02T19:00:36.901+09:00誰のためのデザイン?(D.A.ノーマン)を読んでみた大変ご無沙汰しています!!Kaori改めKTです。<br />
久しぶりの投稿でTableauのTipsじゃないのかい!!って感じなのですが今日はイギリスのTableau テクノロジーエヴァンジェリストで<a href="https://www.amazon.co.jp/dp/B071Z6XJJX/" target="_blank"><span style="background-color: white; color: orange;">The Big Book of Dashboards</span></a>を書いた<a href="https://twitter.com/acotgreave" target="_blank"><span style="color: orange;">Andy Cotgreave</span></a>がおすすめしてくれた"The Design of Everyday Things"という本がありまして、「誰のためのデザイン?」という邦訳版があるので読んでみたKey Take Awayと感想を書き綴りたいと思います。<br />
この本はハードカバー452ページという、なかなかに読み応えのある本なのですが、読み終わったときにTableauを使う上での考え方はもちろん、日常生活の考え方まで、ごっそり変わった大変素晴らしい本でしたので、備忘録と自分の理解を深める意味も込めてまとめを残しておこうと思います。<br />
<br />
今回紹介する本はこちらです。<br />
<br />
(邦訳)<br />
<a href="https://www.amazon.co.jp/dp/4788514346/ref=cm_sw_r_tw_dp_U_x_6bw8AbXJVKV7J" target="_blank"><span style="color: orange;">誰のためのデザイン? 増補・改訂版 ―認知科学者のデザイン原論 D. A. ノーマン</span></a><br />
<br />
(原作)<br />
<a href="https://www.amazon.co.jp/dp/0465050654/ref=cm_sw_r_tw_dp_U_x_Swb8AbB0CFHJC" target="_blank"><span style="color: orange;">The Design of Everyday Things: Revised and Expanded Edition Don Norman</span></a><br />
<br />
<br />
全7章の構成になっていて、ざっくり1章ずつ書いていきたいと思います。<br />
<br />
<br />
<br />
<div class="MsoPlainText">
第1章 毎日使う道具の精神病理学<span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
目の前にあるものの使い方がわからなかったり、誤った操作をしてしまうということはよくあると思いますが、そういったものすべてはデザインが悪いのであり、使い方がわからない人間のせいではない、という極限まで人間中心を貫いたデザインを考えよという章です。</div>
<div class="MsoPlainText">
美しいデザイン≠良いデザイン</div>
<div class="MsoPlainText">
美しいデザインが必ずしもいいデザインとは限らない。良いデザインとは、説明しなくても理解できるような発見可能性と理解から成り立っています。</div>
<div class="MsoPlainText">
もちろん、何も説明されなくても理解できるデザインでありながら見た目にも美しいデザインというものは理想ですが、あまりにも美しさ「のみ」を追求するあまり、つなぎ目を消してしまって出口がわからなくなるドアの例なんかも挙げられています。</div>
<div class="MsoPlainText">
そこにインタラクションできるという気付きをデザインから与えてあげることが良いデザインにとっては非常に重要です。</div>
<div class="MsoPlainText">
そういったわかりやすいデザインを大前提としながら、美しくも見えるデザインを考えていきたいものですね。</div>
<div class="MsoPlainText">
でもわかりやすいデザインって、余計な説明がなくてもわかるデザインなので、結果的にごちゃごちゃしなくて美しかったりもしますね。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
第2章 日常場面における行為の心理学</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
では良いデザインを考えるためになにを理解すればいいか?ということで、人間中心デザインなのだから人間のことを理解しましょうという章です。</div>
<div class="MsoPlainText">
人間が物事をどのように行い、どのように認知を行うかということで自分のやりたいこと(ゴール)と外界の間を七段階理論に分け、考える方法を解説します。</div>
<div class="MsoPlainText">
また、人間の認知の方法を三つの処理レベル「本能的」「行動的」「内省的」に分け、行為の七段階理論と結びつけます。</div>
<div class="MsoPlainText">
この三つの処理レベルは以下のようになものです。</div>
<div class="MsoPlainText">
「本能レベル」</div>
<div class="MsoPlainText">
無意識に認識される最も原始的な反応。良いか悪いか、安全か危険か、基本的にすべての人が同じように考えるような直感的な反応。この本能レベルで嫌われると使ってもらえなくなるので、まずデザインする人はこの本能レベルをクリアすることを考えなくてはなりません。どんなに便利なものも、使ってもらわなければ意味がないので。</div>
<div class="MsoPlainText">
「行動レベル」</div>
<div class="MsoPlainText">
これは学習されたスキルの原点です。話したり、動いたり、実際に行動を起こすレベルのこと。自分の意志で動いているように見えますが、行動レベルは実は潜在意識的。</div>
<div class="MsoPlainText">
なにかをしようと思った時、やっている行為そのものは意識していない(たとえば、言葉は発するまで何を言おうと思っていたかはっきりとわかっていたわけではなかったり、手を動かすとき右手を動かしたいと思っているだけでどの筋肉をどう動かすなどと認識しているわけではないこと)ですよね。</div>
<div class="MsoPlainText">
「内省レベル」</div>
<div class="MsoPlainText">
これは意識的な認知の原点です。本能や行動レベルは分析を伴わないため即座に反応する迅速なものですが、内省レベルは深くゆっくりとしていて、たいていの場合あとからゆっくり起こるものです。私たちは内省的なレベルでの意識処理には気づくことができます。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
認知は意識的なものでしかないとイメージしてしまいそうですが、上記の通りそんなことはありません。むしろ潜在意識的なものの方が多いです。</div>
<div class="MsoPlainText">
そして認知は情動と切り離して考えられがちですが、これら三つの処理レベルはすべて連動して動き、楽しい苦しいという情動が認知に影響を与えたり、認知した結果が嬉しいつまらないなどといった情動をもたらすので、切り離して考えることはできません。したがって、すべてに対してデザインは考えなければなりません。</div>
<div class="MsoPlainText">
冒頭で話したTableauのエヴァンジェリスト、Andyは本能レベルと行動レベルに向けてビジュアルベストプラクティスを通してデザインする方法を語りました。</div>
<div class="MsoPlainText">
本能レベルと行動レベルの方が、比較的すべての人に対して共通した考えでデザインすることができるからですね。</div>
<div class="MsoPlainText">
もちろん、実際のダッシュボードデザインにおいては相手にもたらす内省レベルのインパクトについても十分考えなければならないでしょう。これは「使い手は誰か」という考え方がまさにそれで、渡した相手がどういう理解をして意識していくのか考えて、自分の伝えたいことと相手の理解がなるべく一致するようなデザインにしていくべきですね。そこにはもちろん、本能と行動が深くかかわっていて、ビジュアルベストプラクティスで上手に制御されたデザインが内省的な意識、理解を導くのではないかなと考えています。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
それから、この章にはもう一つおもしろい節があって、「語り手としての人間」という節です。人間は元来物事を原因を探し、「説明」や「物語」を作り上げるようにできています。だからこそ「物語」は人の理解をスムーズにすることができるんですね。Tableauがストーリーテリングを重視するのと繋がります。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
第3章 頭の中の知識と外界にある知識</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
私たちはすべてのことを記憶しているわけではないのに様々なことを日々判断して生活することができますよね。知識には自分自身の記憶と外界の知識<span lang="EN-US">(</span>自然な対応づけや制約<span lang="EN-US">)</span>があり、私たちは外界の知識と自身の記憶を結びつけて判断するためにそういったことができる、という章です。</div>
<div class="MsoPlainText">
外界の知識というのはなんだか難しい言葉ですが、たとえば忘れないようにメモを書いて机の目立つところに貼っておくとか、会議の予定が決まったらカレンダーアプリで時間と場所と概要を登録するとかいったことです。人間はずっと昔から全部を記憶していたわけではなく、生きるために必要な様々な情報を外に置いておき、必要に応じて使ってきました。</div>
<div class="MsoPlainText">
なぜそういうことをしてきたかというと、すべてを記憶するには世界の情報はあまりにも膨大だからですね。</div>
<div class="MsoPlainText">
記憶には短期記憶と長期記憶があり、短期記憶はすぐ引き出せるし回転も速くて便利なのですが、覚えておける量も少なくインタラプションに弱いので、話しかけられたりすると途切れて忘れてしまうことがあります。2階に忘れ物をして取りに戻ったのに2階の部屋に入ると何を忘れたのか忘れる私ですが、これは階段を上るっていう行動のインタラプションのせいだなということがわかりました(笑)</div>
<div class="MsoPlainText">
長期記憶は長い期間、量の多い情報を記憶しておくことができますが、すべてを正確に覚えているわけではなく、思い出すたびに断片が再構成されます。記憶がどのように解釈されたか次第で、その記憶を引き出すのに時間がかかったり、できなかったりします。</div>
<div class="MsoPlainText">
この短期記憶と長期記憶が頭の中の知識であり、これと外界の知識をうまく掛け合わせながら人間は効率よく生きています。この知識のそれぞれの特徴を把握し、いいところを使えるデザインにすることでより使いやすいデザインになっていくわけですね。</div>
<div class="MsoPlainText">
言葉で発する、字を書く、絵を描く、これらすべて外にアウトプットすることが外界の知識であり、なぜアウトプットすることで理解がたやすくなるのかわかると思います。</div>
<div class="MsoPlainText">
Tableauを使う話に置き換えると、ドラッグアンドドロップした瞬間にデータに基づいたなにかが表示される、あれは外界の知識ですね。すでに表示されているものを解釈するのは自分の頭の中で全部考えるより簡単です。</div>
<div class="MsoPlainText">
頭の中の知識に全部頼ろうとすることは得策ではありません。使えるものは使う、外界の知識を簡単に作ることができて、簡単に利用することができるのなら、使えばいいのです。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
第4章 何をするかを知る ― 制約、発見可能性、フィードバック</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
目の前にあるものをどう使うのか、どうやって解釈するのかについての章です。</div>
<div class="MsoPlainText">
制約とは大きさが同じの丸い穴と四角い棒と丸い棒があったら、丸い棒を穴に刺すでしょう。四角い棒が丸い穴に入らないのがわかるからです。このようにデザイン的に制約をつけておくことで人の行動を促すことができます。</div>
<div class="MsoPlainText">
発見可能性とはそのようにするもの、という指示が見つけられるかどうかということ。先ほどの例が微妙にサイズの違う丸い棒二つだったらどうでしょうか? おそらく二本とも刺してみて、より穴にぴったりな方を選ぶことになるでしょう。もっとわかりやすくするためになにか工夫しなければならないです(例えば、穴と棒に同じ名前を付けておくとか)</div>
<div class="MsoPlainText">
フィードバックはなにかアクションをしたとき、反応が返ってくるか、自分の操作が正しかったのかどうかわかるように、反応を返すことです。エレベーターのボタンを押して、光らないと何度も連打してしまう。フィードバックがないので、自分の操作が伝わっていないのではないかと思ってしまうからです。</div>
<div class="MsoPlainText">
制約ですべてを伝えきれればよいですが個々人の慣習などによってその制約は解釈が変わる可能性があります。なるべくターゲットにしている使い手が発見可能なデザインであり、触った後に反応する(フィードバックを返す)ことが重要です。</div>
<div class="MsoPlainText">
Tableauのダッシュボードだと、もしパフォーマンスが悪くてフィルターをいじってもいつまでも動かなかったら動いているのか心配になりますよね。</div>
<div class="MsoPlainText">
なるべく触ったらすぐフィードバックを返せるようなデザインを心がけておくことが大切です。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
第5章 ヒューマンエラー? いや、デザインが悪い</div>
<div class="MsoPlainText">
第6章 デザイン思考</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
この2章はとても面白い章なのですが、Tableauの使い方の観点ではあまり関係なかったので割愛します。なにかが起こった時、それが起こったのは人のせいではなく、改善するためにとれるアクションをデザインで解決しようというアプローチや、デザイン思考とはなにかということが書かれているので興味がある方はぜひ本を読んでみてくださいね。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
第7章 ビジネス世界におけるデザイン</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
ここまで、理想のデザインとは何かについて書かれてきましたが、商品としての製品を作るときのデザインの制限(最高のデザインをいろんな枷があって作ることができないとき。時間的なものや量産の問題、競争圧力など)が実世界にはあるよ、というビジネスにおいてのデザインについて書かれています。</div>
<div class="MsoPlainText">
主に新製品を開発する観点からの解説ですが、Tableauというひとつの製品を取り扱う私にとってもすごく参考になりました。</div>
<div class="MsoPlainText">
ひとつは急進的なイノベーションと斬新的なイノベーションの話。既存のものから進化してゆっくりとした変化をしていく斬新的なイノベーション。これは今ある人の生活を良くし、イメージが付きやすいの受け入れられやすいです。</div>
<div class="MsoPlainText">
急進的イノベーションは今までなかったものを出し、人の生活を劇的に変化させるものです。受け入れられる可能性は斬新的イノベーションよりはるかに低く、消えてしまうものもありますが、受け入れられれば、人々の生活をパラダイムシフトさせることができます。</div>
<div class="MsoPlainText">
Tableauが斬新的か、急進的イノベーションか、判断はみなさんにお任せしますが、どちらの変化も人には必要です。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
それから、チェスで強い人間や強いコンピュータではなく、コンピュータをうまく使いこなす人間が勝てるという節も印象的です。まさにAIや機械学習、様々なオートメーションが台頭してくる中、どちらか一方が最高レベルというより、これらのテクノロジーをどれだけ有効に活用できるかがその人の能力を決めることになり、その人やコンピュータ自身は単体で最強である必要はなく、「テクノロジーの有効活用」つまり「外界の知識をどれだけ有効に使えるか」ということそのものが強い力として今後台頭してくることになるということですね。</div>
<div class="MsoPlainText">
まさにTableauを使いこなすみなさんが、日々世界を変えていることそのものだなと思いました。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
かなり長くなってしまいましたが、じっくり読んだので備忘録がてらまとめてみました。最近私の話を聞いた人はこの本に相当影響受けてるなというのがバレると思いますが(笑)本当に自分の考え方からごっそり整理され、腑に落ちたり、AHAモーメントの連続の良い本でしたので、もしこの記事を読んで興味を持っていただきましたら読んでみてくださいね。</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
それでは!</div>
<div class="MsoPlainText">
(次はもうちょっと間をあけずに書きたいな、な)</div>
<div class="MsoPlainText">
KTより</div>
Anonymoushttp://www.blogger.com/profile/11000140238729680196noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-5277354233042169502018-05-11T14:46:00.000+09:002018-05-11T14:46:41.539+09:00ジッターチャートの作り方(重なりのあるマークをずらして表示)<span style="font-family: "arial" , "helvetica" , sans-serif;">
</span><br />
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="en-US">Nanae</span><span lang="ja">です。こんにちは。</span></span></div>
<div style="font-family: "Yu Gothic"; margin: 0in;">
</div>
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span lang="ja"></span><span style="font-family: "arial" , "helvetica" , sans-serif;">今回はジッターチャートをご紹介します。ジッターチャートは、円のグラフや箱ひげ図の応用版です。(これ↓)</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCcf4EYsso02zlBcj6YuhxD5dyLp68fFsYt7OXfeM1wJdqYEroJMn7zJYTokEjCkERvXyDHXVYZkIJHxe5u_ddGJr_JPxz2WdYxftxn31-pxhUP_41WpspWy2CQ42Ji3KTSObk4-4212g/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" data-original-height="521" data-original-width="958" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCcf4EYsso02zlBcj6YuhxD5dyLp68fFsYt7OXfeM1wJdqYEroJMn7zJYTokEjCkERvXyDHXVYZkIJHxe5u_ddGJr_JPxz2WdYxftxn31-pxhUP_41WpspWy2CQ42Ji3KTSObk4-4212g/s1600/1.png" /></span></a></div>
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">あるメジャーの分布や外れ値をみたいとき、箱ひげ図を使うことは多いと思います。</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8SzZuCpOaABWXsmsZ1k4-jYVjvog3OFwv3hmiPRA6tfWAvJE6NOvc5O3EQTC3ztU0rMDUn8WbTZ0gTWXhHErk5j5r4a8ewvZALJsfomUGiDlHaE7-nSKrMm8V2ozAmTVVh-7OKJltCk8/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" data-original-height="521" data-original-width="1118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8SzZuCpOaABWXsmsZ1k4-jYVjvog3OFwv3hmiPRA6tfWAvJE6NOvc5O3EQTC3ztU0rMDUn8WbTZ0gTWXhHErk5j5r4a8ewvZALJsfomUGiDlHaE7-nSKrMm8V2ozAmTVVh-7OKJltCk8/s1600/2.png" /></span></a></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">箱ひげ図を使った場合、全体としてマークが多い部分や外れ値はわかりますが、マークが多いと箱ひげ以上の情報が把握しづらく、どれくらい重なっているのかわかりません。また、上の方や下の方のマークにどんな項目があるか知りたくても重なりすぎているとマウスオーバーできず確認が難しいです。このあたりの不都合を解消するのがジッターチャートです。</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">ジッターチャートとは、近くにマークが集中して重なり合っていても、マークをランダムにずらして、ひとつひとつのマークを認識しやすくしたチャートです。ジッター</span><span lang="ja" style="font-family: arial, helvetica, sans-serif;">とは「微小な不規則な動き」という意味で、マークをわずかにずらして表現することからジッターチャート</span><span lang="ja" style="font-family: arial, helvetica, sans-serif;">と呼ばれているようです。</span><br />
<div style="font-family: "Yu Gothic"; margin: 0in;">
</div>
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span lang="ja"></span><span style="font-family: "arial" , "helvetica" , sans-serif;">上図の箱ひげ図の円を各年の中で左右にランダムに配置をずらすため、各年で横方向に軸を作って、縦長の散布図を年数分作るような処理をします。</span></div>
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja">横軸となる計算フィールドには、ランダムで揺れを作るために、各マークに番号を振り</span><span lang="en-US">(</span><span lang="ja">←</span><span lang="en-US">index</span><span lang="ja">関数</span><span lang="en-US">)</span><span lang="ja">、それを</span><span lang="en-US">13(</span><span lang="ja">←数字は</span><span lang="en-US">13</span><span lang="ja">でなくてももちろん良い</span><span lang="en-US">)</span><span lang="ja">で割った余りを出します。</span></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM-f_wpmkrFzIy8PB52XX4H7z7wvlWDCgIZ5787dOAa5w39dDPr4O9oylZ7tY3haiQTO7YvsFV0Tn7mUHSGd8Zf2yOV2_H5EqOUmLLrUEkAsbpRkhh7mnU5FDAghNZ5kh0-UuXVRO37ks/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" data-original-height="336" data-original-width="778" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM-f_wpmkrFzIy8PB52XX4H7z7wvlWDCgIZ5787dOAa5w39dDPr4O9oylZ7tY3haiQTO7YvsFV0Tn7mUHSGd8Zf2yOV2_H5EqOUmLLrUEkAsbpRkhh7mnU5FDAghNZ5kh0-UuXVRO37ks/s1600/3.png" /></span></a></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">これを列に入れ、列のヘッダーを非表示にし、幅を狭め、書式設定で見た目を調整すれば完成です。</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtoj83H6Edy2GbJ3ivkZnD4EmOaUPu7rsiKR0qtjfmOTa140jsie2Lt-B46TOdZbJDlx52Sjb7MAg5vcJKJa26qkxHmTHMlOw6yptuvwpK4p1ftfqlGR-KAPDJ1qkZ5sb1XS50CUmUeO0/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" data-original-height="521" data-original-width="1118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtoj83H6Edy2GbJ3ivkZnD4EmOaUPu7rsiKR0qtjfmOTa140jsie2Lt-B46TOdZbJDlx52Sjb7MAg5vcJKJa26qkxHmTHMlOw6yptuvwpK4p1ftfqlGR-KAPDJ1qkZ5sb1XS50CUmUeO0/s1600/4.png" /></span></a></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">ツールヒントと併せて活用すると、ひとつひとつのマークを確認しやすいですね。</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwAx59YHoB8cUMwnqLAI-ySRMg-r0iCMs2qD8_JiLZOWW32zQH2HZhyphenhyphenzFZhzPtIGF5XZoq5KbLeR_Lut1ipyfWxoJEG0ANdPk7E9V0hU7pBGWjdzaVN6ilMPhNul7rEp8fkfsXyeVGKDk/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" data-original-height="378" data-original-width="695" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwAx59YHoB8cUMwnqLAI-ySRMg-r0iCMs2qD8_JiLZOWW32zQH2HZhyphenhyphenzFZhzPtIGF5XZoq5KbLeR_Lut1ipyfWxoJEG0ANdPk7E9V0hU7pBGWjdzaVN6ilMPhNul7rEp8fkfsXyeVGKDk/s1600/5.png" /></span></a></div>
<span lang="ja"><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja">さらに、パラメータで項目を選択できるようにして、選択した項目のマークだけを目立たせるようにしても見やすいです。この</span><span lang="en-US">Viz</span><span lang="ja">では、パラメータと一致した項目のサイズを変え、一致した項目のみラベルを中央に出しています。詳しくは、</span><span lang="en-US">Tableau Public</span><span lang="ja">からダウンロードしてご確認ください。</span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfT9P4jZUuGCPFOtGn5O55fnI1j6mTVTEtNq7FSCXmWjr23sRBj8refVqUjGQCSadxQUpOAOikZoXzchetBPf8EisEHOVJ1ERe_qTsSaGGIup7D2pEPFVLtnj1-JauL-KWz3RbskrwXTg/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" data-original-height="574" data-original-width="1143" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfT9P4jZUuGCPFOtGn5O55fnI1j6mTVTEtNq7FSCXmWjr23sRBj8refVqUjGQCSadxQUpOAOikZoXzchetBPf8EisEHOVJ1ERe_qTsSaGGIup7D2pEPFVLtnj1-JauL-KWz3RbskrwXTg/s1600/6.png" /></span></a></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Nanae</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"></span><br />
<div class="tableauPlaceholder" id="viz1522048012808" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/Bl/BlogJitterChart/3_Jitter_Bonus/1_rss.png' style='border: none' /></a></noscript><span style="font-family: "arial" , "helvetica" , sans-serif;"><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='site_root' value='' /><param name='name' value='BlogJitterChart/3_Jitter_Bonus' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/Bl/BlogJitterChart/3_Jitter_Bonus/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /><param name='filter' value='publish=yes' /></object></span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><script type="text/javascript"> var divElement = document.getElementById('viz1522048012808'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='100%';vizElement.style.height=(divElement.offsetWidth*0.75)+'px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script></span><br />Nanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-79451684148590044192018-04-06T10:41:00.000+09:002018-04-06T11:08:15.989+09:00たった3クリック!積み上げ棒グラフをあるセグメントでソートする<span style="font-family: inherit;">
</span><br />
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span style="font-family: inherit;"><span lang="en-US">Nanae</span><span lang="ja">です。</span></span></div>
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span lang="ja"></span><span style="font-family: inherit;"> </span></div>
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span lang="ja"></span><span style="font-family: inherit;">積み上げ棒グラフを作ったとき、ある色セグメント(ある項目)で並び替えたいこともあると思います。ふつう計算式で対応すると思いますが、アドホックに分析しているときはグラフ上で操作した方が早いし簡単です。</span></div>
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span style="font-family: inherit;"></span> </div>
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span style="font-family: inherit;">では、</span><span style="font-family: inherit;"><span style="font-family: "ms ゴシック";">このグラフを、</span><span style="color: #ed7d31; font-family: "yu gothic";"><span style="color: orange;"><strong>オレンジのファーストクラス</strong></span></span><span style="font-family: "ms ゴシック";">で地域の棒を並び替えてみます。</span></span></div>
<span style="font-family: inherit;"> </span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfT12Q1_ZdXQp5yjMIs8GyLx0SDtD54oAewwJ4ZjqKA1Y30JxNkOW7-r3cpL4H-5KGmeRoYQ0y58TFflRDjWRBVKZohP2f45Oq0sw1brjdwgsCcUwDf1kGBPfIPLUi_1eNHRlx4qMOYIw/s1600/1.png" imageanchor="1"><span style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfT12Q1_ZdXQp5yjMIs8GyLx0SDtD54oAewwJ4ZjqKA1Y30JxNkOW7-r3cpL4H-5KGmeRoYQ0y58TFflRDjWRBVKZohP2f45Oq0sw1brjdwgsCcUwDf1kGBPfIPLUi_1eNHRlx4qMOYIw/s1600/1.png" /></span></a><br />
<span style="font-family: inherit;"> </span><br />
<span style="font-family: inherit;">
</span><span style="font-family: inherit;"><span lang="en-US">1</span><span lang="ja">クリック目:<span style="color: orange;"><strong>オレンジ</strong></span>の棒のどこかを押す</span></span><br />
<span style="font-family: inherit;">
</span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiITok55csOohzoexf243ir3u1-ds-QpbMV3AeYgo3ckhdL2Q6tjhhRpWh2HcD_iJDITToFNATze-elYW-Tk68x_oqiFmVHnG-x0z4mVSR1inkY8woSAfauHe5LNK6pCF2JUHyC-7FjpQU/s1600/2.png" imageanchor="1"><span style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiITok55csOohzoexf243ir3u1-ds-QpbMV3AeYgo3ckhdL2Q6tjhhRpWh2HcD_iJDITToFNATze-elYW-Tk68x_oqiFmVHnG-x0z4mVSR1inkY8woSAfauHe5LNK6pCF2JUHyC-7FjpQU/s1600/2.png" /></span></a><br />
<span style="font-family: inherit;"></span><br />
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span style="font-family: inherit;"><span lang="en-US">2</span><span lang="ja">クリック目:ツールヒントの中で、並び替えをしたい</span><span lang="ja" style="color: #ed7d31;"><strong><span style="color: orange;">ファーストクラス</span></strong></span><span lang="ja">を押す</span></span></div>
<span style="font-family: inherit;">
</span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieIjTLdjTIfPXZYJwiKRKd0LtlKqlufmpoTplygOyyCFImXUS0iQSpNYljRbD7g322IGjJofkSZt1CQzsBDeWmKinYaYn_iUtVAP1fzu5L9qFQPP4__jhdpwpDISkmAQp9U1gEp0W3p-M/s1600/3.png" imageanchor="1"><span style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieIjTLdjTIfPXZYJwiKRKd0LtlKqlufmpoTplygOyyCFImXUS0iQSpNYljRbD7g322IGjJofkSZt1CQzsBDeWmKinYaYn_iUtVAP1fzu5L9qFQPP4__jhdpwpDISkmAQp9U1gEp0W3p-M/s1600/3.png" /></span></a><br />
<span lang="ja"></span><br />
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span lang="ja"><span lang="ja"></span><span style="font-family: inherit;"> </span></span></div>
<span lang="ja">
</span><br />
<div style="font-family: "Yu Gothic"; margin: 0in;">
<span lang="ja"><span lang="ja"><span style="font-family: inherit;"><span lang="en-US">3</span><span lang="ja">クリック目:降順マークを押す</span></span></span></span></div>
<span lang="ja">
</span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf3QLiGUnYhwdT0hpmEhN7-NHfIqQ3Qn96nCKqrNT0LbJI_C6l4zaJOZvS6J1PewUOE3qeCCXSCUkiExrKXO3IoqS_OIZ9fo8fkp4XfDBd5b9k9y1_AKvyhlVknLJ77xOr8Wvhdm9aA6E/s1600/4.png" imageanchor="1"><span style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf3QLiGUnYhwdT0hpmEhN7-NHfIqQ3Qn96nCKqrNT0LbJI_C6l4zaJOZvS6J1PewUOE3qeCCXSCUkiExrKXO3IoqS_OIZ9fo8fkp4XfDBd5b9k9y1_AKvyhlVknLJ77xOr8Wvhdm9aA6E/s1600/4.png" /></span></a><br />
<span lang="ja"></span><span style="font-family: inherit;"> </span><br />
<span style="font-family: inherit;"><span lang="ja"><span lang="ja"><span lang="ja"><span lang="ja">完成!</span></span></span></span></span><br />
<span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMyXPRgDOXe_tNtRHAbdftKct4KAtI-QeNXZQNdKBGj1QRSm06ikoKvakGhERQQ_EP8fZn7f4FE1aDAZKwMoiiAoa78jtOob5tRQZjYx7qMDtBBMi2TQtS9M8_L55uy9nWLNT92kgX33s/s1600/5.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMyXPRgDOXe_tNtRHAbdftKct4KAtI-QeNXZQNdKBGj1QRSm06ikoKvakGhERQQ_EP8fZn7f4FE1aDAZKwMoiiAoa78jtOob5tRQZjYx7qMDtBBMi2TQtS9M8_L55uy9nWLNT92kgX33s/s1600/5.png" /></a></span><br />
<span style="font-family: inherit;"> </span><br />
<div style="font-family: "Yu Gothic"; font-size: 11pt; margin: 0in;">
<span lang="ja">九州は、全体の売上に対して、ファーストクラスの売上が少ないことに気づきます。でもそれを確認するなら、割合を表す100%積み上げ棒グラフにした方がわかりやすいです。</span>合計に対する割合で表現しながらある色セグメントで並び替えたいとき、計算式で対応すると少し複雑になりますので、今回お伝えした方法のメリットが活きてくると思います。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBHPlxYodpO8xy5G6wabtV00rk8XBeX9b-xoMrZB19xgdSiq7evI0VEnA5lVMzeq65JDLiW0Pn-BPuPXoayQ4NbrFl7ziMLhOOcMpIwuCF_BksBgKN_T7hX77waGYgiV3vooqM_cyLIOo/s1600/6.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="326" data-original-width="1064" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBHPlxYodpO8xy5G6wabtV00rk8XBeX9b-xoMrZB19xgdSiq7evI0VEnA5lVMzeq65JDLiW0Pn-BPuPXoayQ4NbrFl7ziMLhOOcMpIwuCF_BksBgKN_T7hX77waGYgiV3vooqM_cyLIOo/s1600/6.png" /></a></div>
<br />
以上、<span lang="en-US">10.3</span><span lang="ja">の新機能、ツールヒント内の選択機能を使ったアドホック分析の実用シーンのご紹介でした。</span></div>
<br />
<span style="font-family: inherit;">Nanae </span><br />
<br />
<span style="font-family: inherit;"> </span>Nanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-36679283183430992132018-03-23T14:52:00.001+09:002018-03-23T15:12:19.236+09:00ハイライト表でNULLにも色を塗るNanaeです。大変お久しぶりです。
<br />
<br />
今回は、ハイライト表を作ったとき、データが存在しないセルにも色を塗るTipsです。
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKkEAtSZ55FW0eA3MVJQnqc_UqwPBPpBRj9NvUlDWg2ohpO7FMHwt_MvU7N4WqfoaOhuSGQou24Y3CAbt4bC4B_0I_Xq_iDqXSLTYpvbbiw-94-n3nBp-W0IoYYMzsIcj-ttxTBMMqhFY/s1600/before.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="901" data-original-width="1516" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKkEAtSZ55FW0eA3MVJQnqc_UqwPBPpBRj9NvUlDWg2ohpO7FMHwt_MvU7N4WqfoaOhuSGQou24Y3CAbt4bC4B_0I_Xq_iDqXSLTYpvbbiw-94-n3nBp-W0IoYYMzsIcj-ttxTBMMqhFY/s1600/before.png" /></a></div>
<br />
白くなっているところはデータがないから色が塗られないわけなので、色を塗りたいところのデータをビュー上で生成します。
そのとき、表計算を行うことで、表全体のすべてのセルに数字を持たせることができます。他の関数でもよいですが、index()を使ってみます。
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStSsY-MiuEthHOSwQt25cOUIx-MfRGvFbPxbADd9httNv4FVQ6RlDlaZlT2Tc8lmhimR0MWGsKA5YXS_OEqvd8sE4eJQJtM_5lWAPXKgP1gKSypuTwVNQ8uJFcGQzVsYWhW7Oe6k9-Kg/s1600/index2.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStSsY-MiuEthHOSwQt25cOUIx-MfRGvFbPxbADd9httNv4FVQ6RlDlaZlT2Tc8lmhimR0MWGsKA5YXS_OEqvd8sE4eJQJtM_5lWAPXKgP1gKSypuTwVNQ8uJFcGQzVsYWhW7Oe6k9-Kg/s1600/index2.png" /></a><br />
<br />
このフィールドをどこかのシェルフ(列とか詳細とかツールヒントとかフィルターとか…)に入れます。すると、白かった部分も黄色に色が塗られます。
<br />
<br />
では、Index()のフィールドをツールヒントに入れてみます。空白のセルにも、ツールヒントで確認するとindex()に数字が入ったことがわかり、これによって色が塗られました。
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG4SNwcEzSARTPZzgQ7f3JAnQQ5eBEyU65GrnodTp5XTeBGwdwOwv4UKFVl5DU0gj-c40ILoFTgNN49y_co9JVUI1Hebrl4EzmNmP-7MVw3rNoxPPQbk0QkOFfh0FBmUaVuieBFezpEro/s1600/toolhint.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG4SNwcEzSARTPZzgQ7f3JAnQQ5eBEyU65GrnodTp5XTeBGwdwOwv4UKFVl5DU0gj-c40ILoFTgNN49y_co9JVUI1Hebrl4EzmNmP-7MVw3rNoxPPQbk0QkOFfh0FBmUaVuieBFezpEro/s1600/toolhint.png" /></a><br />
<br />
ツールヒントではなく、フィルターに入れて特別→全ての値にした方がきれいですね。
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqTgAC75vXuhoRSgRcnZMlCOLgytmPKydJ4gSZ6x2n9ajlxxz9IM_UFAsRbCkHo7bl2w05KXC2iDwqI6_BbE19HimEG1DH03xu7He7jEarqKBkVUrGv9TyxEYoNKsOEJdpao1L6djl2D0/s1600/filter.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqTgAC75vXuhoRSgRcnZMlCOLgytmPKydJ4gSZ6x2n9ajlxxz9IM_UFAsRbCkHo7bl2w05KXC2iDwqI6_BbE19HimEG1DH03xu7He7jEarqKBkVUrGv9TyxEYoNKsOEJdpao1L6djl2D0/s1600/filter.png" /></a><br />
<br />
これで完成です!<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXdDEqzgGotiGQ4XUdeVRiTssWel4-rownIFIEpEfUA_oYVpxPBIJhkVG6tbk8IP9TyIbJdbd3obUl-Fii7dB8HEXreQbMYXSG9tHLw2QR00JzXU-WhxRFKoHs-ItZbBfH2CLfw0-cYOo/s1600/after.png" imageanchor="1"><img border="0" height="380" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXdDEqzgGotiGQ4XUdeVRiTssWel4-rownIFIEpEfUA_oYVpxPBIJhkVG6tbk8IP9TyIbJdbd3obUl-Fii7dB8HEXreQbMYXSG9tHLw2QR00JzXU-WhxRFKoHs-ItZbBfH2CLfw0-cYOo/s640/after.png" width="640" /></a><br />
<br />
See you!
<br />
Nanae
<br />
<div class='tableauPlaceholder' id='viz1521785496772' style='position: relative'><noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/Bl/BlogNULL/NULL_1/1_rss.png' style='border: none' /></a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='site_root' value='' /><param name='name' value='BlogNULL/NULL_1' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/Bl/BlogNULL/NULL_1/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /><param name='filter' value='publish=yes' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1521785496772'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1100px';vizElement.style.height='850px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>Nanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com1tag:blogger.com,1999:blog-2398716554755334461.post-27484874369673332222017-05-26T18:08:00.000+09:002017-05-26T18:08:58.668+09:00R連携でTwitterをセンチメント分析Nanaeです。<br />
<br />
Tableau×Rの連携で、文章の中身を分析するセンチメント分析を行います。データは、Web Data Connectorで抜いてきたTwitterデータを使います。<br />
<u><br /></u>
<u>■やってみた分析</u><br />
センチメント分析の中でも以下2つをやってみました。(※英語のテキストが対象です)<br />
<span style="color: orange;"><b>Emotion分析</b></span>:<br />
テキストを6種類の感情+それ以外、の7つに分類する分析。6種類の感情とは、Anger, disgust, fear, joy, sadness, surprise。<br />
<b><span style="color: orange;">Polarity分析</span></b>:<br />
いわゆるネガポジ分析。テキストを、Positive, neutral, negativeの3つに分類する分析。<br />
<br />
<u>■Rで使うパッケージ</u><br />
これらの分析を行うために必要なRのパッケージは3つあります。<br />
1. <b style="background-color: white;"><span style="color: orange;">tm</span></b><br />
テキストマイニング用のパッケージで、テキストをみて、関連性をみつけたり、グルーピングしてまとめたり、分類したりする。<br />
2. <b><span style="color: orange;">rstem</span></b><br />
語幹が異なる同じ単語をマッチングさせる。例:swim, swims, swimming<br />
3. <b><span style="color: orange;">sentiment</span></b><br />
センチメント分析を行うパッケージで、これを動かすにはtmとrstemが必要。sentimentのパッケージそのものは現在削除されているらしく、<span style="color: #3d85c6;">install.packages("sentiment")</span>は利用できない。代替手段としてGitHubから落とす方法を利用する。<br />
<br />
<u>■R:準備</u><br />
これらのパッケージをRStudioからRにインストールして読み込ませます。<br />
(Rで直接トライしてもうまくできず。。。RStudioから行いました。日本語化が原因!?)<br />
以下、RStudioから行ってください。<br />
<br />
TableauとRを連携させるとき、まずは必ずこれが必要。Rserveを読み込ませます。<br />
<span style="background-color: white;"><span style="color: #3d85c6;">library(Rserve); Rserve()</span></span><br />
<br />
tmとrstemをインストールします。<br />
<span style="background-color: white;"><span style="color: #3d85c6;">install.packages("tm")</span></span><br />
<span style="background-color: white;"><span style="color: #3d85c6;">install.packages("Rstem")</span></span><br />
<br />
sentimentを使うために、devtoolsというパッケージをインストールしてから、GitHubからsentimentをインストールして読み込ませます。<br />
<span style="color: #3d85c6;">install.packages("devtools")</span><br />
<span style="color: #3d85c6;">library(devtools) </span><br />
<span style="color: #3d85c6;">install_github("aloth/sentiment/sentiment")</span><br />
<span style="color: #3d85c6;">library(sentiment)</span><br />
<br />
これでR側の準備は完了。<br />
<br />
<span style="color: #6aa84f;"><b>★テストデータでTRY</b></span><br />
<u>■テストデータ</u><br />
次に、今回使うデータです。最初はわかりやすいように、サンプルとして5レコードのデータを使ってみました。そのあとに同じことをTwitterデータで行います。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzIgMd_ISLQOkBfnm_ZsWlF3kfkYAgk3j9GYQIfNXyeyl26DXgZDOK0vEaIHd2PnOH15mtPWypPOMX-KvX-7yLRIYTztlLmSPffVbA2WIa-IANodMF6x9hYObrXiCYihhNDuVMkGxxV9c/s1600/data.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzIgMd_ISLQOkBfnm_ZsWlF3kfkYAgk3j9GYQIfNXyeyl26DXgZDOK0vEaIHd2PnOH15mtPWypPOMX-KvX-7yLRIYTztlLmSPffVbA2WIa-IANodMF6x9hYObrXiCYihhNDuVMkGxxV9c/s1600/data.png" /></a><br />
<br />
各レコードに対して、感情とネガポジを出していきます。<br />
<br />
<u>■Tableau:計算フィールドの作成</u><br />
Tableauに移って、感情判定用の計算フィールド: get_emotionを作成します。計算フィールドの中身はこちら。<br />
<span style="color: #3d85c6;">SCRIPT_STR('</span><br />
<span style="color: #3d85c6;">library(sentiment)</span><br />
<span style="color: #3d85c6;">get_emotion(.arg1,algorithm="bayes") '</span><br />
<span style="color: #3d85c6;">,ATTR([Status Text]))</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTf_emO_2XxYW05M66rvHDZQijNjvRMLqK7k2XUKf3zAibi9lKaMstda8PJKVe9Y7AwT4CQFUzj3PMM8fqe5_ww8Z8pINvOfcG3f-wguvViTzhSs5_7IAyZDVHR3mKzk7driWiu-KB4Ug/s1600/emotion.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTf_emO_2XxYW05M66rvHDZQijNjvRMLqK7k2XUKf3zAibi9lKaMstda8PJKVe9Y7AwT4CQFUzj3PMM8fqe5_ww8Z8pINvOfcG3f-wguvViTzhSs5_7IAyZDVHR3mKzk7driWiu-KB4Ug/s1600/emotion.png" /></a><br />
<br />
ネガポジ用の計算フィールド:get_polarityも作成します。<br />
<span style="color: #3d85c6;">SCRIPT_STR('</span><br />
<span style="color: #3d85c6;">library(sentiment)</span><br />
<span style="color: #3d85c6;">get_polarity(.arg1,algorithm="bayes")'</span><br />
<span style="color: #3d85c6;">,ATTR([Status Text]))</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIvxRpYAag9_lljyDLNZMe7xthYBFGERy4etJnvyQNDCDJqUl9BVGgh18ipbUxgMLl-8IFQPt_Hnn7IEK22HBR3BRQVGROiziujy1LD76XOjeYkLH9YeafXla7gwC2cNq22qZZ023ouR4/s1600/polarity.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIvxRpYAag9_lljyDLNZMe7xthYBFGERy4etJnvyQNDCDJqUl9BVGgh18ipbUxgMLl-8IFQPt_Hnn7IEK22HBR3BRQVGROiziujy1LD76XOjeYkLH9YeafXla7gwC2cNq22qZZ023ouR4/s1600/polarity.png" /></a><br />
<u><br /></u>
<u>■Tableau:Vizの作成</u><br />
各レコード=各テキストに対して、感情とネガポジを判定させます。<br />
列に、元データにある"sentence"と、作成した計算フィールドの"get_emotion"と"get_polarity"を行に入れます。R連携した計算フィールドは表計算となるので、「次を使用して計算」は「セル」を指定しておきます。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ7dmrLZTCEEAdnYR5YA2jGH-Vs5NtFDpn3OuMMxyhuyRTY2WszheRKW_NOCDICWKGpGlqz7etMAmlTwptTfaqy56PvwMOWRKVT2t9ahsPaSiaWjnxx5EkEvJQwSNROy1lE4CPi8Ho5cg/s1600/%25E3%2583%25AA%25E3%2582%25B9%25E3%2583%2588.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ7dmrLZTCEEAdnYR5YA2jGH-Vs5NtFDpn3OuMMxyhuyRTY2WszheRKW_NOCDICWKGpGlqz7etMAmlTwptTfaqy56PvwMOWRKVT2t9ahsPaSiaWjnxx5EkEvJQwSNROy1lE4CPi8Ho5cg/s1600/%25E3%2583%25AA%25E3%2582%25B9%25E3%2583%2588.png" /></a><br />
<br />
判定されました!1行目"He is sad."を見てみると、これは"sad"を含んでおり、感情はsadness、ネガポジはnegativeとなっていて、きちんと判定されているようです!<br />
<br />
<span style="color: magenta;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu3DajDaZYTNCbcjP_7t1c-CLXQgLw0q9MqkediiRZFksbVtZ0WvCM1SVYcj0rVwAA1zErFhKrqV_LkN3OQfRhTi8mQmZppqfhAxl3YpJ4yv1F2EGupNkCGgUeZR21jzcqfymoXNvGMc0/s1600/dash.JPG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu3DajDaZYTNCbcjP_7t1c-CLXQgLw0q9MqkediiRZFksbVtZ0WvCM1SVYcj0rVwAA1zErFhKrqV_LkN3OQfRhTi8mQmZppqfhAxl3YpJ4yv1F2EGupNkCGgUeZR21jzcqfymoXNvGMc0/s1600/dash.JPG" /></a></span><br />
<b><span style="color: #6aa84f;"><span style="color: magenta;"><br /></span>
<span style="color: magenta;">★Twitterデータで実践!</span></span></b><br />
<u>■Twitterデータ</u><br />
それでは次に本番、Twitterデータです。Twitterのデータを取るためにはWeb Data Connectorが必要です。コネクタは、ここのものを使わせてもらいました。<br />
<a href="http://files.tableaujunkie.com/twittersearch/twitterwebconnect.html" target="_blank"><span style="color: #0b5394;">http://files.tableaujunkie.com/twittersearch/twitterwebconnect.html</span></a><br />
<br />
検索は”@tableau"としました。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ-cky76qrmwJIj5EI6aI_3gJbRsPZY9V_ys9I2ZLgHmMwW7GdefiTM9iT35Z7UT4o2KpDiz81SPU8oWazKrlerTZD4EBpzdkILL4CCmYPQtzarb3ko_1qkWCOsU1gssuQc68dWvVVURg/s1600/WDC.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ-cky76qrmwJIj5EI6aI_3gJbRsPZY9V_ys9I2ZLgHmMwW7GdefiTM9iT35Z7UT4o2KpDiz81SPU8oWazKrlerTZD4EBpzdkILL4CCmYPQtzarb3ko_1qkWCOsU1gssuQc68dWvVVURg/s1600/WDC.PNG" /></a><br />
<br />
<u>■Tableau:計算フィールドの作成とVizの作成</u><br />
計算フィールドはサンプルデータのときと同じです。メジャー名を変えるだけです。サンプルデータのときと同様、作成した計算フィールドを使うときは、「次を使用して計算」から「セル」を指定するのを忘れないようにしてくださいね。<br />
<br />
以上で、Twitterのデータを使ったセンチメント分析が実現します!<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr0HF2XiJVgZt2kKKDGcHzP2DgddrJqJZjMZ-jm0TOlVLHOjPfmsF2WAyVT8N8XYpUtNgQTD86rRTAS0dTwwEhWAjHMUNdlz9aiSiXYVHtuMrW1iYL2Bb8xbtKBAzuMsBmjaj-hxZjCMU/s1600/sentiment+r+twitter.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr0HF2XiJVgZt2kKKDGcHzP2DgddrJqJZjMZ-jm0TOlVLHOjPfmsF2WAyVT8N8XYpUtNgQTD86rRTAS0dTwwEhWAjHMUNdlz9aiSiXYVHtuMrW1iYL2Bb8xbtKBAzuMsBmjaj-hxZjCMU/s1600/sentiment+r+twitter.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
今回は、R連携、Web Data ConnectorというTableauの外とつなぐ機能を使いました。<br />
いろいろ組み合わせると、どんどん可能性が広がっていきますね!<br />
<br />
NanaeNanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com1tag:blogger.com,1999:blog-2398716554755334461.post-26918908379550189822017-04-28T12:12:00.000+09:002017-04-28T12:12:02.784+09:00リストから選んだ全く別のウェブサイトを表示Nanaeです。こんにちは。<br />
<br />
URLフィルターに関連するテクニックです。選択した項目ごとに全く別のWebサイトを表示させる方法です。<br />
<br />
★URLアクション<br />
通常、選択した項目によって表示させるWebサイトを変えたいとき、URLアクションを使おうと考えると思います。たとえばこんな感じ。上の地図でJapanをクリックするとWikipediaの中で"Japan"のWikipediaサイト、Chinaをクリックすると"China"のWikipediaサイトを表示させることができます。<br />
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz9WYXe2ua9Swjk5C-nBQ8pQsBg1gBQIL6wTEDofz7UlatmSa3f_-8-J7pxIBX9gVYJ2bltSlx2xNERJYwBWe08xCUtjOx76ypWu14huseJBlxSFmUPnQ2vzrr9P0JaxlOa4XWfww7P2U/s1600/%25E9%2580%259A%25E5%25B8%25B8.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz9WYXe2ua9Swjk5C-nBQ8pQsBg1gBQIL6wTEDofz7UlatmSa3f_-8-J7pxIBX9gVYJ2bltSlx2xNERJYwBWe08xCUtjOx76ypWu14huseJBlxSFmUPnQ2vzrr9P0JaxlOa4XWfww7P2U/s1600/%25E9%2580%259A%25E5%25B8%25B8.PNG" /></a></div>
<div>
<br /></div>
<div>
そのとき、URLアクションの設定画面では、Wikipediaの検索ワード前までのURLを入れ、連動させたいフィールドをそのうしろに入れますよね。</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUrwtIIh5mSZQnbBJdUVSpdsGyBF9s01UMUVy82F23gC-mC70KMZYqXaXfYyJ0zdK0H-2ckqwXxmj5Z1xwtjEqP-bdkpRsMsQKswcLX13Wd7UeVPhR4XEaxioGA8hpfXyalA1tJj3X_XI/s1600/URL%25E3%2582%25A2%25E3%2582%25AF%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3_%25E9%2580%259A%25E5%25B8%25B8.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUrwtIIh5mSZQnbBJdUVSpdsGyBF9s01UMUVy82F23gC-mC70KMZYqXaXfYyJ0zdK0H-2ckqwXxmj5Z1xwtjEqP-bdkpRsMsQKswcLX13Wd7UeVPhR4XEaxioGA8hpfXyalA1tJj3X_XI/s1600/URL%25E3%2582%25A2%25E3%2582%25AF%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3_%25E9%2580%259A%25E5%25B8%25B8.png" /></a></div>
<div>
<br />
★パラメータを使ったURL連動</div>
<div>
<div>
ここまでは通常の使い方ですが、選択した項目によって、全く別のサイトを表示させたいこともあると思います。Wikipedia内など1つのサイト内でのページではなく、たとえば、"日本"を選択したときは日本が運営している日本観光サイト、"中国"を選択したときは中国が運営している中国観光サイトなど、全く別のWebサイトに飛びたいといったニーズです。これは、URLアクションではなくパラメーターを使うことで実現します。<br />
<br />
(ここから先で作るダッシュボードの完成図)</div>
</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj0j-5cjuIly30QcCjQMw0O_SKnGj5_2sr5MMgl6IJc5D_DdmutCKsJ3Tg-Hr24FLX3ZaQNNWTDLpS_ODoujF_noDUbhm0udTqoLFN7598lxqnzKvke20p45Ofk80wxKPKEwbpLTA5qHE/s1600/%25E5%2585%25A8%25E3%2581%258F%25E5%2588%25A5%25E3%2581%25AE%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%2588.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj0j-5cjuIly30QcCjQMw0O_SKnGj5_2sr5MMgl6IJc5D_DdmutCKsJ3Tg-Hr24FLX3ZaQNNWTDLpS_ODoujF_noDUbhm0udTqoLFN7598lxqnzKvke20p45Ofk80wxKPKEwbpLTA5qHE/s1600/%25E5%2585%25A8%25E3%2581%258F%25E5%2588%25A5%25E3%2581%25AE%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%2588.PNG" /></a></div>
<div>
<br />
☆パラメータを使って全く別のWebページを表示させる</div>
<div>
まず、パラメーターを作成します。URLは、このパラメーター作成画面でリストとして入力します。右側の表示名は、シート内でパラメーターを選択するリストとして出てくる文字なので、わかりやすく国の名前を書いておきます。</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNEy-qnEWvBjGeZgqUzd4QGBndM6xxzkLpa6udFsT_MhMOIJbLzx1EZCIRzxIbLEaomRk98l6XqueOkNYJfw6nsUmrJpQ37sF77mpTs0jFM3hGBQe9kDMyL0_K-gZkYuEkKdeYbM6EeR0/s1600/%25E3%2583%2591%25E3%2583%25A9%25E3%2583%25A1%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25BC.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNEy-qnEWvBjGeZgqUzd4QGBndM6xxzkLpa6udFsT_MhMOIJbLzx1EZCIRzxIbLEaomRk98l6XqueOkNYJfw6nsUmrJpQ37sF77mpTs0jFM3hGBQe9kDMyL0_K-gZkYuEkKdeYbM6EeR0/s1600/%25E3%2583%2591%25E3%2583%25A9%25E3%2583%25A1%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25BC.png" /></a></div>
<div>
<br /></div>
<div>
これをダッシュボード内に配置するWebページのオブジェクトに入れ込みます。このURLの入力エリアには、パラメーターも入れられるのです!</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPqy4bVUdxwvLrOtn_pvh3xohoY0Y_4izMfmuF-oVVMgPb_frnnIMeSugzPvmX345JEE_PrTwuqiXX4RO4BidaVl66zWAE5z4_m0fMEZKY-Ah9080xHHPsgblKkwZJ5HOyOQ4NRf8MXfE/s1600/URL%25E3%2581%25AE%25E7%25B7%25A8%25E9%259B%2586.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPqy4bVUdxwvLrOtn_pvh3xohoY0Y_4izMfmuF-oVVMgPb_frnnIMeSugzPvmX345JEE_PrTwuqiXX4RO4BidaVl66zWAE5z4_m0fMEZKY-Ah9080xHHPsgblKkwZJ5HOyOQ4NRf8MXfE/s1600/URL%25E3%2581%25AE%25E7%25B7%25A8%25E9%259B%2586.PNG" /></a></div>
<div>
<br /></div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQEZgfSCfdem9RZSgweE6haMDFfHvFhnAs5U3TxU-7UW8RtbU5M94AIT-NkgaN3iNhyphenhyphenGLHLj1_hhGkPCrBjeSFs4giRNIzV3qCDI_OpJJoh9teMtiKGL7B0KH2zzeo0tUpq9Uox_9sSKk/s1600/URL%25E3%2581%25AE%25E7%25B7%25A8%25E9%259B%25862.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQEZgfSCfdem9RZSgweE6haMDFfHvFhnAs5U3TxU-7UW8RtbU5M94AIT-NkgaN3iNhyphenhyphenGLHLj1_hhGkPCrBjeSFs4giRNIzV3qCDI_OpJJoh9teMtiKGL7B0KH2zzeo0tUpq9Uox_9sSKk/s1600/URL%25E3%2581%25AE%25E7%25B7%25A8%25E9%259B%25862.png" /></a></div>
<div>
<div>
<br /></div>
<div>
これで、パラメータに連動した、全く別のWebサイトを表示させることができるようになります!</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbbevTueuRoFTdgDzRagAp6T54hKE9hljGMmp02n4V1qBZ6MexZYj6nlHeh-gl3rXiaLr8zQJBLQGKRR7Db_tUBJ3-OwoExUlZ_j2Mg96Wa8niwaTeYkOgvT0Vj6Ahz-ohFXkszr9nABM/s1600/Web%25E3%2583%259A%25E3%2583%25BC%25E3%2582%25B8%25E3%2581%25AE%25E3%2581%25BF.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbbevTueuRoFTdgDzRagAp6T54hKE9hljGMmp02n4V1qBZ6MexZYj6nlHeh-gl3rXiaLr8zQJBLQGKRR7Db_tUBJ3-OwoExUlZ_j2Mg96Wa8niwaTeYkOgvT0Vj6Ahz-ohFXkszr9nABM/s1600/Web%25E3%2583%259A%25E3%2583%25BC%25E3%2582%25B8%25E3%2581%25AE%25E3%2581%25BF.PNG" /></a><br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: Meiryo; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<div style="margin: 0px;">
<br /></div>
<div style="margin: 0px;">
☆パラメータを使ってフィルターされたVizを作る</div>
</div>
</div>
<div>
次に、パラメータで日本が選択されているとき、上のシートにある地図では日本だけに絞った表示をしたいと思います。</div>
<div>
<br /></div>
<div>
地図ではこんなデータを使いました。観光での人気 Top 100の都市における2015年の入国人数のデータで、東アジアだけをピックアップしています。</div>
</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO7SSGMHSr1aOgCdRTIdjq6A0mjN2STteTydwF3jWeCxmBrsxpu-Xv-Xv5v7mgkd05F25Gn_q6q_8OPItUWgYKx7kP0iUEDBVagI7IjTd9rfNUwcEYPCGWxzWnZbcFE4ZP8QtAgTPR1sg/s1600/%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO7SSGMHSr1aOgCdRTIdjq6A0mjN2STteTydwF3jWeCxmBrsxpu-Xv-Xv5v7mgkd05F25Gn_q6q_8OPItUWgYKx7kP0iUEDBVagI7IjTd9rfNUwcEYPCGWxzWnZbcFE4ZP8QtAgTPR1sg/s1600/%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF.png" /></a></div>
<div>
<br /></div>
<div>
まず、国と都市名でマッピングを行います。<br />
次に、パラメータで日本が選択されているときには、Japanの地図だけを表示させるような仕組みを作ります。日本が選択されているとき、内部でパラメータがもっている値は日本のサイトのURLですので、URLとJapanを対応させる必要があります。このやり方を2種類お伝えします。<br />
<br />
①計算フィールドを使う方法<br />
URLとデータにある国を一つづつ対応させます。処理内容はわかりやすいと思います。</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip9GT_OekTMLNFSu1ofO9nH2V-hw3qXkrzh-MwkcuOdsYmxtNB92QlI9xrR0Ch-hx10__PLtR0pr67sNPDLPe0yWPUPedTeBvY1F9HxFxwSgQxWAt68ASWktPCXDUM4wiuG0iC4giJ-M4/s1600/%25E8%25A8%2588%25E7%25AE%2597%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2589%25EF%25BC%2590.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip9GT_OekTMLNFSu1ofO9nH2V-hw3qXkrzh-MwkcuOdsYmxtNB92QlI9xrR0Ch-hx10__PLtR0pr67sNPDLPe0yWPUPedTeBvY1F9HxFxwSgQxWAt68ASWktPCXDUM4wiuG0iC4giJ-M4/s1600/%25E8%25A8%2588%25E7%25AE%2597%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2589%25EF%25BC%2590.png" /></a></div>
<div>
<br /></div>
<div>
こんな流れで、Japan↔URL↔日本を引き継いでいます。</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8JDVxmEAwuTKd4PwVJUsHFEOSP_1qeNO3xhLgJYtLVeVZrCcvpkogAvA5Qhpui-CVVNfadkJixL1KYO4702K4sYo-ewVN8w014CHNReJCI8Z-voDWP3QwNClZWnbimfW2jIdMGM4QlNs/s1600/%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2581%25AE%25E6%25B5%2581%25E3%2582%258C.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8JDVxmEAwuTKd4PwVJUsHFEOSP_1qeNO3xhLgJYtLVeVZrCcvpkogAvA5Qhpui-CVVNfadkJixL1KYO4702K4sYo-ewVN8w014CHNReJCI8Z-voDWP3QwNClZWnbimfW2jIdMGM4QlNs/s1600/%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2581%25AE%25E6%25B5%2581%25E3%2582%258C.png" /></a></div>
<div>
<br /></div>
<div>
最後に、パラメーターで日本が選択されているとき、地図の方はJapanのデータだけ見せるようにするために、上の計算フィールドとデータにある国のフィールドが一致しているかどうかの計算フィールドを作ります。</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheXCKVxqe4MG8Y6YPjotSg7gk-h4rUPyxvxL1TajblsC3oIbnicq2vmk9dfRmKgggO46yYlNJmC8Q_2JYQGCYKy8oZHgXj0UK2PiSRG6y1T_qmGA3TTlGVLN8AhG-9BgXfwBczxcEA2UY/s1600/%25E8%25A8%2588%25E7%25AE%2597%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2589.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheXCKVxqe4MG8Y6YPjotSg7gk-h4rUPyxvxL1TajblsC3oIbnicq2vmk9dfRmKgggO46yYlNJmC8Q_2JYQGCYKy8oZHgXj0UK2PiSRG6y1T_qmGA3TTlGVLN8AhG-9BgXfwBczxcEA2UY/s1600/%25E8%25A8%2588%25E7%25AE%2597%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2589.png" /></a></div>
<div>
<br /></div>
<div>
これを満たすとき、すなわち"真"のときだけ、地図を表示させるフィルターを設定します。</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcLx9NEaKwW6rnSoxd63wHwQAQqpcpQtAJg640OLtHuFYLt5HqJ5mRcEh-DGLwR3aH9xrjxeIMXhA9mwStarXDYgN-u8ggmewcuraboQOpbWVp6UmoUX0XoFz738MiQem-oz2riu8-AUI/s1600/%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25AB%25E3%2582%25BF%25E3%2583%25BC.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcLx9NEaKwW6rnSoxd63wHwQAQqpcpQtAJg640OLtHuFYLt5HqJ5mRcEh-DGLwR3aH9xrjxeIMXhA9mwStarXDYgN-u8ggmewcuraboQOpbWVp6UmoUX0XoFz738MiQem-oz2riu8-AUI/s1600/%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25AB%25E3%2582%25BF%25E3%2583%25BC.png" /></a></div>
<div>
<br />
②プライマリグループを使う方法<br />
URLと国の対応表を作成して、接続します。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA8aPmXvtnpHiP9SROhH-AOYNj5xJMnwG_Jd8xk28e57HQLXgYcbu2yrnzGn2I3l0PvI5P0wqU7hdY4nCI22ezBtlmGjeXziXKFaj3P3yx61a_OYp2Tn6tl6FT-IGBYiu6HpuJgb1BNAY/s1600/URLdata.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA8aPmXvtnpHiP9SROhH-AOYNj5xJMnwG_Jd8xk28e57HQLXgYcbu2yrnzGn2I3l0PvI5P0wqU7hdY4nCI22ezBtlmGjeXziXKFaj3P3yx61a_OYp2Tn6tl6FT-IGBYiu6HpuJgb1BNAY/s1600/URLdata.png" /></a><br />
<br />
国でリレーションを張ってブレンドしてから、行の中に、プライマリとして元のデータから国、セカンダリとしてURLと国の対応データからURLを入れ、プライマリグループを作成します。<br />
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaoLIJmainI6Bhpo4iSuf7xv01PM4D-5FdRp0k04OsftGMHRKM66zX0DxbvMuEZeRpClC2CFIZNSV5D5y6sR190lPKB8cMVqs7PKQldjQB8EDq4g9qaCCi-NCpoLn0dEl9451drKwdSWY/s1600/%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25AA%25E3%2582%25B0%25E3%2583%25AB%25E3%2583%25BC%25E3%2583%2597%25E3%2581%25AE%25E4%25BD%259C%25E6%2588%2590.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaoLIJmainI6Bhpo4iSuf7xv01PM4D-5FdRp0k04OsftGMHRKM66zX0DxbvMuEZeRpClC2CFIZNSV5D5y6sR190lPKB8cMVqs7PKQldjQB8EDq4g9qaCCi-NCpoLn0dEl9451drKwdSWY/s1600/%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25AA%25E3%2582%25B0%25E3%2583%25AB%25E3%2583%25BC%25E3%2583%2597%25E3%2581%25AE%25E4%25BD%259C%25E6%2588%2590.png" /></a></div>
<br />
元のデータに、URLというグループができました。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsmGQFWgTQsHU8g_gqkByqKOGN60D9s3M5O-4-Q2juw4fQyEtiSPgYtCZ-OOUIHfh8C9vjkpXpUu3lydxyxYKglIL2m_FaYm37xb7Tx2C8j7mnbryKriJsuBdC6A238HwbBEdvSqL1L1M/s1600/%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25AA%25E3%2582%25B0%25E3%2583%25AB%25E3%2583%25BC%25E3%2583%2597%25E5%258C%2596.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsmGQFWgTQsHU8g_gqkByqKOGN60D9s3M5O-4-Q2juw4fQyEtiSPgYtCZ-OOUIHfh8C9vjkpXpUu3lydxyxYKglIL2m_FaYm37xb7Tx2C8j7mnbryKriJsuBdC6A238HwbBEdvSqL1L1M/s1600/%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25AA%25E3%2582%25B0%25E3%2583%25AB%25E3%2583%25BC%25E3%2583%2597%25E5%258C%2596.PNG" /></a><br />
<br />
国をグループ化したものですが、新しくURLという列ができているような動きをします。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSwSScQkwJj45ZQDazirrFdWuXDCdNwn8jeRePCZUDy0INMU-Xrfe2ww5IGX0Dl_1GYSc_TaCfrVGCELSXYxF1ntM0HjtFKCgP7a8ZbE0p8rSE9noULGU9dd_b9ca6xIRCdsgJclGqAWw/s1600/%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25AA%25E3%2582%25B0%25E3%2583%25AB%25E3%2583%25BC%25E3%2583%2597_%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSwSScQkwJj45ZQDazirrFdWuXDCdNwn8jeRePCZUDy0INMU-Xrfe2ww5IGX0Dl_1GYSc_TaCfrVGCELSXYxF1ntM0HjtFKCgP7a8ZbE0p8rSE9noULGU9dd_b9ca6xIRCdsgJclGqAWw/s1600/%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25AA%25E3%2582%25B0%25E3%2583%25AB%25E3%2583%25BC%25E3%2583%2597_%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF.PNG" /></a><br />
<br />
こちらは元のデータにURL列を持ってきているので、流れはもっとシンプルになります。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnOLjGuIgG0f8zNpfKa0Zpcg_V910fMPhkL-BoHPK_OpWjraBKtFe8l78cECsZ4VCUZlgiHEHYHTsG_UOw-_4lJYL4Hk6SvhO94ozPvHiCYgZqS8zfO4_HL3SLnZUXWo-WhrNRlOEwmMM/s1600/%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2581%25AE%25E6%25B5%2581%25E3%2582%258C2.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnOLjGuIgG0f8zNpfKa0Zpcg_V910fMPhkL-BoHPK_OpWjraBKtFe8l78cECsZ4VCUZlgiHEHYHTsG_UOw-_4lJYL4Hk6SvhO94ozPvHiCYgZqS8zfO4_HL3SLnZUXWo-WhrNRlOEwmMM/s1600/%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2581%25AE%25E6%25B5%2581%25E3%2582%258C2.png" /></a><br />
最後に、上のURL列とパラメータが一致しているかどうかの計算フィールドを作り、"真"でフィルターをかけます。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZEte1jmZi-fdT4zXvMdrjLI1E2jcmHsaYP036Qit9Vx7mMAXu7Uol3uUgFe3NmckmI1VePlVe81dmdbhQVMzKVWfcDEOwI_oS-OWq5WPc-3yRooaAyoizyjgY990HqnLU7gUJdbkeHaY/s1600/%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25AB%25E3%2582%25BF%25E3%2583%25BC_%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25AA.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZEte1jmZi-fdT4zXvMdrjLI1E2jcmHsaYP036Qit9Vx7mMAXu7Uol3uUgFe3NmckmI1VePlVe81dmdbhQVMzKVWfcDEOwI_oS-OWq5WPc-3yRooaAyoizyjgY990HqnLU7gUJdbkeHaY/s1600/%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25AB%25E3%2582%25BF%25E3%2583%25BC_%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25AA.png" /></a><br />
<br /></div>
<div>
<div>
これで、パラメーターで国名を選択すると、その国のデータにフィルターがかかった地図と、選択した国のWebサイトが表示されるようになりましたー!!!</div>
<div>
ぜひ使ってみてください★</div>
<div>
<br /></div>
<div>
Nanae</div>
</div>
<div>
<div class="tableauPlaceholder" id="viz1487297438400" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/_9/_9695/2/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='site_root' value='' /><param name='name' value='_9695/2' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/_9/_9695/2/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1487297438400'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1104px';vizElement.style.height='895px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
</div>
Nanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com1tag:blogger.com,1999:blog-2398716554755334461.post-51964589473497047322017-03-15T15:56:00.000+09:002017-03-17T01:49:13.144+09:00クラスター分析をやってみよう! ~アルコール消費量から都道府県をグルーピングする~皆さまこんにちは、 bashiiです。<br />
<br />
突然ですが、 V10の新機能、クラスタリング(クラスター分析)機能って、みなさん使われていますか?<br />
とても便利な機能なのですが、まだ使ったことがない・・・いまいち使いどころがわからない・・・といった方もいらっしゃるのではないでしょうか?<br />
<br />
ということで; 今回は Tableau Version 10からの新機能であるクラスタリング機能について、面白い利用方法を考察してみたいと思います。<br />
<br />
最終的にはアルコール消費量のデータからクラスター分析を用いて県民性を覗いてみたいと思います。 <br />
(↓イメージ図)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsS9HFRhjdYbQC_JdFEB_kybK4Gbdkqw6n4m30f7miqLEo9Eqml5zxdYkkCuw45XuAZ4FzxtxwMb8VV9wUZFQqsClkx5sYrzi9XEok_9-DpCN7JdKh2x0dwgwK6n7Z-rk9KUshBG1mzYU/s1600/p1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsS9HFRhjdYbQC_JdFEB_kybK4Gbdkqw6n4m30f7miqLEo9Eqml5zxdYkkCuw45XuAZ4FzxtxwMb8VV9wUZFQqsClkx5sYrzi9XEok_9-DpCN7JdKh2x0dwgwK6n7Z-rk9KUshBG1mzYU/s320/p1.png" width="320" /></a></div>
<br />
<br />
◆ クラスタリングとは何か<br />
クラスタリングとは簡単にいうと、物事をその特徴に応じて、いい感じのグループに分けるということです。これをクラスター分析と言い、機械学習の一つとして位置づけられます。<br />
<br />
ビジネスの分野でもマーケティングの戦略立案や製品ポジショニングの分析などに利用されています。<br />
例えば製品の中で季節ごとの売れ筋商品のグループを作り、製品グループごとのキャンペーンを行ったり、顧客の中からお得意様グループを見つけ出し、そのグループに対して特別なキャンペーンを行ったり・・・といった具合に、何かの施策をするときに特定のグループ分割を把握することでメリットが得られるシーンがあります。<br />
このようなグルーピングを機械学習の力で行い、新たな気づきを得ることがクラスター分析の醍醐味と言えるでしょう。<br />
クラスター分析の手法(データをグループに分割するアルゴリズム)としては、K-meansアルゴリズムが有名で、Tableau でもこの方法を採用しています。<br />
<br />
(クラスター分析の厳密な定義については、いろいろなリンクがありますのでWebで検索ください。この記事では概要を感覚的に理解することを趣旨とさせていただきますのでご了承ください。)<br />
<br />
◆ K-meansの仕組み<br />
Tableauでも利用されているK-means法について簡単な説明をいたします。<br />
<br />
1.まずクラスタの中心点を対象データからランダムにk個決める(例では2個)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNBsOYbMe-wXBz-2qepbHuIXoreFE1DAW65i7z4pVAJgTraPsVpuCgDHhqaG1J9u5STwvecR1wjynw5mPmEHR4Jd9uS2dP6Gzem8sLg-ZpF7FBs6q__cHyBuSDALvlioyuNqnelcpCGrI/s1600/p2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNBsOYbMe-wXBz-2qepbHuIXoreFE1DAW65i7z4pVAJgTraPsVpuCgDHhqaG1J9u5STwvecR1wjynw5mPmEHR4Jd9uS2dP6Gzem8sLg-ZpF7FBs6q__cHyBuSDALvlioyuNqnelcpCGrI/s320/p2.png" width="320" /></a></div>
2.各データを最も近くにある中心点のクラスタに割り当てる<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho5KaphrjaqDvHWUW8NILCjysdtuSFFdY4KDW_y7cayrNMdXiwwlUvmoD3fRXEs5TZlX7s90feTYBnjZcACxGALs3Ji3BIaG3e88sGxaFPvmSWr-nWgEmCNPjZvI5xBx7R_VBpg-4D0SA/s1600/p3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho5KaphrjaqDvHWUW8NILCjysdtuSFFdY4KDW_y7cayrNMdXiwwlUvmoD3fRXEs5TZlX7s90feTYBnjZcACxGALs3Ji3BIaG3e88sGxaFPvmSWr-nWgEmCNPjZvI5xBx7R_VBpg-4D0SA/s320/p3.png" width="320" /></a></div>
3.クラスタ内のデータの平均値を新たなクラスタの中心点にする<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4aZDWp1tb5wBLhAVxaQNqSFW8jzkma0teqREHedQDuP6_ktbtg5XEx3YYo38avg7_yk3t_314RxHhA-hXutPyP67fQsegLQfKBTcgF6BIWJrQDgoYNAD-LCR4yugiD3dNCOAPhfRmtmA/s1600/p4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4aZDWp1tb5wBLhAVxaQNqSFW8jzkma0teqREHedQDuP6_ktbtg5XEx3YYo38avg7_yk3t_314RxHhA-hXutPyP67fQsegLQfKBTcgF6BIWJrQDgoYNAD-LCR4yugiD3dNCOAPhfRmtmA/s320/p4.png" width="320" /></a></div>
4.各データを最も近くにある中心点のクラスタに割り当てる<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYkf5_L3Py-qbMEKFBXRY-dSutgmYse40EgRObZwM4KKlSd1k1YHsvy4JMxEPsQ6HFWfSBDIAfjuV4z6gBLXTH_g8UqG23A4zDvYV8NpU5eMgpFGoRfsxQDJYrng1EL9hYkjJkTYW1WzQ/s1600/p5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYkf5_L3Py-qbMEKFBXRY-dSutgmYse40EgRObZwM4KKlSd1k1YHsvy4JMxEPsQ6HFWfSBDIAfjuV4z6gBLXTH_g8UqG23A4zDvYV8NpU5eMgpFGoRfsxQDJYrng1EL9hYkjJkTYW1WzQ/s320/p5.png" width="320" /></a></div>
5.クラスタ内のデータの平均値を新たなクラスタの中心点にする<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1R_2fl14SRUiQL8x8LGny0evqqwAJR1Sv9dlMIe4rWfWc8UZ4wO6yCM2eG6vM1XVJXqP8SG5FLKjJnvEmFNvRZvSb76sd6Fhu2_8M_88ojCrFOU0YaqUelY-FyzRdS9d2rxPwtrl3wlY/s1600/p6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1R_2fl14SRUiQL8x8LGny0evqqwAJR1Sv9dlMIe4rWfWc8UZ4wO6yCM2eG6vM1XVJXqP8SG5FLKjJnvEmFNvRZvSb76sd6Fhu2_8M_88ojCrFOU0YaqUelY-FyzRdS9d2rxPwtrl3wlY/s320/p6.png" width="320" /></a></div>
6.各データを最も近くにある中心点のクラスタに割り当てる<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOK8NxDArc70TuckMmLkpA3ClqyzHht2-hbKYUWBOVL-98fcuQTSm-AcPInO4IkEnFgt5xDMsF14NGLG7NTX1JJmcK81SpZyuYTz6RjHjfHuobf0ho48RGX-PbXouLhHudB_14fwDiuNs/s1600/p7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOK8NxDArc70TuckMmLkpA3ClqyzHht2-hbKYUWBOVL-98fcuQTSm-AcPInO4IkEnFgt5xDMsF14NGLG7NTX1JJmcK81SpZyuYTz6RjHjfHuobf0ho48RGX-PbXouLhHudB_14fwDiuNs/s320/p7.png" width="320" /></a></div>
7.クラスタ内のデータの平均値を新たなクラスタの中心点にする<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmrtECEKImmsv4SX-jctaOV3Pkg65-hryMZ_kX1ad9HFIvy7duVThosG1o8QQE03ZraMTt1boVYX_amBxC-tIS3N8HuVlI590nl30MQiO1pbokY9kayBXf11rZ6nrNkZbXo1aObsk7BIQ/s1600/p8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmrtECEKImmsv4SX-jctaOV3Pkg65-hryMZ_kX1ad9HFIvy7duVThosG1o8QQE03ZraMTt1boVYX_amBxC-tIS3N8HuVlI590nl30MQiO1pbokY9kayBXf11rZ6nrNkZbXo1aObsk7BIQ/s320/p8.png" width="320" /></a></div>
8.各データを最も近くにある中心点のクラスタに割り当てる(上記手順を繰り返す)<br />
<br />
9.繰り返しの結果、クラスタの中心点が変化しなくなったら終了<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWJxjqkxWs5oDuoUibEQoUG94GXrq6MDbaBCpSM-sdjrJkPZJ4aqt_W28ZXREJL5rvmwApxXmykK6qSvG8HdszNuLcQejEByFnmigxTyUNkb0EmbQnFEF-oqI2Pw0ZhiTDpaIzlL9T9Ao/s1600/p9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWJxjqkxWs5oDuoUibEQoUG94GXrq6MDbaBCpSM-sdjrJkPZJ4aqt_W28ZXREJL5rvmwApxXmykK6qSvG8HdszNuLcQejEByFnmigxTyUNkb0EmbQnFEF-oqI2Pw0ZhiTDpaIzlL9T9Ao/s320/p9.png" width="320" /></a></div>
<br />
◆ Tableau での使い方<br />
Tableau でK-meansのクラスタリングを実施する方法はいたって簡単です。<br />
<br />
3種類のアイリス(アヤメ科の一種)の花弁の長さ、幅、花ガクの長さ、幅の4つの情報を標本として取得したデータセットがあります。(このデータはRやPythonに入っているとっても有名なデータセットです。)<br />
<br />
このデータセットを散布図として表示します。<br />
これをK-meansアルゴリズムを使ってクラスターに分類してみます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0F0pD73WSzGpySzdoXBBUHiQIIjtaa2rLAW7BCuXJRLPV2xeRY2MGDnxQsFSoS2abBd8YnnpSvVoSWo9TrIF3SvUhCNFVLpAOmLBogToAsSZKwMc2AP8wmSyRo3RNZOyMpYhBiWA4nhw/s1600/p10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="305" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0F0pD73WSzGpySzdoXBBUHiQIIjtaa2rLAW7BCuXJRLPV2xeRY2MGDnxQsFSoS2abBd8YnnpSvVoSWo9TrIF3SvUhCNFVLpAOmLBogToAsSZKwMc2AP8wmSyRo3RNZOyMpYhBiWA4nhw/s640/p10.png" width="640" /></a></div>
<br />
操作はいたって簡単です。<br />
アナリティクスタブを開く → 「クラスター」 を散布図にドラッグ<br />
以上です。<br />
<br />
花弁の長さ、幅、花ガクの長さ、幅の4つの情報をもとに、自動的に最適なクラスタ数を調整して分類した結果、クラスター1~クラスター3の3つのグループに標本を分類することに成功しました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqowmpP_2K5vGBldhfQy6Nu44K1uzZvIKZF30SdVFFBtpGg9bJHLJZ9RumxuJLnbGk6SQoSgakRMv0n8MMGR8x9efFSF8VAvLRU2cGP43EsPMghcyhZYQHpcEhxoE-K82PKPENq_qTkzM/s1600/p11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqowmpP_2K5vGBldhfQy6Nu44K1uzZvIKZF30SdVFFBtpGg9bJHLJZ9RumxuJLnbGk6SQoSgakRMv0n8MMGR8x9efFSF8VAvLRU2cGP43EsPMghcyhZYQHpcEhxoE-K82PKPENq_qTkzM/s640/p11.png" width="640" /></a></div>
<br />
データセットには実際のアイリスの種別(Setosa,Versicolor,Virginica)の品種情報があるので、これに従って分類してみると以下のようになります。<br />
・・・ほとんど変わらないですね。 <br />
<br />
このケースでは、K-meansによって分類したグループが実際のアイリスの品種分類と変わらないことが分かります。つまり、K-meansによって分類がある程度言い当てられていることが感覚的に見て取れます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi07C_XnvehBydamzR6vzTWD3sJQUlcvFFh7gckUVC_eicXh7pzyxtXP-fB7Aypu4gCl3iY-Z5B70SKBbGW84lvBu_5GENRo_B3JsJXcFUZLQwCrQ-1gqif2ZgLeabdJi15yflQCQiMsrw/s1600/p12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi07C_XnvehBydamzR6vzTWD3sJQUlcvFFh7gckUVC_eicXh7pzyxtXP-fB7Aypu4gCl3iY-Z5B70SKBbGW84lvBu_5GENRo_B3JsJXcFUZLQwCrQ-1gqif2ZgLeabdJi15yflQCQiMsrw/s640/p12.png" width="640" /></a></div>
Tableau でのクラスタリング機能の詳細については、以下のリンクを参照ください。<br />
Understanding Clustering in Tableau 10 - writen by Bora Beran<br />
https://boraberan.wordpress.com/?s=K-means<br />
<br />
◆ アルコール消費量のデータから県民性がわかるか?<br />
それではもう少し、現実的な例を取り上げてみましょう。<br />
今ここで、ワイン、酒、焼酎、ビール、ウィスキーの一人当たりの消費量を得ることができたとします。<br />
<br />
このデータから何が見えてくるでしょう。クラスター分析の前に、<br />
まずデータの中身をざっくり見てみましょう。<br />
<br />
アルコール消費量全体のランキングをとってみます。<br />
<br />
1位 東京<br />
2位 新潟<br />
3位 大阪<br />
4位 高知<br />
5位 秋田<br />
<br />
という結果でした。 大都市は飲食店も多くやはりアルコール消費量が多いようです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFaCG8DlL5Y9r0b5lRxBi8CimJOcZQuKGhzfqEmpZvPA3om-QCYacrPd7YEvmb54wRWttZV67jLxlCJqSIw7g2Hxq23bmKX6p94YqQKdEeUJijAtooYGCTKFe5g0Zyybb-um8ebEPFZFM/s1600/p13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="386" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFaCG8DlL5Y9r0b5lRxBi8CimJOcZQuKGhzfqEmpZvPA3om-QCYacrPd7YEvmb54wRWttZV67jLxlCJqSIw7g2Hxq23bmKX6p94YqQKdEeUJijAtooYGCTKFe5g0Zyybb-um8ebEPFZFM/s640/p13.png" width="640" /></a></div>
次にワイン、酒、焼酎、ビール、ウィスキーの一人当たりの消費量を行と列に配置し散布図を作ってみます。さて、ここから何か情報が得られますか? 何か気づきましたか?<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2kLIL8KKkf9LXsGsie4LTAC8jz6YlYCZEUJcNh9A0eqdLtJTklRYAPseriz-A3vGgTqywyg_vhi_2MTqbSKU5-P-xgYtrJ0ygoPkvuHVesLykU6f2gjZckpiL-CFDoccEwXMnNZDcGX8/s1600/p14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="634" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2kLIL8KKkf9LXsGsie4LTAC8jz6YlYCZEUJcNh9A0eqdLtJTklRYAPseriz-A3vGgTqywyg_vhi_2MTqbSKU5-P-xgYtrJ0ygoPkvuHVesLykU6f2gjZckpiL-CFDoccEwXMnNZDcGX8/s640/p14.png" width="640" /></a></div>
<br />
よく見てみると、アルコール種別ごとに消費量が突出している県があるようです。<br />
例えば<br />
日本酒は 新潟、秋田<br />
ワインは 山梨、東京、長野、北海道<br />
焼酎については断トツ宮崎、鹿児島。続いて熊本、大分といったとこでしょうか。<br />
もうなんだか県民性が出てきましね。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigDlXuxFLqIqgFfIL551G_gC4cnpUMR0CEHaGJ3F5dmQbsK11ftcSdSqTqoe37hlzIVaS9TF3X1ZN8FuVQdKnqHnDrLsW2TwYdnvlMpvOYBIXCCCu0DU3QNbP5wq1Fr42P3owDtphv0kg/s1600/p15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="602" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigDlXuxFLqIqgFfIL551G_gC4cnpUMR0CEHaGJ3F5dmQbsK11ftcSdSqTqoe37hlzIVaS9TF3X1ZN8FuVQdKnqHnDrLsW2TwYdnvlMpvOYBIXCCCu0DU3QNbP5wq1Fr42P3owDtphv0kg/s640/p15.png" width="640" /></a></div>
<br />
<br />
次に傾向線に着目してみましょう。傾向として以下がみられるようです。<br />
① 傾向線が右下がりであることから焼酎の消費量が増えると、日本酒の消費量は減る傾向にある<br />
② 同様に日本酒の消費量が増えると焼酎の消費量は減る傾向がある<br />
③ 傾向線が右上がりであることからビールの消費量が増えるとウィスキーの消費量が増える傾向にある<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUap0n-9wPYQXfuA93KIpwtoqqhNL9dwPlyvuLU58MK4i0fqPPZdyy8i02Ob_WxGlz0oEVJR6Vyw9iUyhd9kE-aH-IQZcjwuRJCCAQ9-8usE9Su1SViIt7UO5GAsAyHt4FOq32KDMIGmM/s1600/p16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="632" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUap0n-9wPYQXfuA93KIpwtoqqhNL9dwPlyvuLU58MK4i0fqPPZdyy8i02Ob_WxGlz0oEVJR6Vyw9iUyhd9kE-aH-IQZcjwuRJCCAQ9-8usE9Su1SViIt7UO5GAsAyHt4FOq32KDMIGmM/s640/p16.png" width="640" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
それではこの辺で本題のクラスター分析に入っていきたいと思います。<br />
これらの傾向をもとにアルコール消費の嗜好別に都道府県をグループ化してみましょう。アルコール消費量に似たような傾向がある都道府県を同じグループにまとめまるということをします。<br />
<br />
わかりやすいように、列と行の組み合わせを下のように減らしてみます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK8CF3mD8PGsAzHDtCy7Ehz0tN3_gKFqXLmiNBvP2MD6tqFwmrGhY5rqaodp-zK6BuKzpCWFB8lcv-9fKY-DkX33wqG38gKAkkGh7T6RnZj_OJ7hBqmafbH9Mg5u8fnImwsYErcVbuhTQ/s1600/p17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="410" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK8CF3mD8PGsAzHDtCy7Ehz0tN3_gKFqXLmiNBvP2MD6tqFwmrGhY5rqaodp-zK6BuKzpCWFB8lcv-9fKY-DkX33wqG38gKAkkGh7T6RnZj_OJ7hBqmafbH9Mg5u8fnImwsYErcVbuhTQ/s640/p17.png" width="640" /></a></div>
<br />
ここにアナリティクスペインから「クラスター」をドラッグします。<br />
クラスター数を4あたりに設定します。(クラスター数は面白い結果が出るところを試行錯誤する必要があるのですが、今回は4つから初めてみましましょう。)<br />
<br />
「クラスター」をドラッグして、クラスター数を指定するだけで、クラスターによる色分けができましたね!<br />
なんとなく、色分けされたクラスターごとにアルコール消費量の特徴が見えてきましたか?<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7RX6VZnwK1wkQIYDSRiRKp8EExZR9c6KdrexyxOjwz40CpJyrOkbvTmoxMQXyq_kWl1iYGglhQezKUhNODSWrdiOSySHtca54N2X0uwNrTUhVIjxsON8zbonHKKQJqckEikx0-2bNstQ/s1600/p18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="324" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7RX6VZnwK1wkQIYDSRiRKp8EExZR9c6KdrexyxOjwz40CpJyrOkbvTmoxMQXyq_kWl1iYGglhQezKUhNODSWrdiOSySHtca54N2X0uwNrTUhVIjxsON8zbonHKKQJqckEikx0-2bNstQ/s640/p18.png" width="640" /></a></div>
<br />
Tableauのクラスター分析のとっても便利なところは、作成されたクラスターをグループとして、新しいディメンジョンに利用できるということなんです。(これは実はとても便利な機能です!)<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dzplM9KeaguUjDXXiCcnOTxEqSW3Ku7JHzLnUy9rwaMmdgnxmqg8057i7mV7awFBHYh5c6Z8f350V-TKSNhQg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<br />
<br />
色に作られた「クラスター」をディメンジョンエリアにドラッグしてみてください。<br />
クラスターに所属する都道府県をグループにまとめたディメンジョンが追加されます。<br />
これを「アルコール消費量クラスター」と名前を付けます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz0CxHrKpH7enC1X4qbnFmXd2aMjD_b9SRkl8_9ax3DdiqkZJLHg8cACtRbxvqGR_I-xzuVyFj4V-LiUk2k-GVZnpaql9Ze6U4R6Jm8hqa3mQG1-DDKASxIbGSedYSGRloHwv0eet6tXA/s1600/p19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz0CxHrKpH7enC1X4qbnFmXd2aMjD_b9SRkl8_9ax3DdiqkZJLHg8cACtRbxvqGR_I-xzuVyFj4V-LiUk2k-GVZnpaql9Ze6U4R6Jm8hqa3mQG1-DDKASxIbGSedYSGRloHwv0eet6tXA/s320/p19.png" width="320" /></a></div>
新たにできたディメンジョンごとに、アルコールごとの消費量の比率を見てみます。<br />
すると、クラスター1はビールの消費量が多いビール派。<br />
クラスター2はワイン派。 クラスター3は焼酎派といった傾向が見えてきます。<br />
このように、出来上がったクラスターを人間の主観で意味を検討しネーミングすることもクラスター分析の作業の一つです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW6Y00GJA3nrbSwe8_TEPxocqu6V_9Jx__HltoQlYbQA4JMUZCOxFAU9c44nIWVZxX27jobkYcwo6PaN9q8Re9Mq9i86bDFnKlL39AusDz848n15Nj2xOKOwz5RW8Jb5dXFVxXm-hFp3M/s1600/p20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="476" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW6Y00GJA3nrbSwe8_TEPxocqu6V_9Jx__HltoQlYbQA4JMUZCOxFAU9c44nIWVZxX27jobkYcwo6PaN9q8Re9Mq9i86bDFnKlL39AusDz848n15Nj2xOKOwz5RW8Jb5dXFVxXm-hFp3M/s640/p20.png" width="640" /></a></div>
<br />
さて、作成されたクラスターを地図にマッピングしてみましょう!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4rDbDOL79uSbQ4VB9fJ-EXbbgcKtxdkHufzgB_FpyamNON6M7Bi1NfFJDHVwn37Xr_BTDGC_8jv_wfx-W8q02Ab_NJznGW8UPCsqvEhlcBNgHpFXRf-o5HMgVHQAXHuDSVk-vr79nbg/s1600/p21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="478" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4rDbDOL79uSbQ4VB9fJ-EXbbgcKtxdkHufzgB_FpyamNON6M7Bi1NfFJDHVwn37Xr_BTDGC_8jv_wfx-W8q02Ab_NJznGW8UPCsqvEhlcBNgHpFXRf-o5HMgVHQAXHuDSVk-vr79nbg/s640/p21.png" width="640" /></a></div>
<br />
圧倒的に、九州中南部、大分、熊本、宮崎、鹿児島は焼酎派! なんですね。ここは揺るぎがありません。<br />
山梨と北海道はワイン派クラスター。日本海側にビール派が多いということも浮き上がってきましたように思います。<br />
<br />
クラスターの数を5つにするとまた秋田、新潟の日本酒クラスターが出現しました。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL9HZrhnZ9xv7Kgu5aIvL3hXul5can0m5C-G1JnwpZjfZj6FZQzHwYsqLO_wzbskP9DI5Y19FqZ4hHAFPB2AkNMW2STMexboCiOrDoavrrx_M-mpQSxPg-ZSwZjH_XlKzcO7jxVE4FvoE/s1600/p22.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" height="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL9HZrhnZ9xv7Kgu5aIvL3hXul5can0m5C-G1JnwpZjfZj6FZQzHwYsqLO_wzbskP9DI5Y19FqZ4hHAFPB2AkNMW2STMexboCiOrDoavrrx_M-mpQSxPg-ZSwZjH_XlKzcO7jxVE4FvoE/s640/p22.png" width="640" /></a><br />
このようにクラスターの数を変えたり、入力の変数を変えて意味のあるクラスターを試行錯誤して探っていくと、面白い発見に出会えるかもしれません。<br />
<br />
アルコール消費量傾向によって都道府県をグループ化できれば、焼酎クラスター<br />
である宮崎、鹿児島、大分、熊本で焼酎キャンペーンを実施したり、逆に消費量の少ない日本酒のキャンペーンをやってみるというのも新鮮かもしれません。<br />
<br />
皆さんもお手持ちのデータをTableauのクラスタリング機能を使って分析してみてください。新たな発見が得られるかもしれません!!<br />
<br />
ワークブックはこちらからダウンロードいただけます。<br />
<a href="https://public.tableau.com/shared/Y38T47BC2?:display_count=yes">https://public.tableau.com/shared/Y38T47BC2?:display_count=yes</a><br />
<br />
Tableauからデータサイエンスを始めましょう!!<br />
では、またお会いしましょう・・・<br />
<br />
<br />
参考文献:<br />
<br />
DATA GO.JP<br />
http://www.data.go.jp/<br />
<br />
[DoSS@d - DATA] 都道府県別アルコール類の消費量<br />
http://mo161.soci.ous.ac.jp/@d/DoDStat/sake/sake_dataJ.xml<br />
<br />
Understanding Clustering in Tableau 10 - writen by Bora Beran<br />
https://boraberan.wordpress.com/?s=K-means<br />
<br />
クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた<br />
http://tech.nitoyon.com/ja/blog/2009/04/09/kmeans-visualise/<br />
<br />
<br />
<br />
<br />
<br />Shingohttp://www.blogger.com/profile/16554187461943466265noreply@blogger.com1tag:blogger.com,1999:blog-2398716554755334461.post-32574231159055065082017-02-23T17:35:00.000+09:002017-02-23T17:35:28.056+09:00すべてフィルターされているときにタイトルを表示させない方法Nanaeです。<br />
<br />
簡単な裏ワザです。フィルターをかけていて何も選択していないとき、シートにタイトルを表示させなくする方法です。<br />
<br />
タイトル機能を使ってタイトルを表示すると、Vizがあろうとなかろうと常にタイトルを表示します。表示させるVizがないときはタイトルを出したくない場合、Vizの中にタイトルを組み込むことでタイトルを隠せます。<br />
<br />
上がタイトル機能を使ってタイトルを表示したシート、下がタイトル化したものをVizに組み込んだシートです。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKL5N1IiWaF519Py0_USwf66Lc1GDghNqfy496CkosCphjZ_QrHkMHM8jebQzfmf4si67N1ylAm-GErpqwWqK-G-SYb__460yTNZinHWRUCR-PkcJImcH2ZgC6QonX_NfE2MNBDe0mhmU/s1600/%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25AB%25E3%2582%25BF%25E3%2583%25BC%25E5%2585%25A8%25E9%2583%25A8%25E3%2583%2581%25E3%2582%25A7%25E3%2583%2583%25E3%2582%25AF.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKL5N1IiWaF519Py0_USwf66Lc1GDghNqfy496CkosCphjZ_QrHkMHM8jebQzfmf4si67N1ylAm-GErpqwWqK-G-SYb__460yTNZinHWRUCR-PkcJImcH2ZgC6QonX_NfE2MNBDe0mhmU/s1600/%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25AB%25E3%2582%25BF%25E3%2583%25BC%25E5%2585%25A8%25E9%2583%25A8%25E3%2583%2581%25E3%2582%25A7%25E3%2583%2583%25E3%2582%25AF.PNG" /></a><br />
<br />
フィルターのチェックをすべて外します。上はチャートがないのにタイトルだけ残ってしまいました。下はタイトルもきちんと消えています。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHCCLMLftlNF9Q_jvIeApoks4F7GGAxQ0eTgBI7-r5ejGSECpkTfpMj6y8RRCE7idr0XBHdq6nkUL_NnObXrRtlwT4pCjBea-lQ3jhugEFxf5LUO1mUb-dBRyBHkHWDBjS7DJd7Q1gLF8/s1600/%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25AB%25E3%2582%25BF%25E3%2583%25BC%25E5%2585%25A8%25E9%2583%25A8%25E3%2583%2581%25E3%2582%25A7%25E3%2583%2583%25E3%2582%25AF%25E5%25A4%2596%25E3%2581%2599.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHCCLMLftlNF9Q_jvIeApoks4F7GGAxQ0eTgBI7-r5ejGSECpkTfpMj6y8RRCE7idr0XBHdq6nkUL_NnObXrRtlwT4pCjBea-lQ3jhugEFxf5LUO1mUb-dBRyBHkHWDBjS7DJd7Q1gLF8/s1600/%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25AB%25E3%2582%25BF%25E3%2583%25BC%25E5%2585%25A8%25E9%2583%25A8%25E3%2583%2581%25E3%2582%25A7%25E3%2583%2583%25E3%2582%25AF%25E5%25A4%2596%25E3%2581%2599.PNG" /></a><br />
下のシートの作成方法です。<br />
タイトルをVizに組み込むには、計算フィールドでタイトルを表す文字列を作って、それを列に入れてヘッダーとして表示させます。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFe5qll7sGLcxeq45Ej84HpDfXcsip8XC4BXBV5RTmhXRWwAuM7Fj_hUi1nGDLWopQxXG8_LpwmiLErCmUJcRITvZttyRVAMZZnoXRiK5rZXDJd58eLG0pZBjFhpbem9qZ2ofEPfp6cPo/s1600/%25E3%2582%25BF%25E3%2582%25A4%25E3%2583%2588%25E3%2583%25AB%25E4%25B8%25AD%25E8%25BA%25AB.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFe5qll7sGLcxeq45Ej84HpDfXcsip8XC4BXBV5RTmhXRWwAuM7Fj_hUi1nGDLWopQxXG8_LpwmiLErCmUJcRITvZttyRVAMZZnoXRiK5rZXDJd58eLG0pZBjFhpbem9qZ2ofEPfp6cPo/s1600/%25E3%2582%25BF%25E3%2582%25A4%25E3%2583%2588%25E3%2583%25AB%25E4%25B8%25AD%25E8%25BA%25AB.png" /></a><br />
<br />
文字の大きさや配置などを書式設定から調節すれば完了です。<br />
<br />
上の例でわざわざこのTipを使うことは少ないですが、たとえば次の場合に有効です。<br />
<br />
気になる都道府県をクリックすると、その都道府県の時系列推移が出てくるようなダッシュボードを作りました。垂直方向のオブジェクトの中に2つのシートを入れ、何も選択していないときは時系列推移のチャートが表示されないフィルターアクションの設定にしています。<br />
<br />
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw3RAnzXYWGkHuNr2YcoVidekOsxKFjs1jV3qIJclFXLlCvlXJYKxK4vJGChBzPk_EamgmmoeBlfOdC-WnlJTR8lXkYmbUWF71EnHqYAOcrvkGIJ1TdJpf1tDNj1_1SHajhCu_yp7EBDY/s1600/%25E5%258A%25B9%25E6%259E%259C%25E7%259A%2584%25E3%2581%25AA%25E4%25BE%258B1.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw3RAnzXYWGkHuNr2YcoVidekOsxKFjs1jV3qIJclFXLlCvlXJYKxK4vJGChBzPk_EamgmmoeBlfOdC-WnlJTR8lXkYmbUWF71EnHqYAOcrvkGIJ1TdJpf1tDNj1_1SHajhCu_yp7EBDY/s1600/%25E5%258A%25B9%25E6%259E%259C%25E7%259A%2584%25E3%2581%25AA%25E4%25BE%258B1.PNG" /></a></div>
↓↓↓<br />
↓↓↓静岡県をクリックしてみる<br />
↓↓↓<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGCB2kTTBtpDE7ozrnfOZL8VbeXbjHIJw9a7xL9BYuVVHCcnXb6IlkPwzb2P1I_66_pRXmEuBGWAeGd-T5PP131nyx6L50LrtNxFyei5mOhr5gEaqjZtg9Ej84P5R3M8Xq4R8jLzhFwko/s1600/%25E5%258A%25B9%25E6%259E%259C%25E7%259A%2584%25E3%2581%25AA%25E4%25BE%258B2.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGCB2kTTBtpDE7ozrnfOZL8VbeXbjHIJw9a7xL9BYuVVHCcnXb6IlkPwzb2P1I_66_pRXmEuBGWAeGd-T5PP131nyx6L50LrtNxFyei5mOhr5gEaqjZtg9Ej84P5R3M8Xq4R8jLzhFwko/s1600/%25E5%258A%25B9%25E6%259E%259C%25E7%259A%2584%25E3%2581%25AA%25E4%25BE%258B2.PNG" /></a><br />
<br />
都道府県の円をクリックしていないとき、下に時系列推移のチャートが隠れていますが、そのタイトルだけ見えていては不格好ですよね。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUvaCElsN0s9QHNUvNA6Mus0hm08iUP-LqR2S8EKS0S4L7uSpFAQRjtiPjgw6al_HjNXB5ohhyphenhyphenqpnOx1gr_bLBMbdfCNtDVVTfEuta_3z0iuImxCXAn7Oy82ziiPzVz8_mMR9qvSnkesw/s1600/%25E3%2582%25BF%25E3%2582%25A4%25E3%2583%2588%25E3%2583%25AB%25E3%2581%2582%25E3%2582%258A.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUvaCElsN0s9QHNUvNA6Mus0hm08iUP-LqR2S8EKS0S4L7uSpFAQRjtiPjgw6al_HjNXB5ohhyphenhyphenqpnOx1gr_bLBMbdfCNtDVVTfEuta_3z0iuImxCXAn7Oy82ziiPzVz8_mMR9qvSnkesw/s1600/%25E3%2582%25BF%25E3%2582%25A4%25E3%2583%2588%25E3%2583%25AB%25E3%2581%2582%25E3%2582%258A.PNG" /></a><br />
<br />
タイトルを非表示にしてしまうことはできますが、タイトルがあったほうがわかりやすいです。そんなときに使ってください!<br />
<br />
Nanae<br />
<br />
<br />
<div class="tableauPlaceholder" id="viz1487053415394" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/X4/X45TS7DMK/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='path' value='shared/X45TS7DMK' /> <param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/X4/X45TS7DMK/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1487053415394'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1004px';vizElement.style.height='895px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>Nanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-25256891662213715862017-02-20T00:59:00.001+09:002017-02-21T16:39:15.647+09:00Tableau + R 連携を使いこなそう! その3 - 時系列分析に挑戦<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzPeDr0R_UuBoOhyphenhyphenpgWwfqbqknRX6yw0aZLKLL_mV0lfsF1C0gPFJxguHTY8laamgqC8HM33L0AweSbOKOdBBdYH6LDKyVPVcgrqDSKkdbYVmglgWuMzEk7obCfDhFn5LcT9guTehyIA8/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzPeDr0R_UuBoOhyphenhyphenpgWwfqbqknRX6yw0aZLKLL_mV0lfsF1C0gPFJxguHTY8laamgqC8HM33L0AweSbOKOdBBdYH6LDKyVPVcgrqDSKkdbYVmglgWuMzEk7obCfDhFn5LcT9guTehyIA8/s640/1.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
bashiiです、こんにちは。</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
さて、今回は「Tableau+R連携を使って時系列分析を行う際のポイント」について紹介したいと思います。 </div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
さてその前に「時系列分析」って何? というご質問もあるかと思いますので、簡単に説明するところから入りたいと思います。</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
例えば、店舗の売上、Webのアクセス数、株価などのデータは時間軸に沿って数値が時々刻々と変化していきますよね。これらの時系列に沿った傾向を理解することで、これから先に起こることを(ある程度)予測することを時系列分析といっています。</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
Tableau+R連携の入出力については、</div>
<div class="separator" style="clear: both;">
Tableau + R 連携を使いこなそう! その1 - 簡単な足し算に挑戦 で紹介していますが、</div>
<div class="separator" style="clear: both;">
実はTableauの入力データ数と、SCRIPT_* でRから返される出力数は同じにするという前提があるんです。</div>
<div class="separator" style="clear: both;">
</div>
<div class="separator" style="clear: both;">
もしこれらに違いがあると下のように、「SCRIPT関数によって返された予期しない数の結果。関数はnの値を返す予定でしたが、mの値が返されました」という </div>
<div class="separator" style="clear: both;">
メッセージが出てしまいます。</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-7dsfDdoo573GaR5yT7dFOSJVCJ7G6gGu1b-32BYgXZJwNHUXpEFPBsnEiA0M2wcupG9p42INH1ELvONaJ4g_Zswh-r20dXNKaocWWAhe8Gknw3jdjI5Hu4cjZeNcjajOTZBP8-yL3gY/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-7dsfDdoo573GaR5yT7dFOSJVCJ7G6gGu1b-32BYgXZJwNHUXpEFPBsnEiA0M2wcupG9p42INH1ELvONaJ4g_Zswh-r20dXNKaocWWAhe8Gknw3jdjI5Hu4cjZeNcjajOTZBP8-yL3gY/s320/2.png" width="320" /></a></div>
<div class="separator" style="clear: both;">
<br /></div>
しかし、時系列分析では現在までのデータに加えて予測した値が追加されるので、入力と出力の数が変わってくるということになります。これをTableauで実現するためにはちょっとした工夫が必要になってきます。<br />
<br />
今回のポイントをまとめます。<br />
1.時系列分析では入力となる実績値のデータ数と、出力となる予測値の数が異なる<br />
2.ダミーのデータを使ってTableauから入力するデータ数とRから出力されるデータ数を合わせる<br />
3.Rからの最終的な出力は実測値に予測値をくっ付けて返す<br />
です。<br />
<br />
なんのこと?ってかんじですね。 では内容を説明していきましょう。<br />
<br />
<br />
以下のような時系列のデータがあるとします。とある会社の業績データが1960 Q1 から四半期ごとに1980年Q4 まで 84 期 記録されています。<br />
これをもとにこの先の業績を時系列分析によって予測したいと思います。<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLf19FeyGh0yFvMnJEXVPLFnq4nYCHFH9zWvs6twpbXex9d37g2D8PnHINWt09m7MC2hHYNOkOoLhgnK8cldzbvoofRTgv-JD_jAB_5QRCiSTzblglHGmwztkG17eQCEdcCU9JE8jIuOI/s1600/3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLf19FeyGh0yFvMnJEXVPLFnq4nYCHFH9zWvs6twpbXex9d37g2D8PnHINWt09m7MC2hHYNOkOoLhgnK8cldzbvoofRTgv-JD_jAB_5QRCiSTzblglHGmwztkG17eQCEdcCU9JE8jIuOI/s200/3.png" width="109" /></a></div>
■ その1.<br />
最初は簡単な例で説明します。<br />
添付ワークブックの「時系列シンプル-その1」 ワークシートをご覧ください。<br />
<br />
実データの最終ポイント 1980 Q4から先の8つのポイント(8四半期)<br />
つまり1982 Q4 まで予測値を出してみたいと思います。<br />
今回の実データは84個あります。これに8つの予測値を加えて最終的な出力結果は 84+8=92 個 となります。<br />
<br />
ここで前述の通り、Tableauから入力するデータ数とRから出力されるデータ数は<br />
一致する必要があることをもう一度思い出していただきたいのです。<br />
<br />
そこで第一ステップとして、実データに以下のように値をNULLとしたダミーのレコードを8つ追加します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnGPE-pDn019fHS1md6uOFoLeu5xZhvb5zaDMc_VY7cIDeq2DniN_aCvheUD3imXuX3KY49qNeUxXDmcHlx2-6kTWMpUzg2N4NnEjYWS4Y-_0-59fwPXzsJNt7jFnj8NbhU0gmqmEv-sc/s1600/4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnGPE-pDn019fHS1md6uOFoLeu5xZhvb5zaDMc_VY7cIDeq2DniN_aCvheUD3imXuX3KY49qNeUxXDmcHlx2-6kTWMpUzg2N4NnEjYWS4Y-_0-59fwPXzsJNt7jFnj8NbhU0gmqmEv-sc/s200/4.png" width="140" /></a></div>
え! データソースを変更するの?? と思うかもしれませんが、安心してください!!<br />
ここではR連携の仕組みがわかりやすいように一時的に対応します。<br />
(多くの場合、都度データソースにNULL値を追加するのは難しいと思いますが、この後の「その2」でデータソースを変更しない方法をご紹介します!)<br />
<br />
<br />
<br />
<br />
実データの変動をグラフにすると以下のようになります。1980 Q4 までにデータが入っています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5y3M2e81UNd34yYGwNjRI8-tV6mxXFSAPTRMnPYmFgOQD-leCWlbgaWhf1nitzly_oBjuw_zQKhheVCS0Dd21gnJEh4ClEkha3LqEn0z72ynGax_x3CNulEbmyxBvwSixUor3-ggac7Q/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="470" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5y3M2e81UNd34yYGwNjRI8-tV6mxXFSAPTRMnPYmFgOQD-leCWlbgaWhf1nitzly_oBjuw_zQKhheVCS0Dd21gnJEh4ClEkha3LqEn0z72ynGax_x3CNulEbmyxBvwSixUor3-ggac7Q/s640/5.png" width="640" /></a></div>
<br />
パラメータから予測する期間を取得して予測値を出す計算式を作ります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ-Fdvel65FomwyZ40FLjgrPe5xre_Z46zYVw9qJ0XgVrqztw3pIz9w4jPRTFTPrhxHf2iSajUzTkk2YlD_G1td1tHTBeJVCb_RWI8ugjodov_J1mhlKsXpA9ozG_RXkzkb-Tj4ikB84I/s1600/6.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="476" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ-Fdvel65FomwyZ40FLjgrPe5xre_Z46zYVw9qJ0XgVrqztw3pIz9w4jPRTFTPrhxHf2iSajUzTkk2YlD_G1td1tHTBeJVCb_RWI8ugjodov_J1mhlKsXpA9ozG_RXkzkb-Tj4ikB84I/s640/6.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
計算式の中身が何をしているのかコメントを付けました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBFnBgUWVzsH1hj791LPle-AeN-9pwAEbbr_hOFURJ9OXEBTcOH8Cs8T4XWszueLBim1AW-u-W1T1_Heg1EjjPVVM4wX0UX1L7bI36PAEJ72BftkHfchRnlkAzSin2f5NIf4fZqr0YNp0/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="458" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBFnBgUWVzsH1hj791LPle-AeN-9pwAEbbr_hOFURJ9OXEBTcOH8Cs8T4XWszueLBim1AW-u-W1T1_Heg1EjjPVVM4wX0UX1L7bI36PAEJ72BftkHfchRnlkAzSin2f5NIf4fZqr0YNp0/s640/7.png" width="640" /></a></div>
<br />
<br />
これをグラフにすると以下のようになります。実績値にRによる予測値を付け加えたもの、下が実績値のみです。<br />
分かりやすいように予測値に色を付けていますが1982年Q4までの予測値がオレンジで追加されていることが分かります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjsa7p5zXSpFYMzXLzAb3ux1XXXFQ9tF9_b9q4rCXcQXAvr2Xgnyi4Zfn9NVgBp_fKoju6a-BNv4l3hhBpR3JucS7dK7L8hRp64aqefQlwWSqJgBRT3soVMxJYEtcUap6_t-WaFT-Csnk/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="472" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjsa7p5zXSpFYMzXLzAb3ux1XXXFQ9tF9_b9q4rCXcQXAvr2Xgnyi4Zfn9NVgBp_fKoju6a-BNv4l3hhBpR3JucS7dK7L8hRp64aqefQlwWSqJgBRT3soVMxJYEtcUap6_t-WaFT-Csnk/s640/8.png" width="640" /></a></div>
<br />
ここで今一度計算式の中で何をしているのか Rの気持ちになって考えてみたいと思います。<br />
Rstudioのコンソールから実際にコマンドを打ってみましょう。<br />
簡単のため、実データとして、 1,2,3,4,5,6,7,8 が入っていてその先4 つの区間を予測するということをしてみましょう。<br />
( もちろん、 9,10,11,12 が返ってくることが予測できますよね。。。)<br />
<br />
> library(forecast); <br />
# forecastライブラリを 読み込みます。 <br />
<br />
※ {forecast}パッケージは計量時系列分析にまつわる様々な関数を同梱していて、主にARIMAのモデルに代表される単変量時系列データを扱います。 <br />
<br />
> .arg1 <- c (1,2,3,4,5,6,7,8,0,0,0,0) <br />
# Tableauからデータを入力することを想定して、.arg1 にベクトルとして1~8までの値を投入します。 <br />
ここで、Tableauの入力データ数とRの出力データ数を合わせる必要があるので、末尾に4つのダミーデータを入れ <br />
合計のデータ数を 8+4=12 とします。 <br />
<br />
> l<-length(.arg1); #入力データの数を代入 <br />
> l <br />
[1] 12 <br />
<br />
.arg1 の長さ(データの数)は12です。 <br />
<br />
> .arg2 <- 4 <br />
<br />
予測するポイントの数を 4 とします (Tableauからはパラメータとして入れられることを想定します) <br />
<br />
> u<-.arg1[1:(l-.arg2[1])]; <br />
> u <br />
[1] 1 2 3 4 5 6 7 8 <br />
.arg1 から実データのみを切り出します <br />
<br />
> n<-length(u); <br />
> n <br />
[1] 8 <br />
実データのデータ数をとっておきます。 <br />
<br />
<br />
> earnings_ts <- ts(u,deltat=1/4,start=c(1960,1)); <br />
> earnings_ts <br />
Qtr1 Qtr2 Qtr3 Qtr4 <br />
1960 1 2 3 4 <br />
1961 5 6 7 8 <br />
<br />
ts()関数により、1~8のデータを 1960年1Q から始まり、四半期周期の時系列オブジェクト・データに割り当てます <br />
ただの数列に対して、それが時系列のデータですよということを定義してあげています。 <br />
<br />
> fcast <- forecast(earnings_ts, h=.arg2[1]); <br />
> fcast <br />
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 <br />
1962 Q1 9 9 9 9 9 <br />
1962 Q2 10 10 10 10 10 <br />
1962 Q3 11 11 11 11 11 <br />
1962 Q4 12 12 12 12 12 <br />
<br />
forecast()関数で実際に予測を行います。予測の期間は4点ですので、 <br />
1962 Q1 から 1962 Q4 までの予測値が計算されます。 <br />
<br />
forcast関数の意味についてはこちらを参照ください <br />
https://cran.r-project.org/web/packages/forecast/forecast.pdf <br />
<br />
> append(u,fcast$mean, after = n) <br />
[1] 1 2 3 4 5 6 7 8 9 10 11 12 <br />
<br />
実データベクトル "u" の後に予測値 fcast$meanを連結します。 <br />
実データ 1~8 の後に 9,10,11,12 がついているのがわかります。 <br />
当たり前ですが、最初に予測した結果がきちんと付け加えられていますね。 <br />
この結果がTableauに返ります。 <br />
Tableauからの入力のデータ数とRからの出力数が同じですね。 <br />
<br />
■ その2. <br />
実際にはデータソースにダミーレコードを追加することは難しい場合がありますので、 <br />
次に、データソースにてを加えずに予測値を返すテクニックを紹介します。 少しテクニックが必要です。 <br />
添付ワークブックの時系列シンプル-その2を参照ください。 <br />
<br />
以下のようなデータソースがあります。 末尾にNULLは加えていません。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3pP2l438iqI4K6w0M966oW7mjyZKVVGjeqB72J8s_KuQGgttJRQ_GfVvoElkWCcCck3MQgf8KLUdQkQaepj7i69USQs_efEmiSdLyzDnZbczX7pJ6Rg_wKTn7Q0aQbC-ScI-Y4z16oyQ/s1600/9.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3pP2l438iqI4K6w0M966oW7mjyZKVVGjeqB72J8s_KuQGgttJRQ_GfVvoElkWCcCck3MQgf8KLUdQkQaepj7i69USQs_efEmiSdLyzDnZbczX7pJ6Rg_wKTn7Q0aQbC-ScI-Y4z16oyQ/s200/9.png" width="177" /></a></div>
この場合に実データより先の8期間の予測値をRに計算してもらいましょう。 <br />
<br />
1.最後のデータの日付ポイントを予測期間分先延ばしにします。 <br />
計算式 ”Shifted Quarter" を作り、以下の計算式を入力します。 <br />
<br />
<br />
<br />
IF [Quarter] = {FIXED:MAX([Quarter])} <br />
THEN <br />
DATEADD('quarter',[Num Forecast Intervals],[Quarter]) <br />
ELSE <br />
[Quarter] <br />
END <br />
<br />
1980 Q4 のデータ 8 四半期延ばされて、1982 Q4 のデータとなります。 <br />
この最後のデータのみ予測期間分延ばされたデータをRに渡すというところがポイントとなります。 <br />
なぜこのようなことをしているかというと <br />
TableauがRに渡す実測値の入力データとRが出力する実測値+予測値のデータ数が同じになるようにしなければならないためです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9saAZ-A0Abm8vimX29mT0BXjmRTv9sqCzLA2uLXnWRfsG-YjwT379zikPzReAVX6nucRzI5X-k1iyRh1QSXGy3gFLvXQgSX925mKU_mND2ek2wRUA-8esu9wQByGZLJhe-kGbjH1c2vg/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9saAZ-A0Abm8vimX29mT0BXjmRTv9sqCzLA2uLXnWRfsG-YjwT379zikPzReAVX6nucRzI5X-k1iyRh1QSXGy3gFLvXQgSX925mKU_mND2ek2wRUA-8esu9wQByGZLJhe-kGbjH1c2vg/s640/10.png" width="640" /></a></div>
<br />
2.実測値+Rによる予測値を返す計算フィールド ”ForcastEarnings”を作成し以下を入力します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv_OCx0Ov4OXNFMkizpIT-V6ookMTcDPaSDkyWuKDY1qBj-esBxVDcLxayyf9DgsDusO4lPJxpojpKPkXjcSn2X5LLNuYpIyLyXAW-UT0PF-XVhY1wFu7qMN_OnHJ2Srkjf6e9n9QBCVQ/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv_OCx0Ov4OXNFMkizpIT-V6ookMTcDPaSDkyWuKDY1qBj-esBxVDcLxayyf9DgsDusO4lPJxpojpKPkXjcSn2X5LLNuYpIyLyXAW-UT0PF-XVhY1wFu7qMN_OnHJ2Srkjf6e9n9QBCVQ/s640/11.png" width="640" /></a></div>
<br />
<br />
3.列に”Shifted Quarter"、行に”Earnings" と”Forecasted Earnings" をドラッグします<br />
4.”Shifted Quarter"を右クリックし、”Show Missing Values"を選択します ←ここがポイント<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7bg012TIm7X1UBxImzQS3Zqwn5x_O_Pl0oPpfo3J1iARiZ6VUdKP70MlMEGFCN_pJ6WTOZuAjwwYvClo84sONxV2XPjH3tS7DN7ihjsepMkf2vF4AtpwPJ7MS48KgDVTpaYeVFu9LeyM/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7bg012TIm7X1UBxImzQS3Zqwn5x_O_Pl0oPpfo3J1iARiZ6VUdKP70MlMEGFCN_pJ6WTOZuAjwwYvClo84sONxV2XPjH3tS7DN7ihjsepMkf2vF4AtpwPJ7MS48KgDVTpaYeVFu9LeyM/s640/12.png" width="640" /></a></div>
<br />
<br />
Show Missing Valuesをチェックすることで、シフトされた末尾のデータとその前のデータの間のポイントがNULLとしてRに渡され <br />
結果として入力と出力のデータ数が同じになります。 <br />
<br />
ここで、実測値を84個、予測値を8個と想定して先ほど作成した計算式の中のRスクリプトを解説します。 <br />
<br />
<br />
# 入力データの最後の一つ(84番目)のデータはシフトされて、予測データも含めた最後のデータ(92番目)にシフトされています。84番目から91番目はNULLで埋められいます。 <br />
l<-length(.arg1); <br />
# 入力データの数をlに代入します、末尾を予測データ分シフトしていますから、ここでは、84+8=92 となります。 <br />
<br />
u<-.arg1[1:(l-.arg2[1])]; <br />
# u に実データ数分 (92 - 8 =84 )の数列をベクトルとして格納します。 <br />
(最後の一つはシフトされているので、NULLとなっている) <br />
n<-length(u); <br />
# 実データの数は84 です。 <br />
<br />
u[n]=.arg1[l]; <br />
# 実データの最後84番目のデータを92番目のデータ(シフトされたデータ)で置き換えます。 <br />
# これでシフトされていたデータが元の場所に戻り、実データのベクトルが完成します。 <br />
<br />
earning_ts <- ts(u,deltat=1/4,start=c(1960,1)); <br />
# 完成した実データベクトルu を1960 Q1 から始まる 四半期ごとの時系列データとして取り扱います。 <br />
<br />
fcast <- forecast(earning_ts, h=.arg2[1]); <br />
# 実測値データをもとにパラメータで入力された予測期間(8) の値を予測します <br />
<br />
append(u,fcast$mean, after = n)" <br />
# 実測値データベクトル u に予測結果 fcast$mean を追加しTableauに返します。 <br />
ここでデータの数は実測値84 + 予測値8 =92 となります。 <br />
<br />
ちょっと、トリッキーなところはありますね。(確かに) <br />
ただこのテクニックは、ほかの予測分析においても、入力データとRの出力データが異なる場合に使えるテクニックになりますので <br />
応用はできそうです。 <br />
<br />
最後になりますが、Tableauには既に予測の機能が搭載されていて予測データを表示することができます。(「分析」→「予測」から実行) <br />
ただし、Rと連携することで時系列データから季節変動要素を分離したり、ARIMAモデル以外にも先進的な時系列予測モデルを利用した予測ができたりと、 <br />
応用範囲はどこまでも広がると思われます。 <br />
<br />
その際にも今回ご紹介したTableau+R連携で時系列分析を行う際の入出力のテクニックは押さえておきたいですね。 <br />
<br />
<br />
Tableauからデータサイエンスを始めましょう!<br />
<br />
ということで、またお会いしましょう。<br />
<br />
bashii<br />
<br />
<br />
参考文献 <br />
Using R forecasting packages from Tableau <br />
<span style="color: blue;"><span style="color: blue;"><a href="https://boraberan.wordpress.com/2014/01/19/using-r-forecasting-packages-from-tableau/" target="_blank"><span style="background-color: white; color: blue;">https://boraberan.wordpress.com/2014/01/19/using-r-forecasting-packages-from-tableau/</span></a> </span> </span><br />
<br />
完成したワークブックはTableau Community にありますのでご参照ください。<br />
<a href="https://community.tableau.com/docs/DOC-10111" target="_blank"><span style="color: blue;">https://community.tableau.com/docs/DOC-10111</span></a><br />
<div>
<br /></div>
<br />Shingohttp://www.blogger.com/profile/16554187461943466265noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-69411151792751069562017-02-16T23:16:00.002+09:002017-04-13T11:16:26.876+09:00Tableau + R 連携を使いこなそう! その2 - K-meansクラスタリングに挑戦<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit;">RとTableau連携を使いこなしたい! の2回目です。</span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="http://tableaujpn.blogspot.jp/2017/02/tableau-r-1.html" target="_blank">前回は簡単な足し算をRに実行させてみました</a>が、今回はもう少しリアルなケースとして</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">クラスタリングを取り上げ、Tableau+R連携の中で何をしているのか考察してみましょう。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">まずは</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">を使って</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">の意味するところを理解します。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">に含まれている</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">iris</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">サンプルデータ(アイリスの花弁の標本データ)を使って</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">クラスタリングを行ってみましょう。 アイリスの花弁とガク片の長さ、幅が分かれば</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">クラスタリングを使ってその花の種類ガ大体わかる・・・というのが主旨です。</span></span><br />
<br /></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">3</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">種類のアイリス(</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">setosa/versicolor/verginica) </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">の花の花弁とガク片の長さ、幅の</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">4</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">種類のデータ標本を取ったもので、Fisherの研究で使われた有名なデータセット iris を利用しましょう。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTkWwWtkrK7XtStEta20tLjCRtb2Qa9AUw9aXzLARP3IUCKkSuUIy828T89ku6X3LUabraRDxZ59ClTkHksk6SNs3JiGBHlaezPHWBpspJm3y5MR3YLG0I_cFrsnOOeKB-kN7IihE6kc/s1600/iris.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTkWwWtkrK7XtStEta20tLjCRtb2Qa9AUw9aXzLARP3IUCKkSuUIy828T89ku6X3LUabraRDxZ59ClTkHksk6SNs3JiGBHlaezPHWBpspJm3y5MR3YLG0I_cFrsnOOeKB-kN7IihE6kc/s320/iris.PNG" width="320" /></span></a><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div class="smz-translated loading" smz-translated="1" style="border: 0px; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span></span>
<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span></span>
<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">のコンソールで </span></span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: black; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="color: blue; font-family: "arial" , "helvetica" , sans-serif;">>iris</span></div>
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">と打てば </span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">iris </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">のサンプルデータを見ることができます。</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> </span></span><br />
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192903/pastedImage_7.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="image-6 jive-image" height="178" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192903/387-178/pastedImage_7.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; height: 177.754px; margin: 10px 10px 10px 0px; max-width: 387px; padding: 0px; vertical-align: baseline;" width="387" /></a></span><br />
<div style="color: blue; font-size: 10pt; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="color: blue; font-size: 10pt; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">> plot(iris)</span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<br />
<div style="font-size: 10pt; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">と打てば散布図が表示されます。</span></div>
</div>
<div style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192904/pastedImage_8.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="image-7 jive-image" height="295" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192904/pastedImage_8.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 10px 10px 10px 0px; max-width: 415px; padding: 0px; vertical-align: baseline;" width="415" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">クラスタリング(K平均法)の詳細については、他の文献を参照いただきますが、</span></span><br />
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ザックリと書くと標本の属性値から標本を意味のあるグループに機械的に分類するという仕組みです。</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">この場合は、</span><span style="font-size: 13.3333px; font-style: inherit; font-weight: inherit;">アイリスの花弁とガク片の長さ、幅 から標本を属性の似ているグループに分類します。</span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; line-height: 24px; padding: 0px; vertical-align: baseline;">
<div style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 14px; font-style: inherit; font-weight: inherit;">以下のコマンドをRコンソールから実行してみます。</span></div>
<div style="color: #333333; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: xx-small; font-style: inherit; font-weight: inherit;">※ K-meansを利用できるように事前に"plyr"パッケージをインストールください。</span></div>
<span style="color: blue; font-family: "arial" , "helvetica" , sans-serif; font-size: xx-small; font-style: inherit; font-weight: inherit;">install.packages("plyr")</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"># iris の1列目から4列目のデータをベクトルとして格納</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<div style="font-size: 10pt; margin: 0in;">
<span style="color: blue; font-family: "arial" , "helvetica" , sans-serif;">.arg1 <- iris[,1]</span></div>
<div style="font-size: 10pt; margin: 0in;">
<span style="color: blue; font-family: "arial" , "helvetica" , sans-serif;">.arg2 <- iris[,2]<br />.arg3 <- iris[,3]<br />.arg4 <- iris[,4]</span></div>
<div style="color: #333333;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
</div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">#データフレーム(※)にまとめる</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="color: blue; font-family: "arial" , "helvetica" , sans-serif;"> d<-data.frame(.arg1,.arg2,.arg3,.arg4)</span><br />
<div style="color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
</div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit;">{※ 数値ベクトル、文字ベクトルを集めた2次元行列 data.frame(ベクトル1, ベクトル2・・・で作成する。)</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<div style="color: #333333;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<span style="border: 0px; color: blue; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">cluster <- kmeans(d,3) #k-meansの実行。クラスタ数は3に指定。<- d="" font="" k-means="" kmeans=""></-></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; color: blue; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">cluster #k-means の結果表示</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192906/pastedImage_12.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img class="image-9 jive-image" height="189" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192906/422-189/pastedImage_12.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; height: 189.469px; margin: 10px 10px 10px 0px; max-width: 422px; padding: 0px; vertical-align: baseline;" width="422" /></span></a></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="color: blue; font-family: "andale mono" , "times";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 14px;">result <- km$cluster #クラスタリング結果の抽出</span></span><br />
<span style="color: blue; font-family: "andale mono" , "times";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 14px;">result #クラスタリング結果の表示</span></span><br />
<div style="color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
</div>
<div style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192907/pastedImage_13.png" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="jive-image image-10" height="56" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192907/431-56/pastedImage_13.png" style="border: 0px; font-style: inherit; font-weight: inherit; height: 55.9135px; margin: 10px 10px 10px 0px; max-width: 431px; padding: 0px; vertical-align: baseline;" width="431" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">これで150の標本が3つのクラスターに分類され、それぞれに1,2,3というクラスター番号が割り振られているのがわかるかと思います。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit;">---------------------------------------------------------</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit;">次に、これと同じことをTableauからデータを与えてRに実行させてみたいと思います。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit;">まずはデータの準備から。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<div style="color: blue; font-size: 10pt; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">> d<-iris</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">> write.table(d,file="c:/iris")</span></div>
</div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">でirisのデータがCSVに落とせますので、これをTableauから読み込みます。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">列の名前は図のように指定します。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192909/pastedImage_14.png" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="image-11 jive-image" height="203" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192909/493-203/pastedImage_14.png" style="border: 0px; font-style: inherit; font-weight: inherit; height: 203.46px; margin: 10px 10px 10px 0px; max-width: 493px; padding: 0px; vertical-align: baseline;" width="493" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">次にSCRIPT_INTを使ってRスクリプトを含む計算式"Cluster" を作ります。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; line-height: 24px; padding: 0px; vertical-align: baseline;">
<div style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="en-US" style="font-family: "verdana";">---- </span><span lang="ja" style="font-family: "ms gothic";">計算式の中身</span><span lang="en-US" style="font-family: "verdana";"> ----</span></span></div>
<div lang="en-US" style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="margin: 0in;">
<span style="color: #333333; font-family: arial, helvetica, sans-serif;"><span style="font-size: 13.3333px;">SCRIPT_INT(</span></span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif;"><span style="font-size: 13.3333px;">'</span></span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif;"><span style="font-size: 13.3333px;">set.seed(42);</span></span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif;"><span style="font-size: 13.3333px;">d<-data.frame(.arg1,.arg2,.arg3,.arg4)</span></span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif;"><span style="font-size: 13.3333px;">result <- kmeans(d, 3);</span></span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif;"><span style="font-size: 13.3333px;">result$cluster;</span></span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif;"><span style="font-size: 13.3333px;">', </span></span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif;"><span style="font-size: 13.3333px;">SUM([Petal.Length]), SUM([Petal.Width]),SUM([Sepal.Length]),SUM([Sepal.Width]))</span></span></div>
<div style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
</div>
<div lang="en-US" style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; margin: 0in;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">---- ---- ---- ---- ---- </span></div>
</div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableauからデータを入れるところ以外は先ほどRコンソールから実行したコマンドとほとんど一緒なので、今度は、中で何をしているか気持ちは分かるような気がしませんか??</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="border: 0px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span><span style="border: 0px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">そしてこの関数の結果が整数型のベクトルとなることも理解できると思います。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">クロス表にすると、各標本データに対して計算されたクラスター番号が割り振られているのが分かります。</span></div>
<div style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192910/pastedImage_16.png" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img class="image-12 jive-image" height="341" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192910/590-341/pastedImage_16.png" style="border: 0px; font-style: inherit; font-weight: inherit; height: 341.15px; margin: 10px 10px 10px 0px; max-width: 590px; padding: 0px; vertical-align: baseline;" width="590" /></span></a></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ここまでくれば、あとは</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">の世界で自由にビジュアライゼーションを行えます。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<div style="font-size: 10pt;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">花の花弁とガク片の長さ、幅の</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">4</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">種類のデータ標本を散布図にしてクラスターを色にドラッグして見ましょう。標本が</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">3</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">種類のクラスターに分類されていることが分かります。</span></span></div>
<div style="font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: xx-small; font-style: inherit; font-weight: inherit;">※ K-meansを利用できるように事前に"plyr"パッケージをインストールください。</span></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: xx-small; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"></span></span><br />
<div style="color: black;">
<span style="color: blue; font-family: "arial" , "helvetica" , sans-serif; font-size: xx-small; font-style: inherit; font-weight: inherit;">install.packages("plyr")</span></div>
</div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192911/pastedImage_17.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="image-13 jive-image" height="366" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192911/613-366/pastedImage_17.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; height: 365.734px; margin: 10px 10px 10px 0px; max-width: 613px; padding: 0px; vertical-align: baseline;" width="613" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">実際の花の種類(Setosa,Versicolor,Virginica)の分類と比べて見ます。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ほとんど変わりませんね。</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">のクラスタモデルが実際のアイリスの花の種類をうまく分類できていることが分かります。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192912/pastedImage_18.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="jive-image image-14" height="355" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192912/594-355/pastedImage_18.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; height: 355.454px; margin: 10px 10px 10px 0px; max-width: 594px; padding: 0px; vertical-align: baseline;" width="594" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">応用編として、パラメータの数を自由に指定できるようにすれば、より細かに標本を分類することができますし、もしかしたら、同じ品種の中でも新たなクラスターを発見することができるかもしれませんね。</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">であればマウスを当てればすぐに何番の標本がどのクラスターに属するか一発でわかるので便利ですよね!</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192914/pastedImage_20.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="image-15 jive-image" height="379" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192914/592-379/pastedImage_20.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 10px 10px 10px 0px; max-width: 592px; padding: 0px; vertical-align: baseline; width: 591.791px;" width="592" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">--------</span></span></span></span></span></span></span></span></span></span></span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">今回は</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">+</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">連携の仕組みを理解するために</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">を取り上げてみましたが、</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">実は</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau 10</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> では</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">クラスタの機能を</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">自体が既に取り込んでいるんですね。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ただ、</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">k-means</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">以外のモデリング技法(階層型クラスタリング、</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">EM</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">アルゴリズム、はたまた今話題の機械学習などなど・・・)</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">が提供する先進的なアルゴリズムを利用するには、これからも</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">連携が必要になります。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">だったら、可視化のプログラミングを考えることなく、データからもっと簡単に自由な発見を得ることができるのがスゴイところだと思います。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">Tableau+Rの連携でデータサイエンティストとデータアーティストのコラボレーションが進んだらオモシロイことが起きそうですね。</span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 10pt; font-style: inherit; font-weight: inherit;">以上、ご参考になれば幸いです。</span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; line-height: 24px; padding: 0px; vertical-align: baseline;">
<div style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">※ ワークブックのダウンロードはこちらからどうぞ。(文末にワークブックの添付があります)</span></div>
<span style="color: #333333; font-family: "ms gothic";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px;">Tableau Community Japan: </span></span><br />
<span style="color: #333333; font-family: "ms gothic";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px;">Tableau + R 連携で知っておきたいこと</span></span><br />
<span style="color: #333333; font-family: "ms gothic";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px;">https://community.tableau.com/docs/DOC-10017</span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;"><br /></span></span><span style="color: #333333; font-family: "ms gothic";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px;">※ 尚、Tableau+R連携におけるRのコードスクリプティングについては、サポートの範囲外となりますので、ご了承ください。</span></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;"><br /></span></span><span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;"><br /></span></span></span><span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;"><br /></span></span><br />
<div style="color: #333333; font-family: "ms gothic"; font-size: 10pt; font-style: inherit; font-weight: inherit;">
</div>
</div>
Shingohttp://www.blogger.com/profile/16554187461943466265noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-10116334326835795292017-02-16T23:16:00.001+09:002017-02-21T16:38:48.561+09:00Tableau + R 連携を使いこなそう! その1 - 簡単な足し算に挑戦<br />
<br />
<br />
<br />
<br />
<header style="border: 0px; color: #333333; font-size: 14px; line-height: 2.2em; margin: 0px 0px 25px; padding: 0px; position: relative; vertical-align: baseline;"><div class="j-byline font-color-meta" style="border: 0px; clear: both; color: #8b8b8b; font-style: inherit; font-weight: inherit; line-height: 1.5em; margin: 10px 0px 20px; overflow: visible; padding: 0px; position: relative; vertical-align: baseline; word-wrap: break-word;">
<div class="j-version j-rc4" style="background-clip: padding-box; border-radius: 0px !important; border: 1px solid rgb(218, 218, 218); font-size: 12px; font-style: inherit; font-weight: inherit; line-height: 1em; margin: 0px; padding: 6px 10px 6px 25px; position: absolute; right: 0px; top: 0px; vertical-align: baseline; z-index: 3;">
<br /></div>
</div>
</header><span style="font-family: "arial" , "helvetica" , sans-serif;"><span class="j-page-crease j-ui-elem" style="background-position: -100% -100%; background-repeat: no-repeat; border: 0px; color: #333333; font-size: 14px; margin: 0px; padding: 0px; vertical-align: baseline;"></span><span style="background-color: white; color: #333333; font-size: 14px;"></span></span><br />
<span style="color: #333333; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192915/pastedImage_0.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="image-16 jive-image" height="295" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192915/479-295/pastedImage_0.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; height: 295.126px; margin: 10px 10px 10px 0px; padding: 0px; vertical-align: baseline; width: 479px;" width="479" /></a></span><br />
<span style="color: #333333; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit;"><br /></span>
<span style="color: #333333; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit;">皆さんこんにちは bashii と申します。</span><br />
<br />
<br />
<br />
<br />
<br />
<section class="jive-content-body" style="border: 0px; margin: 0px 0px 15px; padding: 0px; vertical-align: baseline;"><div class="jive-rendered-content" style="border: 0px; margin: 0px; overflow-x: auto; overflow-y: hidden; padding: 0px; vertical-align: baseline;">
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "andale mono" , "times";"><span style="font-size: 13.3333px;">今回、</span></span><span style="font-size: 13.3333px; font-style: inherit; font-weight: inherit;">初めてこちらのブログに投稿させていただきます。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit;">よろしくお願いします。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit;">データサイエンスが注目される昨今、RとTableau連携を使いこなしたい! と考えてる方もたくさんいらっしゃると思います。</span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="en-US" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">と</span><span lang="en-US" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">を連携させる意味や、</span><span lang="en-US" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">をセットアップして実際に</span><span lang="en-US" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">から利用するところまでインストラクションについてはこちらのブログで紹介されているので、是非最初にこちらをご覧になってください。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableauで</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Rをつかってみよう!(準備編)</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a class="jive-link-external-small" href="http://tableaujpn.blogspot.jp/2016/08/tableaur.html" rel="nofollow" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">http://tableaujpn.blogspot.jp/2016/08/tableaur.html</a></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableauで</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Rをつかってみよう!(実践編)</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a class="jive-link-external-small" href="http://tableaujpn.blogspot.jp/2016/08/tableaur_12.html" rel="nofollow" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">http://tableaujpn.blogspot.jp/2016/08/tableaur_12.html</a></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">と</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">を連携をやってみて、</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Rserve(Rサーバー)</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">との接続はできた! サンプルも動いた!というところまでは簡単にできるかと思います。さて、次のステップとして実際に</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">のコーディングを含む計算フィールドを作成することになりますが、その際に知っておくべきポイントがいくつかありますので、今回はそのあたりをご紹介していきたいと思います。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="font-family: "andale mono" , "times";">実際に</span></span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">の気持ちになって考えられるよう、Rコンソールから</span><span style="font-size: 13.3333px; font-style: inherit; font-weight: inherit;">コマンドを打ちながら理解していきましょう。 </span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">まず、<span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">と</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">を連携の基本的な仕組みについて図に表してみました。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192915/pastedImage_0.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="image-16 jive-image" height="295" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192915/479-295/pastedImage_0.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; height: 295.126px; margin: 10px 10px 10px 0px; padding: 0px; vertical-align: baseline; width: 479px;" width="479" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableauと</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">は以下のように連携して処理を行います。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">1.</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">から</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">サーバーに入力データを送る</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">2.事前に書かれた</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">スクリプトにしたがって</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">サーバーに計算をさせる</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">3.</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">が</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">サーバーから計算された結果を受け取って新しいメジャー(またはディメンジョン)とする</span></span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">まずは、簡単なサンプルで</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">と</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">のデータ入出力の仕組みを解説してみます。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">に「足し算をさせるだけ」のサンプルです。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">下のようなデータを読み込みます。</span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192899/pastedImage_3.png" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="image-2 jive-image" height="204" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192899/pastedImage_3.png" style="border: 0px; font-style: inherit; font-weight: inherit; margin: 10px 10px 10px 0px; max-width: 283px; padding: 0px; vertical-align: baseline;" width="283" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 14px; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Tableau</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">から</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">のスクリプトを実行するには、</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">SCRIPT_INT</span></span><span style="font-size: 13.3333px; font-style: inherit; font-weight: inherit;">関数</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"> (Rからの出力が整数型の場合)や、SCRIPT_REAL関数(Rからの出力結果が実数型の場合) </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">を使って計算フィールドを作成します。 </span></span><br />
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">さて、VALUE1とVALUE2を足すための計算フィールドを作ってみましょう。</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">整数の足し算なので </span><span style="font-size: 13.3333px; font-style: inherit; font-weight: inherit;">SCRIPT_INT() 関数を使って </span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">"R_ADD_VALUE"という計算フィールド</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">を以下のように作成します。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">------- </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">計算式</span></span><span style="font-size: 13.3333px; font-style: inherit; font-weight: inherit;">"R_ADD_VALUE"</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">の中身 </span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">-------</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg9OeGDS3TIVU1AiNjZ86tXbqnfuKflBKnEAyLyoyzNT1Un6P34fHSvigXCTPkVmpx_eplGkItkqYieijzWakqQQC89sU-Pxfcryi4fXSsjYSrdz2HeQd0uFdkKMqw83sbScMBxhpuENA/s1600/Capture01.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img border="0" height="368" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg9OeGDS3TIVU1AiNjZ86tXbqnfuKflBKnEAyLyoyzNT1Un6P34fHSvigXCTPkVmpx_eplGkItkqYieijzWakqQQC89sU-Pxfcryi4fXSsjYSrdz2HeQd0uFdkKMqw83sbScMBxhpuENA/s640/Capture01.PNG" width="640" /></span></a></div>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
</span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">VALUE1 と VALUE2 を受け取り、それぞれ.arg1 と.arg2 に代入し、足し算した結果を返します。</span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">結果は下の図の右端ようになります。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192916/pastedImage_1.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img class="image-17 jive-image" height="257" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192916/pastedImage_1.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 10px 10px 10px 0px; max-width: 410px; padding: 0px; vertical-align: baseline;" width="410" /></span></a></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">Tableauからの入力はRに対してベクトル(ザックリ言うと、<span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">データをいくつかまとめて並べたもの</span><span style="font-size: 10pt; font-style: inherit; font-weight: inherit;">)として渡されます。</span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: 10pt; font-style: inherit; font-weight: inherit;"><br /></span>
同じことを今度はRの気持ちになって、Rのコンソールからも実行してみましょう。</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Rでベクトルを作成するには c(10,20,30,40,50) のように書きます。</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><br /></span>
<span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">実際にR</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">コンソールから以下を実行してみましょう。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span lang="ja" style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192901/pastedImage_5.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><img class="jive-image image-4" height="84" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192901/pastedImage_5.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 10px 10px 10px 0px; max-width: 498px; padding: 0px; vertical-align: baseline;" width="498" /></a></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ここで、ポイントとして、</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">SCRIPT_* </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">の引数に列を指定するときは、何らかの集計を掛けるということです。この理由としては</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">SCRIPT_* </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">が内部で表計算を用いていることに起因するのですが、とりあえず </span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">SUM() </span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">か </span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ATTR()</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">を付けてあげないといけません。入力がユニークな行であれば</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">SUM</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">()でも</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ATTR()</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">でも実は結果は同じになります。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; min-height: 8pt; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ここで、</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">ID</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">列を取り去ってみると、</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">NAME</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">で</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">SUM</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">合計された値が</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">に渡されていることがわかります。</span></span></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">これは、ドリルダウン・アップをしたときに分析の切り口に応じて</span><span lang="en-US" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">R</span><span lang="ja" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">に渡される入力値も動的に変わるので有用です。</span></span></div>
<div style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<a href="https://community.tableau.com/servlet/JiveServlet/showImage/102-10017-4-192925/pastedImage_3.png" style="border: 0px; color: #333333; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><img class="jive-image image-18" height="162" src="https://community.tableau.com/servlet/JiveServlet/downloadImage/102-10017-4-192925/pastedImage_3.png" style="border: 0px; font-size: 13.3333px; font-style: inherit; font-weight: inherit; margin: 10px 10px 10px 0px; max-width: 336px; padding: 0px; vertical-align: baseline;" width="336" /></span></a></div>
<div class="smz-translated loading" smz-translated="1" style="border: 0px; color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit; line-height: 24px; padding: 0px; vertical-align: baseline;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-size: 10pt; font-style: inherit; font-weight: inherit;"><br /></span>
<span style="font-size: 10pt; font-style: inherit; font-weight: inherit;">以上、ご参考になれば幸いです。</span></span></div>
<div class="smz-translated loading" lang="ja" smz-translated="1" style="border: 0px; line-height: 24px; padding: 0px; vertical-align: baseline;">
<div style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">※ ワークブックのダウンロードはこちらからどうぞ。(文末にワークブックの添付があります)</span></div>
<span style="color: #333333; font-family: "ms gothic";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px;">Tableau Community Japan: </span></span><br />
<span style="color: #333333; font-family: "ms gothic";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px;">Tableau + R 連携で知っておきたいこと</span></span><br />
<span style="color: #333333; font-family: "ms gothic";"><span style="font-family: "arial" , "helvetica" , sans-serif; font-size: 13.3333px;">https://community.tableau.com/docs/DOC-10017</span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;"><br /></span></span>
<span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;">※ 尚、Tableau+R連携におけるRのコードスクリプティングについては、サポートの範囲外となりますので、ご了承ください!!</span></span></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;"><br /></span></span>
<span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;"><br /></span></span>
<span style="color: #333333; font-family: "ms gothic";"><span style="font-size: 13.3333px;"><br /></span></span>
</span><br />
<div style="color: #333333; font-size: 10pt; font-style: inherit; font-weight: inherit;">
<br /></div>
</div>
</div>
</section>Shingohttp://www.blogger.com/profile/16554187461943466265noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-43447515430263146172017-01-27T10:48:00.000+09:002017-01-27T10:48:17.828+09:00傾向線③:スモールマルチプル×統計値Nanaeです。<br />
<br />
傾向線シリーズの最終回です。<br />
第一弾では、Tableauの傾向線はどれくらいインパクトがあるのか、第二弾では、傾向線を出すだけでなく見るべき指標も確認しましょう、とお伝えしました。ラストの第三弾では、第一弾と第二弾でやったことを組み合わせて、Tableauならではの見方をご紹介します。<br />
<br />
まずは気になる2つのメジャーを発見し、そのメジャー間の関係を様々なディメンションごとで切り分けるスモールマルチプルを作ります。ここまでは第一弾の内容です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz108ttbzkTg4DdR_7NIlL3tlo1Y7OAAP2Ot2-QsyeiARmx33fc2gnncztr1K9YzTR9eEoeAO0QPVSIJXz_NUJOSBeUo_egHFj3Z8EPCkzpnxXgmksYWfWsqo8HBR-I-7Mk_OgB5gcxFM/s1600/%25E3%2582%25B9%25E3%2583%25A2%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%259E%25E3%2583%25AB%25E3%2583%2581%25E3%2583%2597%25E3%2583%25AB.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz108ttbzkTg4DdR_7NIlL3tlo1Y7OAAP2Ot2-QsyeiARmx33fc2gnncztr1K9YzTR9eEoeAO0QPVSIJXz_NUJOSBeUo_egHFj3Z8EPCkzpnxXgmksYWfWsqo8HBR-I-7Mk_OgB5gcxFM/s1600/%25E3%2582%25B9%25E3%2583%25A2%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%259E%25E3%2583%25AB%25E3%2583%2581%25E3%2583%2597%25E3%2583%25AB.PNG" /></a><br />
<br />
そして各散布図のR-2乗値を把握します。R-2乗値は、R連携してもいいですが、ここでは計算式を書いてみます。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfBvvsJ9yG3vO7uDjZydj9iCgf3GfKy6JAj-48zSUJdORh5UDMtI0C2_Y-xpdvj5bSt3WDYBFztVIbL62xJibxtW1-IUL-5tcs0gUW92x6pNH53G-FDznVDLpY4sWud78oHUBOQOmwu1c/s1600/R%255E2%25E8%25A8%2588%25E7%25AE%2597%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2589.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfBvvsJ9yG3vO7uDjZydj9iCgf3GfKy6JAj-48zSUJdORh5UDMtI0C2_Y-xpdvj5bSt3WDYBFztVIbL62xJibxtW1-IUL-5tcs0gUW92x6pNH53G-FDznVDLpY4sWud78oHUBOQOmwu1c/s1600/R%255E2%25E8%25A8%2588%25E7%25AE%2597%25E3%2583%2595%25E3%2582%25A3%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2589.png" /></a><br />
<br />
<span style="color: #6fa8dc; font-size: x-small;">SQUARE((1 / (Size()-1))*Window_Sum(((Sum([売上]) - Window_Avg(Sum([売上])))/Window_Stdev(Sum([売上]))) *(Sum([数量]) - Window_Avg(Sum([数量])))/Window_Stdev(Sum([数量]))))</span><br />
<br />
これを色に入れます。これで一気に各散布図のR-2乗値が把握できるようになります。違いをわかりやすくするためにステップドカラーにしてみました。<br />
<br />
これでマウスオーバーしなくても一度に、分布、傾向線の向き、R-2乗値の大きさがわかりますね!<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmochuVuAlQ5ci2al62sU5fxYaIw2ytA8VhJZ6VU7nCkYXDDItl-AF-1cY1Z89jO-2HCDv0ORr4NioQsDkotnOHRkPLJv1_ZM5dN9lzVhFErYiO-oY41j1GcrLsiMUDKeEuUWWgCX-9MU/s1600/%25E5%2582%25BE%25E5%2590%2591%25E7%25B7%259A%25E3%2581%25A8R%255E2%25E8%25BF%25BD%25E5%258A%25A0.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmochuVuAlQ5ci2al62sU5fxYaIw2ytA8VhJZ6VU7nCkYXDDItl-AF-1cY1Z89jO-2HCDv0ORr4NioQsDkotnOHRkPLJv1_ZM5dN9lzVhFErYiO-oY41j1GcrLsiMUDKeEuUWWgCX-9MU/s1600/%25E5%2582%25BE%25E5%2590%2591%25E7%25B7%259A%25E3%2581%25A8R%255E2%25E8%25BF%25BD%25E5%258A%25A0.PNG" /></a><br />
<br />
青色である通常配送の家具と家電は、R-2乗が大きいのでこの傾向線のあてはまりがよく、マウスオーバーしてp値を見ると0.0001未満ですのでたまたま出てきた線でもなさそうです。<br />
紫色である3つの散布図も、R-2乗がある程度大きく、p値は0.0001未満ですので、青と一緒に検討してもよいかもしれません。<br />
青と紫の5つの傾向線を比較すると、通常配送の家具は少ない数量でも売上が大きめかもしれないなどと読み取れます。<br />
<br />
R-2乗の行列を組み合わせてもわかりやすいと思います。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgQY28vXTh8YWWcJAaJNom6dglaItKUT-bSRuvrARuRFYhhKVHj3PcUJv1l1mxs99NYy1Ay9AThqtm5d9uzAvtremVCMkbP_jlUv9Aj3jVaC-Tpc3uBZHWE0bDvXaYT4Mr0C_3jg7-XbE/s1600/dash.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgQY28vXTh8YWWcJAaJNom6dglaItKUT-bSRuvrARuRFYhhKVHj3PcUJv1l1mxs99NYy1Ay9AThqtm5d9uzAvtremVCMkbP_jlUv9Aj3jVaC-Tpc3uBZHWE0bDvXaYT4Mr0C_3jg7-XbE/s1600/dash.PNG" /></a><br />
<br />
以上、計3回の傾向線特集でした。<br />
Tableauは2変数間の関係を見るとき、さまざまなディメンションで切り分けてみていくことが得意です。さらにR-2乗値やp値も同時に見てみてください。そしてそれらを組み合わせて活用する方法の1つをご紹介しました。<br />
<br />
Nanae
<br />
<div class="tableauPlaceholder" id="viz1484266293779" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/3_/3_467/sheet2/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='site_root' value='' /><param name='name' value='3_467/sheet2' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/3_/3_467/sheet2/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1484266293779'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='1004px';vizElement.style.height='795px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>Nanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com1tag:blogger.com,1999:blog-2398716554755334461.post-11857766638092346092017-01-20T19:06:00.001+09:002017-01-20T19:06:19.854+09:00傾向線②:その傾向線、本当に使って大丈夫??Nanaeです。こんにちは。傾向線第2弾で、今回は統計側の話題です。<br />
<br />
行と列に連続値が入っているチャート、例えば散布図なんかを作ったら、Tableauではドラッグアンドドロップだけで傾向線を引けますよね。傾向線は一瞬で上がり下がりの傾向がわかるのでよく使われる方も多いと思います。そのとき、傾向線の傾きだけですぐに「これは正の相関だな!」とすぐに解釈してませんか!?それ、実は危険かもしれません。そこで今回は、傾向線を引いたときにTableauが出してくれる線や値から、その傾向線を使っても問題ないのか確認してみましょう。<br />
<br />
まず、傾向線って何でしょうか。ある変数yを他の変数xによって計算するためのモデルのことです。傾向線をマウスオーバーするとy=ax+bという形で計算式が出てきますよね、傾向線はあの式を描いています。下の例では、yが売上、xが数量で、数量が1個増えると、売上は6349.79円増えるということを意味しています。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWfmzfNDSwqce5OJ-A91k4gCYnLCGNHmA7aEvvHw8ajAJrUGUugv7HNTDHtME-XLprHG1_lEFvVJrQAbwL41gRK2AHbSHlt-Q_THu7Z0plxHh-XzsizGC8cBSbEWnrO7ka5s3s7YrpE-s/s1600/1%25E5%2582%25BE%25E5%2590%2591%25E7%25B7%259A%25E6%25A6%2582%25E8%25A6%2581.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWfmzfNDSwqce5OJ-A91k4gCYnLCGNHmA7aEvvHw8ajAJrUGUugv7HNTDHtME-XLprHG1_lEFvVJrQAbwL41gRK2AHbSHlt-Q_THu7Z0plxHh-XzsizGC8cBSbEWnrO7ka5s3s7YrpE-s/s1600/1%25E5%2582%25BE%25E5%2590%2591%25E7%25B7%259A%25E6%25A6%2582%25E8%25A6%2581.png" /></a><br />
<br />
でもその傾向線から何かの情報を得る前に、その傾向線をそもそも使っていいのか確認しておく必要があります。傾向線をマウスオーバーすると、式と一緒にR-2乗とP値という値が出てきます。ここが見てほしいポイントです。結論としては、以下2点を満たしているかチェックしてください!ざっくりとした目安になります。<br />
<br />
<span style="font-size: large;"><b><span style="color: orange;">① R-2乗が0.5や0.6程度より大きければ</span><span style="color: orange;">OK</span></b></span><br />
<span style="color: orange; font-size: large;"><b>② p値が0に近ければOK</b></span><br />
<div>
<br /></div>
傾向線というのはとにかく無理やりでも出しただけですので、その傾向線ってちゃんとデータをとらえてるんだよね?その傾向線って今回たまたま出てきただけってわけじゃないよね?こんなことを、この2つの値から確認します。<br />
<br />
<span style="color: orange;"><b>① R-2乗(アールじじょう)</b></span>:データがどの程度モデルから説明されているか?<br />
<br />
<span style="color: #3d85c6;"><b>決定</b></span>係数とか<span style="color: #3d85c6;"><b>寄与</b></span>率と呼ばれます。モデルとデータの関係をみたとき、このモデルはどの程度データを<span style="color: #3d85c6;"><b>決定</b></span>(=説明)しているのか、<span style="color: #3d85c6;"><b>寄与</b></span>しているか、を表しています。0~1の値を取るもので、<b><span style="color: #3d85c6;">値が大きいほどデータはモデルで説明されているよい</span></b>モデルであり、そのとき各マークは傾向線の近くに集まります。逆に0に近ければ、傾向線とは関係なく散らばります。<br />
<br />
じゃあR-2乗がいくつ以上であれば十分だと判断していいか、肝心なところがきっちりと決まっているわけではありませんが、<span style="color: #3d85c6;"><b>0.5とか0.6より大きければ役に立つ</b></span>と言われています。<br />
<br />
<span style="color: orange;"><b>② p値(ピーち)</b></span>:その傾向線は偶然できたもの?信頼できるもの?<br />
<br />
possibilityのpで、<span style="color: #3d85c6;"><b>有意</b></span>確率と呼ばれます。p値が低ければ、この傾向線は偶然ではなく、同じ条件の他のデータで傾向線を出しても、似たような線が得られると考えることができます。<br />
<br />
ちなみに、値が小さいほうが良いわけは、こんな流れで考えています。p値とはこのモデルが<b><span style="color: #3d85c6;">成立しない</span></b>確率です。その確率がとても<b><span style="color: #3d85c6;">低い</span></b>ってことは、このモデルは偶然できたものではなく意味があるだろう(意味が有る→<span style="color: #3d85c6;"><b>有意</b></span>)。という流れです。<br />
<br />
ということで、p値というのは、ただの偶然出てきたわけではないことを確認していたんですね。p値は<span style="color: #3d85c6;"><b>5%か1%より小さければOK</b></span>です。<br />
<br />
まずは傾向線と一緒に出てくるR-2乗とp値の2つを意識すると、より正しく傾向線を扱えるようになると思います!<br />
<br />
---Advanced---<br />
さらにもう一歩進めるには、各マークと回帰モデルのズレ(=残差)に偏りがないかも確認したほうがいいです。<br />
<br />
残差のデータを得るために、Desktopのメニューから、ワークシート→エクスポート→データ(MSのアクセスファイルになります)に接続します。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijCi3QGX1UGsbRBwRwI4KrM53KGpMuoFnw7h5tAzGOSqD7VYax1havetq-wxMuE33TUDSrBwjej-tb3OPVUOJf52wZsi7k2zNgksYdu77CxVbi4koKjwVKc34ZLVlr5tr8lcIVbt083gc/s1600/4%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2582%25A8%25E3%2582%25AF%25E3%2582%25B9%25E3%2583%259D%25E3%2583%25BC%25E3%2583%2588.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijCi3QGX1UGsbRBwRwI4KrM53KGpMuoFnw7h5tAzGOSqD7VYax1havetq-wxMuE33TUDSrBwjej-tb3OPVUOJf52wZsi7k2zNgksYdu77CxVbi4koKjwVKc34ZLVlr5tr8lcIVbt083gc/s1600/4%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2582%25A8%25E3%2582%25AF%25E3%2582%25B9%25E3%2583%259D%25E3%2583%25BC%25E3%2583%2588.png" /></a><br />
<br />
ここに入っているデータは、散布図で使った、売上と数量、それから、モデルから算出された予測値と残差です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4RdB4irQXqP8cRQl_2FQA0YPSQo1NN7iQL8zb07hgaI_OEl_08HGgh2Afy1o4CrtbyNkvKh4DpTk84fdsPB45uD4J4oKnwLRLbJgktxBQpzOaY72ASYXOZt3Oy6RRMhrhBtJxJdFHvY0/s1600/6%25E3%2582%25A8%25E3%2582%25AF%25E3%2582%25B9%25E3%2583%259D%25E3%2583%25BC%25E3%2583%2588%25E7%25B5%2590%25E6%259E%259C%25E3%2581%25AE%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E4%25B8%2580%25E8%25A6%25A7.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4RdB4irQXqP8cRQl_2FQA0YPSQo1NN7iQL8zb07hgaI_OEl_08HGgh2Afy1o4CrtbyNkvKh4DpTk84fdsPB45uD4J4oKnwLRLbJgktxBQpzOaY72ASYXOZt3Oy6RRMhrhBtJxJdFHvY0/s1600/6%25E3%2582%25A8%25E3%2582%25AF%25E3%2582%25B9%25E3%2583%259D%25E3%2583%25BC%25E3%2583%2588%25E7%25B5%2590%25E6%259E%259C%25E3%2581%25AE%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E4%25B8%2580%25E8%25A6%25A7.PNG" /></a><br />
<br />
この残差が0付近に集中して均等に散らばっていればOKです。どのマークでもモデルとのズレが均等であれば、そのズレは誤差と考えることができるので、このモデルはあてはまりがよかったんだなといえます。<br />
<br />
均等にばらついているかみるために残差と数量の散布図と、残差が0付近に集中しているかみるためのヒストグラムを作成しました。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgYJLcgXT7yY1b4uwOzmfXoCKdV7YSn21f5QMz8VSI8iX1OQF6_VjG8vVXzTBY9AQkh-ARts3xatOe2wtbKu-OuwqybJGxx7iVkdHTUfg5PT5gUXvVsv4DteOrzeCSNsQ0yhBZP99ZV1c/s1600/7%25E6%25AE%258B%25E5%25B7%25AE%25E3%2583%2597%25E3%2583%25AD%25E3%2583%2583%25E3%2583%2588.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgYJLcgXT7yY1b4uwOzmfXoCKdV7YSn21f5QMz8VSI8iX1OQF6_VjG8vVXzTBY9AQkh-ARts3xatOe2wtbKu-OuwqybJGxx7iVkdHTUfg5PT5gUXvVsv4DteOrzeCSNsQ0yhBZP99ZV1c/s1600/7%25E6%25AE%258B%25E5%25B7%25AE%25E3%2583%2597%25E3%2583%25AD%25E3%2583%2583%25E3%2583%2588.png" /></a><br />
<br />
散布図からは、数量が大きくなればなるほど0から遠い位置でプロットされてしまっていることがわかります。よって、数量が少ないときはまだ使えるかもしれないけど、数量が多いときは信頼感に欠けることが読み取れます。理想は、数量がいくつであっても0付近に分布するような散布図です。<br />
ヒストグラムからは0付近に多く出現しているので、OKです。<br />
<br />
さらに、実際の売上と、モデルから算出された予測値が近いかどうかも見てみるために、実際の売上と算出された売上を散布図で表しました。y=xすなわち左下から右上に対角線で分布しているので、まぁまぁ予測できていますが、売上が大きくなるにつれて分散が大きくなっていることが読み取れます。もしも予測値が売上とが完全に一致していれば、対角線上にのみプロットされます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5KOYP68tINfOGrrCfRs0Q4o2oN_DOM7i81JXQEypLuUgLTmjCixrs82MRGIVNNxINlD6WTo6pmMW9ukPFQEdkQrPfYGevHKE0_oBMqHGeO3zdANadWHpmaJhKrnF6SPVU9tMruvQEeJE/s1600/8%25E8%25A6%25B3%25E6%25B8%25AC%25E5%2580%25A4%25E3%2581%25A8%25E4%25BA%2588%25E6%25B8%25AC%25E5%2580%25A4.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5KOYP68tINfOGrrCfRs0Q4o2oN_DOM7i81JXQEypLuUgLTmjCixrs82MRGIVNNxINlD6WTo6pmMW9ukPFQEdkQrPfYGevHKE0_oBMqHGeO3zdANadWHpmaJhKrnF6SPVU9tMruvQEeJE/s1600/8%25E8%25A6%25B3%25E6%25B8%25AC%25E5%2580%25A4%25E3%2581%25A8%25E4%25BA%2588%25E6%25B8%25AC%25E5%2580%25A4.png" /></a><br />
<br />
傾向線シリーズ第2弾では、<br />
前半で、<br />
R-2乗から、傾向線はこのデータをうまく説明してるよね?<br />
p値から、たまたま出てきた再現性のない傾向線ではないよね?<br />
後半で、<br />
残差から、モデルの値と実際の値との差は誤差として考えていいんだよね?<br />
ということを確認しました。<br />
<br />
気軽に出せる傾向線が、その分析で使うのに本当に適切なのかを判断する方法のご紹介でした!<br />
<br />
Nanae<br />
<br />
<br />
<div>
<br /></div>
<div class="tableauPlaceholder" id="viz1484266675054" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/2_/2_1047/sheet0/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='site_root' value='' /><param name='name' value='2_1047/sheet0' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/2_/2_1047/sheet0/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1484266675054'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='100%';vizElement.style.height=(divElement.offsetWidth*0.75)+'px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
Nanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-90596291059906283912017-01-13T19:46:00.000+09:002017-01-13T19:46:57.023+09:00傾向線①:Tableauの傾向線はとっても便利!<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span lang="en-US">Nanae</span><span lang="ja">です。とーってもお久しぶりです。</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
みんながよく使う傾向線をテーマに、3回シリーズで書いていきます。今回は第一弾です。<span lang="ja" style="font-size: 11pt;">今回は、</span><span lang="en-US" style="font-size: 11pt;">Tableauの</span><span lang="ja" style="font-size: 11pt;">傾向線の良さを3点に絞ってお話しします。</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span style="color: #ed7d31; font-size: 11pt; font-weight: bold;">とにかく簡単!</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span lang="ja">ご存知のとおり、傾向線を引くのはドラッグアンドドロップするだけです。</span><span lang="en-US">1</span><span lang="ja">秒でできます。操作の簡単さもさることながら、傾向線という名称も誰でもわかるように工夫されています。他の製品だと線形回帰モデルなどと書いてあることが多いですが、そういった専門用語を知らなくても傾向を知るために引く線であるとわかりやすいように考慮されています。</span></div>
<div lang="en-US" style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
</div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdSUphE7RT5QScdS9bWUyi_t5ArSq9xF8fYe4b0ilnStxeMBjgtVwAN8H6n4ox-cZqzZzDThpi0TYeSMja1rKvHsbT3JuRshfh9h-y7UC3vkKCWonl22gREQcjkLWDaOchlu01GQ11Jh4/s1600/%25E6%2595%25A3%25E5%25B8%2583%25E5%259B%25B3%25E3%2581%25A8%25E5%2582%25BE%25E5%2590%2591%25E7%25B7%259A.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdSUphE7RT5QScdS9bWUyi_t5ArSq9xF8fYe4b0ilnStxeMBjgtVwAN8H6n4ox-cZqzZzDThpi0TYeSMja1rKvHsbT3JuRshfh9h-y7UC3vkKCWonl22gREQcjkLWDaOchlu01GQ11Jh4/s1600/%25E6%2595%25A3%25E5%25B8%2583%25E5%259B%25B3%25E3%2581%25A8%25E5%2582%25BE%25E5%2590%2591%25E7%25B7%259A.png" /></a></div>
<div style="color: #ed7d31; font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span style="font-weight: bold;"><br /></span>
<span style="font-weight: bold;">一度に様々な角度から素早く傾向がみられる!</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
まず、たくさん変数があって、それぞれの変数間の関係性をみたいとき、一気に大きい行列散布図を作れます。<span style="font-size: 11pt;">散布図同士を比較することも簡単ですね。</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-jVZySPPp8zCksgWjPonROFY-v8LnPwIRIgTs1YYayCQEMEXz_DpbhcL733iNNdXxhHx0vFswtjbWGYNQBacPe1ifBDCdt62NiyQqVRVhml2FTwto2Vh5cR9qRsc8PXTN-0U6PG0jdzI/s1600/%25E8%25A1%258C%25E5%2588%2597%25E6%2595%25A3%25E5%25B8%2583%25E5%259B%25B3.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-jVZySPPp8zCksgWjPonROFY-v8LnPwIRIgTs1YYayCQEMEXz_DpbhcL733iNNdXxhHx0vFswtjbWGYNQBacPe1ifBDCdt62NiyQqVRVhml2FTwto2Vh5cR9qRsc8PXTN-0U6PG0jdzI/s1600/%25E8%25A1%258C%25E5%2588%2597%25E6%2595%25A3%25E5%25B8%2583%25E5%259B%25B3.PNG" /></a></div>
<div lang="en-US" style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
散布図と傾向線のかたまりがこれだけ出てくると、気になる散布図を<span style="font-size: 11pt;">もっと詳しくみてみたくなります。たとえば、利益と数量の散布図を見ると、結構散らばってます。これを地域ごとで分けたらもっとわかりやすい傾向が出てくるかもしれない、さらに出荷の種類ごと、商品のカテゴリごと、いろんな角度で分けて掘り下げていったら何か傾向が出てくるかもしれないと興味が出てくるかと思います。</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span style="font-size: 11pt;">でもその条件を一つ一つフィルターしながら確認するのは大変すぎます。さらにそれらの結果を並べて比較するのは困難です。。。</span></div>
<div lang="en-US" style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span lang="en-US">Tableau</span><span lang="ja">はこのあたり、大得意です!たとえば、</span><span lang="en-US">1</span><span lang="ja">注文ごとの利益と数量の関係を、</span><span lang="en-US">8</span><span lang="ja">地域×3顧客区分</span><span lang="ja">×</span><span lang="en-US">3</span><span lang="ja">カテゴリ=72</span><span lang="en-US">パターンでみてみるとしたとき、</span><span style="font-size: 11pt;">Tableauではほんの数秒で以下のように72パターン並べて比較できます。</span><span style="font-size: 14.6667px;">従来のツールと比較すると、</span><span style="font-size: 11pt;">これはものすごい時間短縮です!このように深堀が簡単だからこそ、従来わからなかったインサイトも得られます。</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span lang="ja"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLI9JNLi0Rh0kEDfIOdV0cJNL6aEz3Uk1HBuPbSe9KN69ljVD5EAvyY8doFxKlOJ499hWihplScgpaYt1Gp1C7HjbL9IhJSC1bzDSGYYIgcXAs0ZJrimhIa3WR-MnsEGw-5QN3tkHR8NQ/s1600/%25E3%2582%25B9%25E3%2583%25A2%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%259E%25E3%2583%25AB%25E3%2583%2581%25E3%2583%2597%25E3%2583%25AB.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLI9JNLi0Rh0kEDfIOdV0cJNL6aEz3Uk1HBuPbSe9KN69ljVD5EAvyY8doFxKlOJ499hWihplScgpaYt1Gp1C7HjbL9IhJSC1bzDSGYYIgcXAs0ZJrimhIa3WR-MnsEGw-5QN3tkHR8NQ/s1600/%25E3%2582%25B9%25E3%2583%25A2%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%259E%25E3%2583%25AB%25E3%2583%2581%25E3%2583%2597%25E3%2583%25AB.PNG" /></a></span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span lang="ja"><br /></span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span style="font-size: 11pt;">このように表しておけば、「四国で家具を買う小規模事業所のお客さんからのオーダーは数量に対する利益が大きい」とか、「中部地方にある大企業のお客さんは、全体的に数量が増えるほど利益が減る(!)傾向にありますが、特に家電はその傾向が強い」とかどんどん読み取れるので、次のアクションや次の分析にスピーディーにつなげていけます。</span></div>
<div lang="en-US" style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span lang="ja">ちなみにこのように行列型で並べて一気に表現するのはスモールマルチプルと言われる可視化です。ここは従来型の分析ツールとの大きな差の</span><span lang="en-US">1</span><span lang="ja">つです。</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="color: #ed7d31; font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span style="font-weight: bold;">インタラクティブ!</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span lang="en-US">Tableau</span><span lang="ja">はインタラクティブ性が高いですが、傾向線の場合でも有効です。気になった部分を選択すると、そのマークだけで計算した傾向線がすぐに出てきます。これはインスタント分析と言われるものです。</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQt0UZ2zjreOztS9v-Z-EGkvNpN9TNhaJC3AcWZtEJvpadgoWY5Oh2Sq9Bl6K3bSCLj7hYPuKbC1vcy7Tnqzk_1YGGX09KcrlFf3UTsAs6Nz90apNfj_BGtUoIov5fnfpEQf2ort9SdoM/s1600/%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%25B3%25E3%2583%2588%25E5%2588%2586%25E6%259E%2590.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQt0UZ2zjreOztS9v-Z-EGkvNpN9TNhaJC3AcWZtEJvpadgoWY5Oh2Sq9Bl6K3bSCLj7hYPuKbC1vcy7Tnqzk_1YGGX09KcrlFf3UTsAs6Nz90apNfj_BGtUoIov5fnfpEQf2ort9SdoM/s1600/%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%25B3%25E3%2583%2588%25E5%2588%2586%25E6%259E%2590.png" /></a></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span lang="en-US"><br /></span>
<span lang="en-US">2015</span><span lang="ja">年の後半、事務用品だけたくさん売れるような施策を打っていたとすれば、</span><span lang="en-US">2015</span><span lang="ja">年</span><span lang="en-US">7</span><span lang="ja">月から</span><span lang="en-US">12</span><span lang="ja">月の事務用品の傾向を確認したくなるでしょう。そのとき、そのマークを選択するだけでピンポイントの傾向線がすぐに出てきます。施策を打った期間は全体と比べて傾向線の上がり度が大きくなっていますね。</span><span style="font-size: 11pt;">このように傾向線を引いたら気になったところをどんどん触ってみてください。</span><br />
<span style="font-size: 11pt;"><br /></span>
<span style="font-size: 11pt;">傾向線に限らずVizに表現したら選択して変化をみてみる、マウスオーバーしてツールヒントの情報をみてみる、といったことに少しずつ慣れていってほしいと思います。</span></div>
<div style="font-family: "Yu Gothic"; font-size: 11.0pt; margin: 0in;">
<span style="font-size: 11pt;"><br /></span></div>
<div style="margin: 0in;">
<div style="font-family: "yu gothic"; font-size: 11pt;">
<span style="font-size: 11pt;">Nanae</span></div>
<div style="font-family: "yu gothic"; font-size: 11pt;">
<br /></div>
</div>
<div class="tableauPlaceholder" id="viz1484267935793" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/1_/1_1969/sheet3/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='site_root' value='' /><param name='name' value='1_1969/sheet3' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/1_/1_1969/sheet3/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1484267935793'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='100%';vizElement.style.height=(divElement.offsetWidth*0.75)+'px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>Nanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com0tag:blogger.com,1999:blog-2398716554755334461.post-86532828995757899112016-12-28T19:02:00.001+09:002016-12-28T19:06:07.760+09:00タブローさんKaoriです!<br />
みなさん年末はいかがお過ごしでしょうか?<br />
あっという間に2016年も終わりを迎えようとしていますね・・・<br />
<br />
最近マメな更新ができておらず、申し訳ないです。<br />
2016年最後の投稿ということで、今回はタブローさんのお話をしたいと思います。<br />
思いのたけをぶちまけたのでよくわかんない感じになってしまった・・・でもきっとTableauってこういうコンセプトなのです。<br />
VizQLの話とか、なぜTableauが生まれたのかとか、これからのロードマップのこととか、やわ~くゆる~くお話調にまとめました。<br />
<br />
こんな感じなので、まじめに勉強したい人はこっちを読んでね。<br />
<br />
Tableau テクノロジー<br />
http://www.tableau.com/ja-jp/products/technology<br />
<br />
<br />
<br />
さて、でははじまりはじまり~~<br />
<br />
<br />
<br />
<br />
むかしむかし 人間は世の中を便利にするためにコンピュータを作りました。<br />
コンピュータは自分が動くためにデータを生むようになりました。<br />
コンピュータはとても便利でしたので、瞬く間にいろいろなところで使われるようになり、たくさんの種類や量のデータが生まれるようになりました。<br />
<br />
コンピュータをたくさんの人が便利に使うようになりました。<br />
ですが、データはただコンピュータを動かすために使われ、長い間ただ溜めて置かれるだけの時間が続きました。<br />
<br />
しかし、あることに気づいた人間がいました。<br />
データはコンピュータが生んだものなので、これを読み解けばコンピュータをもっと効率的に動かしたり、コンピュータを使ってしている仕事をもっと効率的にすることができるのではないか?ということです。<br />
<br />
人間はデータに話しかけました。<br />
<br />
しかし問題がありました。<br />
データは人間の言葉を話すことができなかったのです。<br />
<br />
最初のうちは、データは少ししかなかったので、データの言葉を勉強した少しの人間が一生懸命データに話しかけて、ようやく答えを得ている状況でした。<br />
しかしデータはコンピュータの発展にともない、どんどん量も種類も増えるようになっていきました。<br />
<br />
そうすると、もっとたくさんの人がデータと話したいと思うようになりました。<br />
<br />
ほんの少しのデータの言葉が話せる人だけでは足りない。その人はみんなから通訳を頼まれていつも忙しそうです。<br />
また、とあるデータの言葉を話せる人は、データとの会話に夢中になりすぎて、人間の言葉を忘れてしまうことさえありました。<br />
データの言葉を話せないのに、人手不足で無理やり通訳を頼まれた人たちもいました。<br />
この人たちは、通訳が仕事になってしまい、データとお話をして、世の中を便利に、よくしていきたいという本当の目的を忘れてしまう人がたくさん出てきてしまいました。<br />
<br />
しかし一度増え始めたデータは、止まることを知らず際限なく増えていきます。<br />
データと話せたらもっといろいろなことがわかるはずなのに・・・たくさんの人が困っていました。<br />
データと話すことなんで本当にできるのだろうか。<br />
人々はだんだん疑心暗鬼になりました。<br />
かくして、世界を便利にするために生まれたデータを、人は持て余すようになってきました。<br />
<br />
<br />
<br />
世界に人間とデータの対立が深まる暗雲が立ち込める中、遠く離れた星からタブローさんがやってきました。<br />
タブローさんは地球の有様を見て驚きました。<br />
世界を良くするために生まれたデータが人を困らせていたからです。<br />
<br />
タブローさんのいた星では、みんなVizQLという言葉を話すことができ、データと人が手を取りとてもよい社会を築いていました。<br />
VizQLとは、データの言葉をとても簡単に話し、同時にデータから受け取った言葉を人間にわかりやすい見た目に表現してあげる言葉なのです。<br />
<br />
VizQLを話すことができるようになれば、地球の人間もきっと幸せになれるはず。<br />
タブローさんはそう信じました。<br />
そこで、タブローさんは地球で、人とデータを繋ぐ翻訳者としてみんなにVizQLを使ってもらうことを決意しました。<br />
<br />
VizQLはもともとデータの言葉でもあり、人にわかりやすい表現を作ることも得意でしたが、タブローさんはこのVizQLをさらに地球の人に寄り添ったものにしていきたいと考えていました。<br />
なにせ遠い星からやってきましたから、タブローさんは地球の人間のことを勉強する意欲も怠りません。<br />
あるときはコミュニティを作って掲示板で世界中の人からアイディアを募ったり、<br />
地球の人間にとってわかりやすい色合いが今とは違うものであるとわかったら、今までのカラーリングを一新してみたり、<br />
数学の苦手な人のために代わりに計算をできるようになってあげたり、<br />
とにかくさまざまな勉強を重ね、人とデータをつなぐ役割を果たしてきました。<br />
<br />
その地道な活動の結果、人間はデータの言葉を知らなくても、タブローさんの教えたVizQLでデータとお話ができるようになってきました。<br />
<br />
データと少しでも心が通じ合う瞬間があった人々は大変驚きました。<br />
今まで無機質で、そっけなく、本当に自分たちの役に立つのかわからないと思っていたデータたちが、実はさまざまに自分たちに話しかけてきていたことが理解できたからです。<br />
データは実はストーリーを持ち、時に冷静に、時に情熱的に、人間に話しかけていたのです。<br />
<br />
かくして、お互いの言葉を通じさせることができず、長く争っていた人間とデータは、一歩ずつ手を取り合い歩み出し始めたのでした。<br />
<br />
しかしこの長い旅路ははじまったばかり。<br />
<br />
これからもどんどんデータは増えるでしょう。<br />
様々なものがデータになる中で、データと自由にお話できれば、世界そのものを知ることだってできるかもしれません。<br />
<br />
<br />
<br />
タブローさんは人間とデータの架け橋になれたことをとても喜んでいましたが、もともと意欲的な性格ですので、まだまだやれることがあると思っています。<br />
これからデータはもっと増えていきますから、人間を幸せにするためにはもっと早く、もっとわかりやすく表現しなくてはなりません。<br />
<br />
<br />
タブローさんは考えていました。<br />
人の言葉を話せるようになりたいのです。人間の言葉はタブローさんにはまだ少し難しいので、今は人間もタブローさんもわかりやすい手の操作を受け取っています。<br />
ですが、なんの操作もしなくても、人間が話した言葉を理解することができれば、人は操作を覚えなくてもよくなりますから、もっともっと簡単にどんな人でもデータと対話することができるようになるでしょう。<br />
タブローさんの飽くなき挑戦はこれからもずっとずっと続きます。<br />
<br />
<br />
2017年、人間とデータがもっともっと仲良くなれますように・・・!<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHDcX8pHKVpSifumHcmkMNW_kOFwZ3QH-IjQdAUMg0bostX8hUNegMrYdJ1N50GekAC3MAz0iATaf3mrTQh1bzMTLLoOHlfr0GDgGmU65PQqFhUCIlLJX6KWczMsKqo7DdqrWFzmDbiSst/s1600/013_Tableau.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHDcX8pHKVpSifumHcmkMNW_kOFwZ3QH-IjQdAUMg0bostX8hUNegMrYdJ1N50GekAC3MAz0iATaf3mrTQh1bzMTLLoOHlfr0GDgGmU65PQqFhUCIlLJX6KWczMsKqo7DdqrWFzmDbiSst/s1600/013_Tableau.jpg" /></a><br />
Photo by <a href="https://nasa3d.arc.nasa.gov/" target="_blank">NASA</a><br />
<br />
<br />
KaoriAnonymoushttp://www.blogger.com/profile/11000140238729680196noreply@blogger.com1tag:blogger.com,1999:blog-2398716554755334461.post-18335095073955084122016-09-12T12:14:00.000+09:002016-09-12T12:14:08.209+09:00ディメンションのラベルを上部に表示Nanaeです。こんにちは。<br />
<br />
今回は、ディメンションのラベルを表示させる場所に関してのTipsです。<br />
<br />
下部に表示されているディメンションのラベルを上部に表示できますか??<br />
これをしたくなるときは、次の2つの場面があるかと思います。<br />
<br />
1. 列に2つ以上のディメンションが入っているとき、全てのディメンションのラベルを上部に表したい<br />
2. 列にディメンション、行にメジャーが入っているとき、ディメンションのラベルを上部に表したい<br />
<br />
まず1つめ。<br />
<br />
1. 列に2つ以上のディメンションが入っているとき、全てのディメンションのラベルを上部に表す<br />
<br />
↓こんな感じのレイアウト。ピンクのラベルの位置に着目してください。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihiwUP7e1wXbA7mEXTFJn5oQDuzVA3Fx5NJ2qizGwNRDZuXlwg97XJjoA60eeRj_zKXsT1fCjegmfO0Xz82vNbTV_3lhPmHo3jgg2m-VGvWo5LHCryKFbMuY1lDeC6OcTKGFZk3KMpWC4/s1600/%25E5%25A4%2589%25E6%259B%25B4%25E6%25B8%2588%25E3%2581%25BF.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihiwUP7e1wXbA7mEXTFJn5oQDuzVA3Fx5NJ2qizGwNRDZuXlwg97XJjoA60eeRj_zKXsT1fCjegmfO0Xz82vNbTV_3lhPmHo3jgg2m-VGvWo5LHCryKFbMuY1lDeC6OcTKGFZk3KMpWC4/s1600/%25E5%25A4%2589%25E6%259B%25B4%25E6%25B8%2588%25E3%2581%25BF.PNG" /></a><br />
<br />
デフォルトでは、列に2つ以上のディメンションを置くと、列の一番右にあるディメンションはビューの下部にラベルがついて、一番右以外にあるディメンションはビューの上部にラベルがつきます。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSjE1Np9FesdAg4_8rm4wJcRQGFcd8KhKwnejfJrKtYiqjUGLDlRAbjc8w4hSeEGss9tD8w1_uh5gIB_vb_qrG7gARuMJvHHVcwFg1VeKA43MXHrz_wCtpVAMn9zaKixeaN7euqoqv2Tw/s1600/%25E6%2597%25A2%25E5%25AE%259A.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSjE1Np9FesdAg4_8rm4wJcRQGFcd8KhKwnejfJrKtYiqjUGLDlRAbjc8w4hSeEGss9tD8w1_uh5gIB_vb_qrG7gARuMJvHHVcwFg1VeKA43MXHrz_wCtpVAMn9zaKixeaN7euqoqv2Tw/s1600/%25E6%2597%25A2%25E5%25AE%259A.PNG" /></a><br />
<br />
たくさんディメンションがあっても、1本1本の棒の下にラベルがつくのでわかりやすいですね。このように一番右側のディメンションだけ下部に表示するのがTableauのベストプラクティスです。が、場合によっては縦に長すぎてスクロールしないと下部のラベルが見えない・・・などの理由から、すべてのディメンションを上部に表したいこともあるかもしれません。<br />
<br />
そんなときは、ここから指定してください。<br />
<br />
分析 > 表のレイアウト > 詳細から一番下のチェックを外す。<br />
これ実は設定項目の1つとしてあったんです。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgerGi0WVFP46Yp4RN_vTNSbzf4nKQB4rFLSeXw9DWNM0Pa84FbwG_VTyLXyGdISb8pep0JCSIUGyLVqdiaNaf1bHGs0IMi0bUUOiipcWnr5GOComtMCA64pBiBgTYMimvbJ90oxbVoofo/s1600/%25E8%25A1%25A8%25E3%2581%25AE%25E3%2582%25AA%25E3%2583%2597%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgerGi0WVFP46Yp4RN_vTNSbzf4nKQB4rFLSeXw9DWNM0Pa84FbwG_VTyLXyGdISb8pep0JCSIUGyLVqdiaNaf1bHGs0IMi0bUUOiipcWnr5GOComtMCA64pBiBgTYMimvbJ90oxbVoofo/s1600/%25E8%25A1%25A8%25E3%2581%25AE%25E3%2582%25AA%25E3%2583%2597%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3.PNG" /></a><br />
<br />
このように、メニューの中には細かい設定ができる項目がいくつも隠されていますので、ぜひいろいろ触ってみてくださいー。<br />
<br />
<br />
2. 列にディメンション、行にメジャーが入っているとき、ディメンションのラベルを上部に表す<br />
<br />
メジャーをディメンションで分けた縦の棒グラフを作ったとき、デフォルトは下部にヘッダーが表示されますね。(左のビュー)<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4_iayNdoV81F904J514rVrkHDy9tkHL33l8-Kj1mykct2SUmLo4sMfBXOQlFOFstnckaRDktJvBEvjRkYhsN_460Q-n88yrTOcCCZXoke7WKL3ilPco1V_LNLVxbjlRKW0vg__w7aGKo/s1600/%25E3%2583%2587%25E3%2582%25A3%25E3%2583%25A1%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3%25E3%2581%25A8%25E3%2583%25A1%25E3%2582%25B8%25E3%2583%25A3%25E3%2583%25BC.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4_iayNdoV81F904J514rVrkHDy9tkHL33l8-Kj1mykct2SUmLo4sMfBXOQlFOFstnckaRDktJvBEvjRkYhsN_460Q-n88yrTOcCCZXoke7WKL3ilPco1V_LNLVxbjlRKW0vg__w7aGKo/s1600/%25E3%2583%2587%25E3%2582%25A3%25E3%2583%25A1%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3%25E3%2581%25A8%25E3%2583%25A1%25E3%2582%25B8%25E3%2583%25A3%25E3%2583%25BC.PNG" /></a><br />
<br />
右のビューのように、上部に表示することもできますよ!これはナレッジベースに日本語でまとまっていましたので、次のURLからご確認ください!!<br />
<a href="http://kb.tableau.com/articles/knowledgebase/moving-headers?lang=ja-jp"><span style="color: blue;">http://kb.tableau.com/articles/knowledgebase/moving-headers?lang=ja-jp</span></a><br />
<br />
作成したワークブックのダウンロードはこちらから↓<br />
<div class="tableauPlaceholder" id="viz1473649399651" style="position: relative;">
<noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/_6/_6928/1_1/1_rss.png' style='border: none' /></a></noscript><object class="tableauViz" style="display: none;"><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='site_root' value='' /><param name='name' value='_6928/1_1' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/_6/_6928/1_1/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div>
<script type="text/javascript"> var divElement = document.getElementById('viz1473649399651'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='100%';vizElement.style.height=(divElement.offsetWidth*0.75)+'px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
<br />
NanaeNanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com1tag:blogger.com,1999:blog-2398716554755334461.post-22476550544815906982016-09-06T16:29:00.001+09:002016-09-06T16:29:43.651+09:00認定資格"Tableau Desktop 10 Delta"を受けてきましたNanaeです。<br />
Tableau Desktop 10 Delta受けてきました!<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJWcDyHBRKfcLyuyX_ZT8YguTx6efVKcOo0Qk9srnCagCVFk40ZQec4YkfJo4HkXNPtpOQGl7gtDIXdL38bZG3dzoCL87afQmVl6OkLZAngeIeu4ZUZ7AeqqTveUZRkfBCvykHXfVMTJ0/s1600/Capture.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJWcDyHBRKfcLyuyX_ZT8YguTx6efVKcOo0Qk9srnCagCVFk40ZQec4YkfJo4HkXNPtpOQGl7gtDIXdL38bZG3dzoCL87afQmVl6OkLZAngeIeu4ZUZ7AeqqTveUZRkfBCvykHXfVMTJ0/s1600/Capture.PNG" /></a><br />
<br />
<br />
Kaoriさんと私で、Tableau Desktop 10 Deltaを(実験台としてw)日本で一番乗りで受けまして、2人とも無事Tableau Desktop Certified Professionalをv9からv10にアップデートできました!<br />
<br />
Qualified Associateをお持ちの方も、Certified Professionalをお持ちの方も、v10に資格を上げるには、Tableau Desktop 10 Deltaを受けることになります。共通です。<br />
<br />
テスト内容は、v10の新機能がてんこ盛りでした。範囲にはv9 (9.0~9.3) の新機能も含まれます。ちなみにKaoriさんと私で出題された問題は異なったので何種類か用意されている模様。私たちが受けた2種類のテストは両方共、v10の新機能が中心の内容で、わりと細かいところまで問われた印象です。<br />
<br />
前半は、質問文に対して正しい記述を選ぶタイプ(複数の選択肢からの単一回答、複数回答)や正誤の2択もありました。後半は、ハンズオン形式です。前半・後半の流れは、従来のQualified Associateと同じです。<br />
<br />
前半は、複数回答がいくつかありますので、自信をもって回答できるように準備しておきたいです。複数回答の選択肢が細かいように感じました。<br />
ここでは、ウェブブラウザで調べたり(検索OKですよ!!!)、Tableau Desktopで確認しながら進めるのがポイント!<br />
<br />
後半のハンズオン対策としては、v10の機能をひととおりすぐに使えるようにしておいてください。v10の新機能で、ハンズオンとして操作できる範囲となると・・・どの辺が出るか、ほぼ想像つきますよね!?そのあたりをいろいろさわっておいてください。どういう動きをするのか、その機能を使って次の分析に進むとしたらどう使うか。。。想定してみてください。<br />
<br />
時間は60分ですが、たっぷりあります。<br />
<br />
問題数は全部で16問。Qualified AssociateやCertified Professionalと比べて問題数が少ないですので、1問の影響が大きいです。特にハンズオンは配点が高いです。しっかり見直ししてください★<br />
<br />
準備としては、オンラインヘルプのv10新機能ページ、Webページのv10新機能ページは必ず読み込んでおいてくださいね!ただ、テスト中でも検索できる情報より、自分の手元でDesktopを操作して何回もいろいろ動きを確認しておくのが一番の対策です!<br />
<br />
オンラインヘルプ「Tableau Desktop の新機能」<br />
<a href="http://onlinehelp.tableau.com/current/pro/desktop/ja-jp/help.htm#whatsnew_desktop.html"><span style="color: blue;">http://onlinehelp.tableau.com/current/pro/desktop/ja-jp/help.htm#whatsnew_desktop.html</span></a><br />
このページだけじゃなく、詳細の説明部分まで目を通してくださいね。<br />
<br />
Webページ「Tableau 10 データは美しい」<br />
<a href="http://www.tableau.com/ja-jp/new-features/10.0"><span style="color: blue;">http://www.tableau.com/ja-jp/new-features/10.0</span></a><br />
<br />
Deltaは英語のみですが、わからない英単語があったとしても検索しながら進められますので大丈夫!<br />
<br />
一般公開に向けて準備を進めているようですので、認定試験ももうすぐリリースです。すでに認定資格をお持ちの方はv10 Deltaに備えて準備を始めてください!<br />
<br />
NanaeNanaehttp://www.blogger.com/profile/05891998200925098259noreply@blogger.com0