統計プロットパッケージ

統計的観点からデータの概略を知るために,さまざまなプロットや図表が用いられる.その中にはデータの統計計算を要約するものもあれば,データの特性を強調する形でデータを比較するものもある.このパッケージは,パレート図,幹葉図を含む,後者のタイプのプロット関数をいくつか実装する.ヒストグラム,棒グラフ,円グラフも統計分野でよく用いられるが,これらはWolfram言語カーネルに含まれている.

ParetoPlot[data]データからパレート図を生成する
PairwiseScatterPlot[matrix]多変量データから対散布図を生成する
StemLeafPlot[data]データのリストから幹葉図を生成する

基本的な統計関連プロット

プロットパッケージをロードする.

パレート図

パレート図とは,データ中の各項目の構成比を表す棒グラフと,その項目の累積和を示す折れ線グラフを組み合せた品質管理プロットである.

ParetoPlot[list]list 中のデータの頻度を求め,パレート図を生成する
ParetoPlot[{{cat1,freq1},{cat2,freq2},}] カテゴリ cati から,指定された頻度 freqi のパレート図を生成する

パレート図

最も基本的な形式では,ParetoPlotは別々の項目からなると想定されるデータのリストを取る.これはリスト内の各項目の頻度を見付け,その頻度を百分率に変換してプロットを作成する.

リストからパレート図を作成する.

頻度が前計算されているデータでは,ParetoPlotに生データではなく{カテゴリ,頻度}のペアを与えることによって直接データをプロットすることができる.

以下のパレート図ではデータ量が前計算されている.
オプション名
デフォルト値
BarOriginBottom棒の始点の指定
BarSpacingAutomatic棒と棒の間隔
ChartElementFunctionAutomatic棒のグラフ要素を生成する方法
ChartElementsAutomaticそれぞれの棒に使用するグラフィックス
ChartLabelsAutomatic棒のラベル
ChartStyle Automatic 棒のスタイル
ColorFunctionAutomatic棒の色付け方法
ColorFunctionScalingTrueColorFunctionの引数を正規化するかどうか
LabelingFunctionAutomatic棒のラベル付けの方法
PlotStyle Automatic 線のスタイル
PlotMarkers Automatic 点のマーカー

ParetoPlotのオプション

ParetoPlotは上の表で示される通り,棒グラフや折れ線グラフの一般的なオプションを数多く取る.また,通常のGraphicsオプションも取る.

BarChartから,さまざまなBarおよびChartのオプションが抽出される.このうちのほとんどはBarChartでのオプションと同様に動作する.ChartLabelsオプションがAutomaticに設定されていない限り,棒が現れる順に循環的にラベルを付ける.ラベルはAutomaticの場合の項目のみに対応する.BarOriginオプションは棒だけでなく,プロット全体に適用される.

以下は外観を制御するさまざまなオプションを使ったパレート図である.

対散布図

対散布図すなわち行列散布図では,多変量データの各列がお互いに対してプロットできる.このプロットは,変数間の関係を調べるのに使うことができる.結果のプロットは部分グラフの行列となる.

PairwiseScatterPlot[matrix]行列の列をペアのお互いに対してプロットする

対散布図

対散布図は,お互いに対してプロットされた多変量データ列からの散布図の行列を形成する.PairwiseScatterPlotはデフォルトで最初の列をプロットの左下に置き,続いて右,上へと置く.

例題データを生成する.
データ列をお互いに対してプロットする.
オプション名
デフォルト値
DataRanges All データ範囲の限界
DataLabels None 列のラベル
DataTicks None 列の目盛指定
DataSpacing 0 部分グラフ間のスペース
PlotDirection {Right,Down} 散布図生成の方向
PlotStyle Automatic 部分グラフのスタイル

PairwiseScatterPlot特有のオプション

プロットの外観を制御するために,さまざまなオプションを使うことができる.DataRangesオプションは,描画される点を限定するために使うことができるもので,範囲指定のリストを取る.範囲は{min,max}のペア,AllAutomaticのいずれかで与えられ,すべての列に対して循環的に使われる.

