カテゴリー別アーカイブ: Tips

正規性確率プロット

Spotfireで正規性確率プロット(Q-Qプロット)を作成

正規確率プロットは、データの分布が正規分布を示しているかどうかを視覚的に判断するための散布図です。

3

正規性に関してはヒストグラムやガウス分布などの方が直観的に理解しやすいかもしれませんね。
何はともあれ分布が正規かどうかを知ることは、いくつかの状況で重要です。
正規分布に従うデータの利点は、平均値と標準偏差が信頼できるということです。

多くの統計ツール (たとえば ANOVA) ではデータが正規分布していることを前提としているので、正規分布からの偏差が非常に大きい場合には、正確な結果が得られない事が多いです。
そのような場合は、事前にどれだけ正規性が取れているのか確認するのは重要です。

データのイメージ

測定値とカテゴリとIDのシンプルなデータです。
描画は2万行くらいです使用しています。

1

正規性確率プロットの作成

丁寧な方法

実際のValueからrankとpを計算カラムで追加し、それを元にNorminvで期待値を計算
それを元にY軸ValueでX軸期待値の散布図を作成する事ができます。
2

#rankの計算式
Rank([Value],"desc")

#pの計算式
([rank] - 0.5) / Count([Value])

#期待値の計算式
NormInv([p],Avg([Value]),StdDev([Value]))

カスタム演算式で作成

Spotfireに慣れてくると計算カラムよりカスタム演算式の方が便利ですよね。
Y軸はValue、X軸をカスタム演算式で下記の式を入力して作成しました。
先ほどは3つのカラムを作成しましたが、これだと1つのカスタム演算式でOKです。

NormInv((rank([Value],"desc") - 0.5) / count([Value]),
 Avg([Value]),StdDev([Value]))

3

ヒストグラムとの比較

ヒストグラムでの表現です。ガウス曲線を追加しています。

4

カテゴリ別の比較

今回はデータの中にCategoryが含まれているので、個別に描画しましょう。

カスタム演算式を

NormInv((rank([Value],"Desc",[Category]) - 0.5) / count([Value]) OVER ([Category]),
Avg([Value]) over ([Category]),
StdDev([Value]) over ([Category]))

に修正しました。
over式でカテゴリ別に集計しています。

7

見やすいようにトレリスをかけてみます。
5

ヒストグラムも同様に表現しています。
6

WebPlayerのURLの引数でデータを変更

WebPlayer

SpotfireにはWebPlayerというWeb版のクライアントもあります。
Spotfire Analystで作成したDXPファイルをサーバに保存することで、
ブラウザベースで皆さんから参照できるようになります。

インストールの必要がないのとライセンスの安さで、
ゴリゴリ分析する人以外はこちらでも問題なく使えると思います。

ConfigurationBlock

WebPlayerはブラウザベースなのでもちろんURLを指定してアクセスできるのですが、
今回はこのURLを変更することでロードするデータの範囲を変える方法を紹介します。

0

SpotfireのWebPlayerにはconfigurationBlockという機能があり
引数により既定のページやフィルター条件などを指定することができます。

SpotfireをWebシステムとして使用する上でプロパティの値を変更することは非常に重要なのでかなり便利な機能です。

今回やりたいのはStreambase Liveviewというアプリケーションで作成した画面から
指定の自動車の走行履歴データを表示します。
2
↑LiveViewの画面、実際にはウネウネ動いています。スピード違反の車は赤く表示されます。

この自動車アイコンをクリックしてリンクでWebPlayerへ飛ばしたいのですが、
データは自動車毎に入れ替える必要があるので、ここでconfigurationBlockを使用します。

3
クリックして起動したWebPlayerの画面

プロパティとオンデマンドロードの設定

今回は文章のプロパティとオンデマンドロードを組み合わせます。

引数でプロパティの値を指定することができるので、オンデマンドロードの機能で
プロパティの値に応じたクエリを発行します。

4
文章のプロパティでuseridを設定

5
データ接続の設定でロード方法は「オンデマンド」
条件はユーザーIDでプロパティの値useridを指定

これでプロパティの値を元にデータが変更されるようになりました。

configurationBlockの使用例

configurationBlockは既定で有効なので特に事前に設定は必要ありません。
下記のようにURLの最後にconfigrationBlock=プロパティ名=値を追加します。

ユーザ134番の例

http://serverurl/spotfire/wp/analysis?file=/Demos/StreamBase/mapUsers&configurationBlock=userid=134;
7

ユーザ135番の例

