宣伝

以前StatFlexV6というパッケージソフトの開発に携わったことがある。統計解析用のソフトウェアで、売りは

  1. データの可視化
  2. 妥当な統計処理のみを提供
  3. 教科書並みのユーザーズマニュアル

などが挙げられると思う。

それぞれについて簡単に紹介。興味をもたれた方は「【StatFlex スタットフレックスVer.6】探索的データ解析ツール・ビジュアル統計ソフト」をどうぞ。マニュアルのダイジェストもここからダウンロードできるので、よければどうぞ。

データの可視化

データを貼り付けたらすぐグラフになる。常にグラフで分布を確認しながら直観的に作業できる。利用できるグラフの種類はStatFlexのWebページの「利用できるグラフ形式」を参照。

可視化によるメリットは、次の2点が挙げられると思う。

分布を確認しながら、妥当な統計手法を選べる

例えば年収の分布について考えるとする。今、ある基準で分けられた群1と群2の年収に差があるといえるか検定したいとする。ここで想定されることは、年収の分布は正規分布から大きく乖離するであろうということ。そういったデータを検定する場合は、極端値の影響が強くなるので、ノンパラメトリックな検定手法か、パラメトリックな統計手法を用いるにしても補正が必要になる。そういった事を、StatFlexV6では、グラフを見ながらそれを判断できる。上記の例では

  • 補正を加えたStudentのt検定
  • Mann-Whitney検定

などが挙げられると思う。
それ以外にも、分布にべき乗変換や対数変換を施して、できるるだけ正規分布に近付けた後に検定するというのも考えられる。StatFlexは、そのための変換の仕組みも持っている。

データの点検

実際に統計解析をする場合、解析よりもその前処理にかなり手間取ることがある。良くあるのは入力のミス。数値を一桁間違って入力していたり、小数点とカンマを間違えていたり。
前者の場合は極端値になり得る。極端値となればグラフ上に異常な点が描画されるので、それがその分布において妥当な値かどうかを確認できる。その上で上記のように、分布を見て妥当な統計手法を検討できる。後者の場合は数値として解釈できない。StatFlexV6では、対部分が数値のフィールドに数値でないものが混入していると、その旨を通知する機能がある。

いくつかグラフを紹介

分布の形状をの確認しやすいグラフをいくつか紹介しておこう。
まずはHDL-C(善玉コレステロール)とTG(中性脂肪)の分布を、ヒストグラム、箱ひげ図、散布図で。年齢や性別などフィルタリングしていない臨床検査値は正規分布に従わないことが多い。

次に、上記の2変量の間の相関図を、95%信頼区間をあらわした等確率楕円とともに。

利用できるグラフ形式 相関行列図のように、任意の2変量の相関図(相関行列図)や、複数の群の相関図をいっぺんに描画したりできる。

妥当な統計処理のみを提供

例えば、単変量のデータに対しては多変量解析を提案しないし、paired t検定が妥当なデータに対しては、Studentのt検定は提案しない。
妥当な統計処理のみを提供するために、StatFlexでは、

という概念を取り入れている。ちなみに、StatFlexを使う上でこれらの概念の理解が最初のハードルだったりする。

データ形式

データ形式はそのデータがどういうデータなのかを定義する。データ形式には以下の4種類ある。

  1. データベース型
  2. 独立多群型
  3. 関連多群型
  4. 個体別型

データベース型は、データベースの1枚のテーブルのようなイメージ。群分けという処理を行うことで、次の独立多群型へ移行できる。
前方視点と側方視点が利用でき、上方視点は利用できない(視点に関しては後述)。

独立多群型は、ある条件でグループ(群)分けされた状態のデータ。健康診断の結果のデータを考えよう。飲酒度という4段階の情報があったとする。この飲酒度に注目してグループ分けし、飲酒度が1のグループ、2のグループ、...、4のグループという具合にデータを分割(群分け)すると、独立多群型のデータを作れる。ある一つの群だけ取り出すと、それはデータベース型のデータに相当する。だからデータベース型は独立多群型の特別なケースと言えるだろう。
前方視点と側方視点が利用でき、上方視点は利用できない。

