84 Stats (簡単な統計情報)

書式:
    stats 'filename' [using N[:M]] [name 'prefix'] [[no]output]]

このコマンドは、ファイルの 1 列、または 2 列のデータの簡単な統計情報を 提供します。using 指定子は、plot コマンドと同じ形で解釈されますが、 index, every, using 指定に関する詳細については以下参照: plot (71)。 データ点は、その解析の前に xrange, yrange に従ってフィルタにかけられま す。以下参照: set xrange (81.95)。その情報はデフォルトではスクリーンに出力さ れますが、コマンド set print を先に使うことで出力をファイルにリダイ レクトしたり、オプション nooutput を使うことで出力しないようにするこ ともできます。

画面出力に加え、gnuplot は個々の統計情報を 3 つの変数グループに保存し ます。 1 番目の変数グループは、どんなデータが並んでいるかを示します:

    STATS_records           # 範囲内のデータ行の総数
    STATS_outofrange        # 範囲外として除かれた行数
    STATS_invalid           # 無効/不完全/欠損データ行の総数
    STATS_blank             # 空行の総数
    STATS_blocks            # ファイル内の index データブロック数

2 番目の変数グループは、1 つの列の、範囲内のデータの性質を示します。対 応する軸 (1 つ目の列には x 軸、追加の 2 つ目の列には y 軸) が自動縮尺 の場合は、範囲に制限はありません。2 つの列を 1 回の stats コマンドで 解析する場合は、各変数名には "_x", "_y" という接尾辞が追加されます。例 えば STATS_mix_x は、1 つ目の列のデータの最小値で、STATS_min_y は 2 つ 目の列のデータの最小値を意味します。

    STATS_min               # 範囲内のデータ点の最小値
    STATS_max               # 範囲内のデータ点の最大値
    STATS_index_min         # data[i] == STATS_min となる添字 i
    STATS_index_max         # data[i] == STATS_max となる添字 i
    STATS_lo_quartile       # 第一 (下の) 四分位境界値
    STATS_median            # メジアン値 (第二四分位境界値)
    STATS_up_quartile       # 第三 (上の) 四分位境界値
    STATS_mean              # 範囲内のデータ点の平均値
    STATS_stddev            # 範囲内のデータ点の標準偏差
    STATS_sum               # 和
    STATS_sumsq             # 平方和

3 番目の変数グループは、2 つの列のデータの解析専用です。

    STATS_correlation       # x と y の相関係数
    STATS_slope             # 回帰直線 y = Ax + B の係数 A
    STATS_intercept         # 回帰直線 y = Ax + B の係数 B
    STATS_sumxy             # 積和 (x*y の和)
    STATS_pos_min_y         # y の最小値を与える x 座標
    STATS_pos_max_y         # y の最大値を与える x 座標

同時に 2 つ以上のファイルからの統計情報を使うことができれば便利でしょうから、変数のデフォルトの接頭辞である "STATS" をオプション name でユーザが指定する文字列に置き換えることができるようになっています。例え ば、異なる 2 つのファイルのそれぞれの 2 列目のデータの平均値は以下のようにして比較できます:

    stats "file1.dat" using 2 name "A"
    stats "file2.dat" using 2 name "B"
    if (A_mean < B_mean) {...}

STATS_index_xxx で示される添字の値は、plot コマンドの第 0 疑似列 ($0) の値に対応し、最初の点は添字は 0、最後の点の添字は N-1 となります。

メジアンと四分位境界値を探す際はデータの値をソートし、点の総数 N が奇 数の場合は、その (N+1)/2 番目の値をメジアン値とし、N が偶数の場合は、 N/2 番目と (N+2)/2 番目の値の平均値をメジアン値とします。四分位境界値 も同様に処理します。

その後の描画に注釈をつけるためにコマンド stats を利用した例について は、以下を参照してください。

stats.dem。

現在の実装では、X 軸と Y 軸の一方が対数軸の場合は解析できません。この 制限は今後のバージョンでは解消されるでしょう。

竹野茂治@新潟工科大学
2012年10月3日