http://serverurl/spotfire/wp/analysis?file=/Demos/StreamBase/mapUsers&configurationBlock=userid=135;
8

複数自動車を同時に開いて比較することもできます。
6

センサーデータと故障データ

今回は、センサーデータのような複数の時系列データと
故障データを可視化してみます。

サンプルデータ

サンプルデータはこちらからダウンロードしてください。

解凍後のエクセルデータを開くと
「SensorData」と「EventData」の2つのシートがあります。
時系列のセンターパラメータと、故障のデータです。

1

こちらを使用して作図したいと思います。

完成のイメージはこちらです。

2

データの取り込み

まずはデータを取り込む必要がありますので、
エクセルファイルをSpotfireにドラッグアンドドロップして開いてください。
エクセルファイルの場合は「ワークシート」でどのシートのデータを取り込むのか選択できますので、「SensorData」シートを選択して「OK」を押してください。

3

線グラフの作成

それでは可視化していきますので、メニューバーにある線グラフのアイコンをクリックしてください。
最初にX軸はTime、Y軸はSensor1の合計のグラフが作成されています。

4

軸の追加

今はSensor1だけですが、ここにSensor2~4も追加していきます。
一つ一つ追加することも可能ですが、まとめて追加する方法を紹介します。
Y軸の「Sum(Sensor1)」と書かれている上で右クリックして「カラムの選択」を選びます。

5

「カラムの選択」画面で右にSensorのデータを3つ追加してください。
この方法ならカラムが大量にある場合でも便利です。
また、「集計」項目もありますので、合計だけでなく平均や分散などの指標も選択できます。

6

これで4つのセンサーを時系列に表示できました。

7

故障発生時刻の追加

それでは故障発生時刻をこのグラフに重ねていきたいと思います。

故障データの取り込み

故障データも「EventData」として同じエクセルファイルに格納されているので、
再度エクセルファイルをSpotfireにドラッグアンドドロップして取り込みます。

ワークシートで「EventData」を選択するのを忘れないでください。

8

データを取り込むと自動的に新しいページが開きますので、元のページに戻ってください。

垂直線の追加

グラフ上に垂直線を描画するので「プロパティ」を開きます。
グラフ上で右クリックしてプロパティを選択しても構いませんし、グラフ右上の歯車アイコンをクリックしても開きます。

9

プロパティ画面で「線およびカーブ」を選択します。
ここでは様々な指標線を引けますが、今回は別テーブルにあるデータから描画します。
「追加」ボタンから「垂直線」→「データテーブルからの線」を選びます。

10

メニューが表示されるので「OK」を押してください。

11

これで描画が完了しました。
センサーの動きと故障発生時のグラフです。

12

見方にもよるとは思いますが、線が重なってしまって全体の見通しが悪いので
センサーによって枠を分けたいと思います。

トレリス設定

レジェンドに表示されている「色の基準」を枠の基準に移します。
色の基準の「カラム名」をドラッグしてグラフ中央に表示される「垂直のトレリス」にドロップしてください。

13

これで縦にセンサーが一覧表示されます。

14

ちなみに枠ごとに発生したイベントを制限ケースもあるかもしれませんが、
Spotfireではそのような表示はできないので、別々に線グラフを作成する必要があります。

テキストエリアで集計値表示

動的項目

前回テキストエリアを使用して、文章やイメージを表示しました。
固定メッセージだけであればテキストで十分ですが、
データやフィルターに応じて変化する値などを入力したい場合「動的項目」を使用します。

動的項目を使用すると式を入力してラベルを表示したり、アイコンを表示することができます。
また、スパークラインやバレットグラフを表示することもできるので、
指標を一目で確認したい場合は便利です。

動的項目の作成

動的項目を作成するにはテキストエリアの編集モードで「動的項目の挿入」アイコンをクリックします。
「スパークライン」「計算値」「アイコン」「ブレットグラフ」の4種類の動的項目があります。
1


スパークライン

スパークラインはシンプルなラインチャートです。
トレンドや変動を表示するために使用されています。
2
通常のラインチャートと同じようにX軸とY軸を設定することができます。
2.5


計算値

計算値は、入力された式から計算された値です。
クロス テーブルに表示されるデータと似ています。
3

「値」のタブで式を入力できます。
もちろんカスタム演算式を使用することもできます。
4


アイコン

アイコンは、数値に応じてイメージ表示します。
「計算値」と同じように、入力された式の値に応じて色と形を表示します。
5

この例では、ホームラン数で閾値を設定しています。
フィルターでチームを変更すると、値に応じてアイコンが変化します。
6