関連多群型は、「ある条件でグループ分けされた」という意味では独立多群型と同じだけど、決定的な違いがある。それは、独立多群型では、ある個体はどれか一つの群に属すけど、関連多群型では、各個体は全ての群に属するという点だ。つまり、独立多群型では群によって個体数が違う場合があるが、関連多群型では全ての群で個体数が等しい。
例えば、血中のコレステロール値に対して群を時間tと設定すれば時系列のデータになる。握力のデータに対して群を左手と右手と考えれば、左右差を眺められる。独立多群と違うのは、一つの変量に注目した時(次の「視点」で説明する「側方視点」でデータを眺めるとき)に、折れ線として表現できる点。
関連多群型は群間比較する場合は、同じ個体同士の条件による違いを見るので、例えばStudentのt検定ではなくPaired t検定を行うし、Mann-Whitney検定ではなく1標本Wilcoxon検定を行う(もちろん、2群の比較だけでなく多群の比較もできる)。
全ての視点が利用できる。

個体別型に関する詳しい説明はここでは省く。関連多群型と同じく時系列データを扱うが、異なる点は、観測点が個体毎にバラバラでもいい点。関連多群型の場合、群を観測時間tとして見る場合(もちろん時刻じゃなくて、上記のように左右の筋力とかでもいいけど)、全ての個体でt1、t2、t3、...と同じ観測時刻にする必要があった。個体別型では前方視点以外を利用できる。

視点

StatFlexではデータは群軸、変量軸、個体軸の3次元とみて操作する。視点は、どのXY平面からデータを眺めるかということだ。
以下の3つの視点がある。

  1. 前方視点
  2. 側方視点
  3. 上方視点

前方視点は、スクリーン座標で例えるならば、X軸(列方向)が変量軸、Y軸(行方向)が個体軸、Zオーダー(ページ方向)が群軸に相当する。つまり、変量が列、個体が行となる平面を眺めることになる。多変量視点とも言えるだろう。この視点では、重回帰分析などの多変量解析が可能だ。独立多群型と関連多群型では、群を複数持てるので、同じスキーマのテーブルが複数枚あるイメージだ。
個体別型では前方視点は定義されない。

側方視点は、X軸が群軸、Y軸が個体軸、Zオーダーが変量軸に相当する。群が列、個体が行となる平面を眺めることになる。データベース型では群は1つしかないので面白くないが、独立多群型と関連多群型の場合は、ある変量の群間比較ができる。

上方視点は、X軸が変量軸、Y軸が群軸、Zオーダーが個体軸に相当する。変量が列、群が行となる平面を眺めることになる。データベース型と独立多群型では定義されない。

いくつかグラフを紹介

視点別に利用できるグラフをいくつか紹介してみよう。
まずは前方視点のグラフ。これは性別で群分けした4つの変量に関するデータ(つまり独立多群型のデータ)。左側が男性群のグラフ(男性のページのグラフ)で右が女性群のグラフ(女性のページのグラフ)。TGは対数軸になっている。検査値は散布図として描画しているけど、もちろんこれ以外も利用できる。

次に側方視点。側方視点では変量がページになり、各変量を群間で比較できる。つまり、上のデータを側方視点で眺めると、次の4ページ分のグラフになる。「UA(尿酸)に性差がある」という仮説が見えやすい(この見かけの差が本当に性差なのかはいろいろ考慮しないといけない)。

以下のグラフも独立多群の側方視点のグラフ。これらはHb(ヘモグロビン)の値を疾患で群分けして、いろんなグラフの種類で眺めているところ。

関連多群型では側方視点にした時に折れ線図が描ける。

最後に上方視点。上方視点は、ある個体の多変量かつ時系列なので、多変量に関する折れ線図を描ける。

上で紹介するのは「多変量経過図」という、1個のグラフ領域に多変量をいっぺんに描画するグラフだけど、前方視点のように変量別に折れ線図を描くこともできる。こんな感じ。

教科書並みのユーザーズマニュアル

ソフトの使い方はもちろん、演習や例題、数理に関する説明など、500ページ以上。内容はかなり充実していると思う。これだけで教科書になりそうな感じ。