注釈的なテキストはDataLabelsDataTicksで設定する.DataLabelsオプションでラベルのリストを与えると,各列にラベルを付けることができる.目盛は通常のグラフィックスの目盛のシンタックスを使って各列毎に指定できる.目盛は,散布図の行列で対応する行の左右と,対応する列の上下に付けられる.目盛のラベルは隣接する列のラベルが上書きされないように,各列の左右に交互に付けられる.

PlotDirectionオプションはプロット行列で生成するプロットの順序を指定する.デフォルトの{Right,Down}では,データの行 i と列 j が散布図の格子の第 i 行目,第 j 列目にプロットされる.バージョン6.0より前のバージョンで使用される順序は,PlotDirection->{Right,Up}と設定すると得ることができる.

PlotStyleオプションは,単独のスタイルプリミティブあるいはスタイルプリミティブの行列のどちらかを取ることができる.行列の場合は,プリミティブは部分プロットに循環的に適用される.

DataSpacingオプションでは,部分グラフ間のスペースをさまざまな大きさにして描画することができる.このオプションは,各グラフ間の水平および垂直のスペースに対する数または数のペアを取る.この数は1つの部分グラフのサイズにスケールされ,0から1の範囲の数値を取る.スペースの指定に負の数を与えると,部分グラフの順序が並べ替えられる.例えば,最初の列を左下ではなく左上にしたいときは,オプションをDataSpacing -> {0,-2}とすればよい.このオプションを-1に設定すると,すべての部分グラフが重なるという面白い現象が見られる.

また,通常のGraphicsオプションをすべて取ることもできる.

外観を制御するオプションを使ってプロットを生成する.

幹葉図

幹葉図は通常,実数値データの分布を各データ値の大きさとともに視覚化するのに使われる.各データ値は幹(stem)と葉(leaf)で表され,幹は基本単位の整数倍,葉は事前に決めた桁数に与えられる残部である.例えば,基本単位が10のとき,17.3は幹が1,葉が7として表すことができる.葉は共通の幹に集められ,ヒストグラムに似た表示になる.幹はヒストグラムの棒の位置のような役割を果たし,葉は棒の高さに該当する.幹葉図には,図から直接各データ値が読み取れるという利点がある.2つのデータ集合の分布および大きさを比較するためには,幹葉図を並べて使うことができる.

StemLeafPlot[vector]データベクトルの幹葉図を生成する
StemLeafPlot[vector1,vector2]2つのデータベクトルの並列の幹葉図を生成する

幹葉図

実数値のベクトルである.
下は,このデータの基本的な幹葉図である.

このベクトルでは,1の倍数が幹として,小数部を小数第1位まで四捨五入した数値が葉として表示される.3.1および3.2という値は,共通の幹3の葉1,2として表示されている.

2つ目の実数値のベクトルである.
上の2つのデータ集合は,並列の幹葉図で比較することができる.

幹葉図の外観を制御するために,多数のオプションが適用できる.

オプション名
デフォルト値
StemExponent Automatic 10の整数ベキとして与えられる幹の単位
Leaves "Digits" 葉の表示方法
ColumnLabels Automatic 図の列のラベル
IncludeEmptyStems False 葉のない幹を表示するかどうか
IncludeStemUnits True 幹の単位を図に表記するかどうか
IncludeStemCounts Automatic 葉とともに,その数の列を表記するかどうか

StemLeafPlotのオプション

StemExponentの値は整数かAutomaticである.値が整数 の場合,幹の単位は となる.StemExponent->Automaticの場合,指数はデータの大きさに基づいて選ばれる.

Leavesオプションの値には,"Digits""Tallies"Noneのいずれかが可能である.Leaves->"Tallies"のときは,葉は計数記号(あるいは文字)で表示される.Leaves->Noneでは葉は図に含まれない.Leaves->Noneの設定は,通常すべての葉を表示する代りに,幹と葉の数だけで大きいデータ集合を作図するときに最も便利である.

ColumnLabelsオプションは図の列のラベルを指定するのに使用できる.ColumnLabelsオプションの値は,図の列数と等しい長さのリストかAutomaticである.ColumnLabels->Automaticでは,幹の列のラベルはStemに,葉の列のラベルはLeavesに,数の列のラベルはCountsになる.

IncludeEmptyStemsオプションは,データ範囲内の幹に葉がなくてもそれを表示するかどうかを指定する.このオプションにはTrueFalseの値が指定できる.