ブレットグラフ

ブレットグラフは、2つのパラメータで比較する場合に使用されます。
予算と実績や進捗状況、昨年対比などで使用します。
7


動的項目のデータ範囲

既定では動的項目はページのフィルターに応じて変化するため、絞り込み条件に応じて変化します。

計算値をロックしてフィルターに反応しないようにするには
各動的項目の「データ」タブを設定します。

全てのデータを常に表示したい場合は「フィルターを使用したデータの制限」から
チェックを外してください。

また、常に一定条件のデータを対象として表示したい場合は
「式を使用したデータの制限」で”team = ‘NY Yankees'”等の設定をすることも可能です。
8

ページ内に注釈や画像を表示

テキストエリア

ページ内に手順や注釈などを表示したい場合はテキストエリアが便利です。
テキストエリアを使用すると、説明文やイメージ画像などを表示できるほか、
プロパティ動的項目・フィルター等の項目をして、
より訴求力のあるテンプレートを作成することができます。

プロパティ 軸を変更したり、式の条件を変更できるメニュー
動的項目 ラベルやアイコンなどで集計値を表示
フィルター フィルターパネルの任意のフィルターを表示。

また、テキストエリアはフォントや段組みなどを利用ができ、
HTMLでの記載もできるのでWebページと同等の使い方も可能です。

テキストエリアの作成

テキストエリアを作成するには、メニューバーにある「テキストエリア」のアイコンをクリックします。
1

テキストの記載方法

テキストエリアを編集するには、右クリックして「テキストエリアの編集」を選択します。
2

編集モードのテキストエリア

3

テキストは文字の大きさや、フォントや色を変更することもできます。
また背景画像やイメージの挿入などを行うこともできます。
4

背景画像は野球の無料イラスト集から拝借しました。

HTML形式での編集

テキストエリアはHTMLを使用して編集することも可能です。
右クリックして「HTMLを編集」を選択します。
5

6

8

HTML形式であればCSSでのフォーマットコントロールやタグが利用可能になりますので、
WEBとほぼ同様に使用できます。
7

このテキストエリア内のテーブルには「動的項目」という機能を使用して
指標を表示しています。
これらを使うとKPIの表示に便利です。

フォント設定

フォント設定

以前、書式設定の方法についてお話しました。
書式設定と並んで重要になるのがフォントです。
どちらも見た目での表示にはなりますが、ぱっと見の印象も変わりますし、
統一感も出ますので、初期設定しておくのををお勧めします。

1

フォント設定レベル


フォントの変更レベルは2種類です。

  • グラフごとに設定
  • アプリケーションの初期設定として設定
グラフごとに設定

グラフそれぞれにフォントを個別設定することが可能です。

右クリックしてプロパティ画面を開きます。
「フォント」タブがありますので、そちらを開いてください。
フォント設定項目はグラフごとに異なります。
2
上の図はテーブルのものです。設定できる項目はグラフにより異なります。
フォントやサイズを選ぶことが可能です。

一括して変更したければドラッグで複数項目を選択して変更することも可能です。
3

アプリケーションの初期設定として設定

グラフごと、項目ごとにフォントを設定することも可能ですが、
通常は同一のフォントを使用するケースが圧倒的に多いと思いますので、
アプリケーションとして初期設定しておくと統一感が出ます。

既定ではArialがフォントとして設定されていますが、
私はメイリオにしています。

初期設定はオプション画面から変更します。
メニューから「ツール」→「オプション」を開いて下さい。
4

「フォント」タブを選択します。
項目一覧を、個別に設定することもできますし、すべて選択して一括設定することもできます。
5

グラフの書式設定

グラフの書式設定


Spotfireの既定では数値形式は小数点2ケタの区切り文字なしで表示されます。
表示フォーマットはユーザーによっては3ケタ区切りにしたり、
科学表記の方がわかりやすい場合もありますので、書式設定をしましょう。

今回は数値形式に関して記載しますが、
日付に関しても同様にフォーマットは変更可能です。

書式設定で小数点なし、区切り文字ありにする。

0

書式設定の適用範囲

設定方法としては、グラフ個別、ファイルレベル、アプリケーションの規定で設定が可能です。

グラフ個別に書式設定


どのグラフでも個別に書式設定が可能です。
グラフの右上にある「プロパティ」アイコンをクリックするか、
グラフ上で右クリックしてプロパティを選択します。
0.5

「プロパティ」画面が表示されるので「書式設定」タブで、
カテゴリを「数値」に設定して「実数値」で小数点の桁数、
「桁区切り記号を使用する」チェックボックスで、3ケタ区切り設定が可能です。
1

