26.3 Basic Statistical Functions

Last-modified: 2025-03-08 (土) 14:35:43

26.3 基本的な統計関数
Octave は、さまざまな役立つ統計関数をサポートしています。その多くは、さらなる分析のためにデータ セットを準備するための最初のステップとして役立ちます。その他の関数は、基本的な記述統計とは異なる測定基準を提供します。

: y = center (x)
: y = center (x, dim)
平均値を減算してデータを中央揃えします。

xがベクトルの 場合は、その平均を減算します。

xが行列の 場合は、各列に対して上記を実行します。

オプションの引数dimが指定されている場合は、この次元に沿って操作します。

プログラミング ノート:center統計データの正規化に明らかに応用できます。また、一般的な数値計算の精度を向上させるのにも役立ちます。データのバッチに共通する大きな値がある場合は、その平均値を減算して計算を実行し、平均値を加算して最終的な答えを得ることができます。

参照: zscore。

: z = zscore (x)
: z = zscore (x, opt)
: z = zscore (x, opt, dim)
: [z, mu, sigma] = zscore (…)
xの Z スコアを計算します。

xがベクトルの場合は、その平均を減算し、標準偏差で割ります。標準偏差が 0 の場合は、代わりに 1 で割ります。

オプションパラメータopt は、標準偏差を計算するときに使用する正規化を決定し、 の対応するパラメータと同じ定義を持ちますstd。

xが行列の場合、最初の非シングルトン次元に沿って計算します。3 番目のオプション引数dimが指定されている場合は、この次元に沿って操作します。

オプションの出力muとsigmaには、平均と標準偏差が含まれます。

参照: mean、std、center。

: z = normalize (x)
: z = normalize (x, dim)
: z = normalize (…, method)
: z = normalize (…, method, option)
: z = normalize (…, scale, scaleoption, center, centeroption)
: [z, c, s] = normalize (…)
利用可能ないくつかのスケーリングおよびセンタリング方法の 1 つを使用して、 xのデータの正規化を返します。

normalizeデフォルトでは、 xzscoreの を返します。これは、各要素がxの平均から何標準偏差離れているかとして定義されます。これは、データの平均を中心にして標準偏差でスケーリングすることと同じです。

返される値z はxと同じサイズになります。オプションの戻り変数cとsは、正規化に使用されるセンタリング係数とスケーリング係数です。

 z = (x - c) ./ s

xがベクトルの場合、 xnormalize内のデータに対して操作を行います 。

xが行列の場合、 xnormalizeの各列に対して独立して演算が行われます。

xが N 次元配列の場合、 xnormalizeの最初の非シングルトン次元に対して独立して動作します。

オプションの 2 番目の引数dimが指定されている場合は、この次元に沿って操作します。

normalizeNaN 値を無視するxstdは、、、meanおよびの omitnan オプションの動作に似ていますmedian。

オプションの入力メソッドとオプションは、 xに対して実行される正規化の種類を指定するために使用できます。 規模そして中心オプションは、以下に定義されているいずれかの方法を使用して一緒に指定できます。有効な正規化方法は次のとおりです。

zscore
(デフォルト) xの要素を中心値からのスケール距離に正規化します。有効なオプション:

std
(デフォルト) データは標準偏差を基準に中心化され、標準偏差によってスケーリングされます。 mean (x)

robust
データは中央絶対偏差を中心とし、中央絶対偏差によってスケーリングされます。 median (x)

norm
zはxの一般的なベクトルノルムであり、オプションは正規化係数pであり、ベクトルノルムのタイプを次に従って決定します。

 z = [sum (abs (x) .^ p)] ^ (1/p)

p は任意の正のスカラーで、具体的な値は次のとおりです。

p = 1
xは によって正規化されます。 sum (abs (x))

p = 2
(デフォルト) xは、要素のユークリッドノルム、つまりベクトルの大きさによって正規化されます。

P = Inf
xは によって正規化されます。 max (abs (x))

scale
x は、オプションによって決定される係数によってスケーリングされます。オプションは、数値スカラーまたは次のいずれかになります。

std
(デフォルト) xは標準偏差によってスケーリングされます。

mad
x は中央絶対偏差によってスケーリングされます。

first
x は最初の要素によってスケーリングされます。

iqr
x は四分位範囲によってスケーリングされます。

range
x は、オプションで指定された範囲に収まるように、2 要素のスカラー行ベクトルとしてスケーリングされます。デフォルトの範囲は [0, 1] です。

center
x は、オプションによって決定される量だけシフトされます。オプションは、数値スカラーまたは次のいずれかになります。

mean
(デフォルト) xは シフトされます。 mean (x)

median
xは シフトされます。 median (x)

medianiqr
xは四分位範囲によって シフトされ、スケーリングされます。median (x)

既知のMATLAB の非互換性:

オプションデータ変数テーブルクラスx入力にはまだ実装されていません 。
参照: zscore、iqr、norm、rescale、std、median、mean、mad。