IncludeStemUnitsオプションは,幹の単位を図に表記するどうかを指定する.TrueあるいはFalseが指定できる.

IncludeStemCountsオプションは,作図された実数値の各ベクトルに対して数の列を表記するかどうかを指定する.数の列を表記する場合,単独のベクトルの幹葉図では最右列に,並列の幹葉図では最左列と最右列に表示される.指定できる値はTrueFalseAutomaticのいずれかである.IncludeStemCounts->Automaticでは,LeavesオプションがNoneに設定されているときだけ数が表記される.

以下は,葉の数の列,計数記号の葉,デフォルトでない幹の基本単位を持つ並列の幹葉図である.
以下のsldataの幹葉図では葉のない幹も含まれており,列のラベルに単位が使われている.

幹葉図の外観を制御するために,多数のオプションが適用できる.図はGridBoxとして構築されるため,前述のオプション以外にもGridBoxの標準的なオプションが使える.IncludeStemUnits->Trueならば,GridBoxのオプションは幹と葉のグリッドには適用されるが,幹の単位のラベルには適用されない.

ここではsldataに枠が付いており,列配置もデフォルトではない.

StemExponentオプションは幹の単位をさらに分割し,分割したものにラベルを付けるために使うことができる.

オプション名
デフォルト値
"UnitDivisions" 1 各幹の単位での分割数
"DivisionLabels" None 各単位の分割内での幹の数に付けるラベルのリスト

StemExponentのサブオプション

"UnitDivisions"オプションは,基本単位をいくつの幹に分割するかを指定する."UnitDivisions"の値は,正の整数でなければならない.

部分分割のラベル付けには,"DivisionLabels"オプションも使用できる."DivisionLabels"の値はNone,あるいは"UnitDivisions"の値に等しい長さのリストでなければならない."DivisionLabels"の値がリストならば,幹葉図の各数値の幹にはその値が付加される.

ここで,各基本単位は2つの幹に分割され,前半には"L",後半には"H"のラベルが付く.

葉部をどのように計算し,表示するかを変更するために,多数のLeavesオプションを使うことができる.

オプション名
デフォルト値
"LeafDigits" 1 各葉に対して使う桁数
"LeafSpacing" Automatic 表示された葉の間のスペース数
"LeafWrapping" None どこで葉を改行するかを指定
"RoundLeaves" True 葉を決定する前にデータ項目を四捨五入するかどうか

すべてのLeavesオプション値のサブオプション

"LeafDigits"オプションは,葉を計算するときに使用する幹部以外の桁数を指定する.これは葉が"Digits"として表示される場合,各葉に対して表示される桁数でもある.この値は,正の整数でなければならない.

"LeafSpacing"は葉の間のスペース数を指定する."LeafSpacing" は非負の整数,あるいはAutomaticに指定できる."LeafSpacing"->Automaticの設定の場合,"LeafDigits"->1のときはスペースはゼロ,それ以外のときはスペースは1となる.

"LeafWrapping"は,葉を改行する位置を指定する."LeafWrapping"は任意の正の整数,あるいはNoneで指定する.Noneでは葉は改行されない.

"RoundLeaves"は葉を計算する前に,値を葉の最終桁まで四捨五入するかどうかを指定する.

以下で0から5の間の100個の数を生成する.
葉を2桁,葉の間のスペースを2として,このデータを表示する.

このデータのように幹に対する葉の数が多い場合は,葉を改行すると便利である.

以下では葉が1行で12個になると改行され,幹を分ける行線が挿入されている.

葉が"Tallies"で表示される場合は,計数記号として使う記号を指定することもできる.

オプション名
デフォルト値
"TallySymbol" "X" 各葉の表示に使う記号

"Tallies"の葉のサブオプション

"TallySymbol"オプションはどのような文字列,あるいは記号でもよい.

ここではsldata4の葉はチェックマーク()で表される.

この表示では,どの幹が値を多く含んでいるかが一目瞭然である.葉の数や改行等の機能を加えると,各幹に対する葉の数の実際の大きさを判断する場合に便利である.

葉を改行し,葉の数を表記すると,図がさらに理解しやすくなる.