ファイルレベルの書式設定


グラフ単位での書式設定をしましたが、
金額ベースのカラムなどは全てのグラフで共通設定したほうが便利です。
そのような場合は、ファイルレベルで書式設定しましょう。

カラムのプロパティ

「ファイル」→「カラムのプロパティ」を選択します。
2

カラムのプロパティ画面が表示され、
「カラムと階層」にカラム一覧が表示されます。
この中で設定したいカラムを選択して、「書式設定」タブを選択してください。
同じく実数値と桁区切りなどの設定が可能です。
3

設定後、新規に作成されるグラフに設定が適用されます。

アプリケーションレベルで設定


ファイルレベルで設定された場合は、
同一ファイル内では規定の設定が有効になりますが、
一度Spotfireを終了した場合は、再度設定が必要になります。
初期設定したい場合は、アプリケーションレベルで設定します。

設定方法

メニューから「ツール」→「オプション」を選択します。
4
オプションメニューが表示されますので、「軸の書式設定」を選択し、
既定の軸書式設定を開きます。
「データ型」を選択できますので、設定するデータ型を選択します。
カテゴリで表示形式を選択して、実数値などの設定を設定して下さい。

こちらの設定は次回起動時から有効化されます。

独自フォーマットの設定


これで色々な形で書式設定をすることはできました。
しかし、フォーマットは固有のものだけでなく自分で定義することも可能です。
例えば日本円で「億」や「万」などの表記にしたければ、定義を追加することができます。

日本の単位を設定した例

5.5

プロパティ設定の中に「短い数値書式を使用する」というチェックボックスがありますが、こちらを使用します。
標準では、1000倍の「k」と100万倍の「M」のみ定義されていますので、
日本フォーマットを追加しましょう。

こちらもオプションから設定します。
メニューから「ツール」→「オプション」を選択し、
「軸の書式設定」を選択します。

6
一番下に「記号セットの編集」というボタンがありますので、こちらをクリックしてください。
「追加」ボタンを押すと新規フォーマットが定義できます。
こちらで因数と記号を追加していけば定義完了です。
日本円での10^8で「億」10^6で「百万」を定義してみました。

7
こちらで新書式が追加されましたので、
書式設定の「短い数値書式を使用する」にチェックし「日本円」を選択すれば
表記が変わります。
8

複数フィルター条件の設定

フィルター条件を個別に設定する

フィルターパネルでのデータ絞り込みは非常に便利な機能ですが、
既定では全ページ、全グラフにフィルターが適用されます。
このままの設定では、すべて同一のフィルター条件になってしまうため
特定のカテゴリ条件のページを作成したり、
全体と一部のデータを同一ページ上で比較することができません。

フィルタースキーム

フィルタースキームを使用すると、
絞り込み条件を複数定義でき、ページやグラフで使用する
スキームを設定する事ができます。

フィルタースキームの設定方法

「編集」→「文書のプロパティ」を選択してください。
1

文書のプロパティ画面が表示されますので、
「フィルタースキーム」タブより
「フィルターパネルにフィルタースキームメニューを表示」チェックボックスをONにします。

これでフィルタースキームを使用する準備が整いましたので、
「OK」を押して下さい。
2

ページへのスキームの適用

フィルタースキームを使用すると、
フィルターパネルの上部にフィルタースキーム選択欄が表示されます。
当初は一つのスキームしかありませんので、すべて同一絞りこみ条件になっています。
3

こちらクリックすると新規スキームを追加することができます。
「新規フィルタースキーム」をクリックしてスキーム名を入力します。
4

こちらで新しいフィルタースキームが作成されました。
このスキームはページごとに設定されていますので、
ページごとに選択することができます。
5

これでページごとに異なる絞り込み条件が設定できました。

グラフごとにフィルタースキームを設定

フィルタースキームはページごとに設定可能だという話をしましたが、
これは各グラフのフィルター条件が規定でページのフィルタースキームに
連動するように設定されているためです。

グラフ毎にフィルタースキームを設定することができますので、
一つのページで複数の絞り込みのグラフを表示することができます。

グラフ上で左クリックして「プロパティ」を表示します。
「データ」タブの中で「フィルターを使用したデータの制限」を見てください。
既定では「現在のページのフィルターを使用」になっていますが、
こちらを設定したフィルターパネルを選択する事で、ページのフィルター条件
とは異なる条件を設定することが可能になります。

6

7

これで1ページ上に異なるフィルター条件でグラフを作成できます。