105 Stats (簡単な統計情報)

書式:
    stats {<ranges>} 'filename' {matrix | using N{:M}} {name 'prefix'}
          {{no}output}
    stats $voxelgridname {name 'prefix'}

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

ファイルが見つからない、あるいはファイルから読み込めない場合は、致命的 ではない警告を発行します。これは、プログラムエラーを伴わないファイルの 存在確認に利用できます。以下参照: stats test (105.2)

画面出力に加え、gnuplot は個々の統計情報を 3 つの変数グループに保存し ます。 1 番目の変数グループは、どんなデータが並んでいるかを示しますが、先頭行 の配列は、set datafile columnheaders が有効な場合にのみ作成されます:

STATS_records   N   範囲内のデータ行の総数 N
STATS_outofrange       範囲外として除かれた行数
STATS_invalid       無効/不完全/欠損データ行の総数
STATS_blank       空行の総数
STATS_blocks       ファイル内のデータの index ブロック数
STATS_columns       データ先頭行の列数
STATS_column_header       先頭行に見つかった文字列を保持する配列

2 番目の変数グループは、1 つの列の、範囲内のデータの性質を示します。こ の列は y の値として扱われます。y 軸が自動縮尺の場合は、対象とする範囲 に限界はありませんが、そうでなければ範囲 [ymin:ymax] 内の値のみを対象 とします。

2 つの列を同時に 1 回の stats コマンドで解析する場合は、各変数名に "_x", "_y" という接尾辞を追加します。例えば STATS_min_x は、1 つ目の列 のデータの最小値で、STATS_min_y は 2 つ目の列のデータの最小値を意味し ます。この場合、点は xrange と yrange の両方で検査することでふるいにか けます。

STATS_min   min(y) 範囲内のデータ点の最小値
STATS_max   max(y) 範囲内のデータ点の最大値
STATS_index_min   i | yi = min(y) data[i] == STATS_min となる添字 i
STATS_index_max   i | yi = max(y) data[i] == STATS_max となる添字 i
STATS_mean $\bar{{y}}$ = ${\frac{{1}}{{N}}}$$\sum$y 範囲内のデータ点の平均値
STATS_stddev $\sigma_{y}^{}$ = $\sqrt{{\frac{1}{N}{\sum{{(y-\bar{y})}^2}}}}$ 範囲内のデータ点の標本標準偏差
STATS_ssd sy = $\sqrt{{\frac{1}{N-1}{\sum{{(y-\bar{y})}^2}}}}$ 範囲内のデータ点の不偏標準偏差
STATS_lo_quartile     第一 (下の) 四分位境界値
STATS_median     メジアン値 (第二四分位境界値)
STATS_up_quartile     第三 (上の) 四分位境界値
STATS_sum   $\sum$y
STATS_sumsq   $\sum$y2 平方和
STATS_skewness   ${\frac{{1}}{{N\sigma^3}}}$$\sum$(y-$\bar{{y}}$)3 範囲内のデータ点の歪度
STATS_kurtosis   ${\frac{{1}}{{N\sigma^4}}}$$\sum$(y-$\bar{{y}}$)4 範囲内のデータ点の尖度
STATS_adev   ${\frac{{1}}{{N}}}$$\sum$| y-$\bar{{y}}$| 範囲内のデータ点の平均絶対偏差
STATS_mean_err   $\sigma_{y}^{}$/$\sqrt{{N}}$ 平均値の標準誤差
STATS_stddev_err   $\sigma_{y}^{}$/$\sqrt{{2N}}$ 標準偏差の標準誤差
STATS_skewness_err   $\sqrt{{6/N}}$ 歪度の標準誤差
STATS_kurtosis_err   $\sqrt{{24/N}}$ 尖度の標準誤差

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

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

キーワード matrix は、入力が行列形式であることを指示します (以下参照:matrix (104.1.1))。通常の統計情報は、すべての行列要素を考慮して生成します。行 列のサイズは、変数 STATS_size_x, STATS_size_y に保存します。

STATS_size_x 行列の列数
STATS_size_y 行列の列数

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

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

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

現在のバージョンの gnuplot の stats コマンドでは、日時フィールド (set xdata timeset ydata time) でなければ対数軸のデータも処理 できます。この制限は、将来のバージョンで緩和されるでしょう。


Subsections
竹野茂治@新潟工科大学
2021-06-25