Var

行列/ベクトル要素の値の分散を計算します。

double vector::Var();
 
double vector::Var(
const int    ddof       // デルタ自由度
);
 
double matrix::Var();
 
vector matrix::Var(
  const int  axis        // 軸
);
 
vector matrix::Var(
  const int  axis,       // 軸
const int    ddof     // デルタ自由度
);

パラメータ

axis

[in] 軸。0 — 水平軸、1 — 垂直軸

ddof

[in] 「デルタ自由度」:計算で使われる除数はN - ddofで、ここでNは要素の数を表します。デフォルトは0。

戻り値

分散:スカラーまたはベクトル

注意事項

分散は、平均からの二乗偏差の平均です。つまり、var = mean(x)、ここで x = abs(a - a.mean())**2です。

平均は通常、x.sum() / (N - ddof)として計算されます。ここで、N = len(x)です。

ddof=0の場合の式は、「母集団分散」と呼ばれることがあります。ddof > 0(最も一般的には1)の場合、得られる値は「標本分散」と呼ばれることがあります。

  matrixf matrix_a={{10,3,2},{1,8,12},{6,5,4},{7,11,9}};
  Print("matrix_a\n",matrix_a);
 
  vectorf cols_var=matrix_a.Var(0);
  vectorf rows_var=matrix_a.Var(1);
  float matrix_var=matrix_a.Var();
 
  Print("cols_var ",cols_var);
  Print("rows_var ",rows_var);
  Print("var value  ",matrix_var);
 
 
  /*
  matrix_a
  [[10,3,2]
   [1,8,12]
   [6,5,4]
   [7,11,9]]
  cols_var [10.5,9.1875,15.6875]
  rows_var [12.666667,20.666666,0.66666669,2.6666667]
  var value 11.916666984558105
  */