: n = histc (x, edges)
: n = histc (x, edges, dim)
: [n, idx] = histc (…)
ヒストグラムのカウントを計算します。

xがベクトルの場合、関数は、 エッジによって定義されるヒストグラム ビンに含まれるxの要素の数をカウントします。これは、ヒストグラム ビンのエッジを定義する単調に増加する値のベクトルである必要があります。 には、 となる x の要素の数が含まれます。nの最後の要素には、エッジ の最後の要素とまったく同じ数のxの要素が含まれます。 n(k)edges(k) <= x < edges(k+1)

xがN次元配列の場合、計算は次元dimに沿って実行されます。指定されていない場合、dim はデフォルトで最初の非シングルトン次元に設定されます。

2 番目の出力引数が要求されると、インデックス マトリックスも返されます。idxマトリックスのサイズはxと同じです。 idxの各要素には、 xの対応する要素がカウントされたヒストグラム ビンのインデックスが含まれます。

参照: hist。

uniqueuniqueで文書化された関数は、統計に役立つことがよくあります。

: c = nchoosek (n, k)
: c = nchoosek (set, k)
nの二項係数を計算するか、一連の項目 のすべての可能な組み合わせを一覧表示します。

nがスカラーの場合、次のように定義される nとkの二項係数を計算します。

/   \
| n |    n (n-1) (n-2) ... (n-k+1)       n!
|   |  = ------------------------- =  ---------
| k |               k!                k! (n-k)!
\   /

これは、サイズkのグループにまとめられたn個の項目の組み合わせの数です。

最初の引数がベクトルsetの場合、 setの要素のすべての組み合わせを、組み合わせごとに 1 行ずつ、一度にk個ずつ生成します。結果c にはk列と k 行が含まれます 。 nchoosek (length (set), k)

例えば:

3 つのアイテムをペアにグループ化する方法は何通りありますか?

nchoosek (3, 2)
  ⇒ 3

可能なペアは何ですか?

nchoosek (1:3, 2)
  ⇒  1   2
      1   3
      2   3

プログラミング ノート: 二項係数の計算はnchoosek 、非負の整数引数に対してのみ機能します。bincoeff非整数および負のスカラー引数に使用したり、nまたはkのベクトル入力を使用して一度に多くの二項係数を計算したりする場合にも使用します。

参照: bincoeff、perms。

: P = perms (v)
: P = perms (v, "unique")
ベクトルvのすべての順列を、順列ごとに 1 行ずつ生成します。

vが昇順の場合、結果は逆辞書式順序で返されます。 vが異なる順列の場合、結果もそのように順列化されます。したがって、降順の入力は通常の辞書式順序の結果になります。結果のサイズは で 、nはvの長さです。重複する要素はすべて出力に含まれます。 factorial (n) * n

オプションの引数"unique"が指定されている場合は、一意の順列のみが返され、 を呼び出す場合よりもメモリの使用量が少なくなり、時間も短縮されます 。 unique (perms (v), "rows")

例1

perms ([1, 2, 3])
⇒
3   2   1
3   1   2
2   3   1
2   1   3
1   3   2
1   2   3

例2

perms ([1, 1, 2, 2], "unique")
⇒
2   2   1   1
2   1   2   1
2   1   1   2
1   2   2   1
1   2   1   2
1   1   2   2

プログラミング ノート: オプションを使用しない場合、メモリ消費を制限するために、 v"unique"の長さは 10-12 以下にする必要があります。 を使用した場合でも 、 v内の一意の要素は 10-12 以下にする必要があります 。 "unique"

permute、randperm、nchoosekも参照してください。

: y = ranks (x)
: y = ranks (x, dim)
: y = ranks (x, dim, rtype)
同順位に調整された最初の非シングルトン次元に沿った xの順位 (順序統計の意味で) を返します。

オプションのdim引数が指定されている場合は、この次元に沿って操作します。

オプションのパラメータrtype は、同点の処理方法を決定します。以下のすべての例では、 の入力を想定しています[ 1, 2, 2, 4 ]。

0または"fractional"(デフォルト)小数順位(1、2.5、
2.5、4);

1または"competition"競争順位(1、2、2、4)
2または"modified"修正された競争順位(1、3、3、4)
3 または"ordinal"序数(1、2、3、4)
4 または"dense"密なランキング (1、2、2、3)。
参照: spearman、kendall。

: cnt = run_count (x, n)
: cnt = run_count (x, n, dim)
長さが 1、2、…、n -1 でn以上であるxの最初の非シングルトン次元に沿った上向きの実行を数えます。

オプションの引数dimが指定されている場合は、この次元に沿って操作します。

参照: runlength。

: count = runlength (x)
: [count, value] = runlength (x)
共通値のすべてのシーケンスの長さを見つけます。

count は、繰り返される各値の長さを持つベクトルです。

オプションの出力値には、シーケンス内で繰り返された値が含まれます。

runlength ([2, 2, 0, 4, 4, 4, 0, 1, 1, 1, 1])
⇒   2   1   3   1   4

参照: run_count。