数学的平均～5. 重み付き平均・列平均～

## 5. 重み付き平均・列平均

### 概要

このシリーズではデータ分析等で現れる平均について, 数学的観点から定義・解説する.  
よく知られた平均である算術平均, 幾何平均, 調和平均と, これらを一般化した平均, またそれ以外の平均の例を紹介して, それぞれが持つ性質について述べる.  

今回は最終回として, 既存の平均を使って新たに平均を構成する重み付き平均, 列平均を取り上げる.  

1. [平均の一般的な定義・性質](https://qiita.com/RDProm/items/a2aca16588e5705f9bd4), 
2. [算術平均・幾何平均・調和平均](https://qiita.com/RDProm/items/25935f4a39430e9dfac8),  
3. [ヘルダー平均・一般化 _f_ 平均](https://qiita.com/RDProm/items/1cd6ab41828870c8ef2b),  
4. [期待値・中央値・最頻値](https://qiita.com/RDProm/private/6c28ed70b9deab2620a1),  
5. (ｺｺ) 重み付き平均・列平均,  

### 重み付き平均 (weighted mean)

重み付き平均は, $X = [x_0, x_1, \dots, x_{n-1}] \in \mathbb{R}^n$ に対して重み $\Lambda = [\lambda_0, \lambda_1, \dots, \lambda_{n-1}] \in \mathbb{R}^n$ を考えて, $\lambda_i$ に応じて $x_i$ を重視して平均を取る手法である.  

#### 重み付き算術平均, 一般化 _f_ 平均

重み付き算術平均は,  

$$ \begin{gather} 
\mathrm{AM}^\Lambda(X) := \frac{\sum_{i=0}^{n-1}\lambda_ix_i}{\sum_{i=0}^{n-1}\lambda_i}, \\\\ 
\text{for} \ X = [x_0, x_1, \dots, x_{n-1}] \in \mathbb{R}^n, \ \Lambda = [\lambda_0, \lambda_1, \dots, \lambda_{n-1}] \in \mathbb{R}^n_{\gt 0}, \\\\ 
\end{gather} $$

で与えられる ($\mathbb{R}\_{\gt 0}$ は正の実数の集合).  
$\sum_{i=0}^{n-1}\lambda_i = 1$ に制限して $\mathrm{AM}^\Lambda(X) := \sum_{i=0}^{n-1}\lambda_ix_i$ と定義するパターンも多い.  
全て同じ重みを与えて $\lambda_0 = \lambda_1 = \dots = \lambda_{n-1}$ とすると通常の算術平均になる.  

重み付き一般化 $f$ 平均は[重み付き算術平均を使った一般化 _f_ 平均](https://qiita.com/RDProm/private/1cd6ab41828870c8ef2b#%E4%B8%80%E8%88%AC%E5%8C%96-f-%E5%B9%B3%E5%9D%87-generalized-f-mean)で,  

$$ \begin{gather} 
M_f^\Lambda(X) := M_{f; \mathrm{AM}^\Lambda}(X) = f^{-1}(\mathrm{AM}^\Lambda(f(X))), \\\\ 
\text{for} \ X \in \mathcal{D}_f^n, \\ 
\end{gather} $$

と書ける.  
重み付き算術平均は内部性を持つため, 一般化 $f$ 平均での同様の議論で, $x_i$ を $f$ の定義域 $\mathcal{D}_f$ 上から取れば $M_f^\Lambda(X)$ が定義できることが分かる.  

パラメータ $p \neq \pm\infty$ の重み付きヘルダー平均も重み付き一般化 $f$ 平均から,  

$$ \begin{gather} 
\mathcal{H}\_p^\Lambda(X) = \begin{cases} 
M_{x^p}^\Lambda(X) & p \neq 0, \pm\infty, \\\\ 
M_{\log{x}}^\Lambda(X) & p = 0, \\\\
\end{cases} \\\\ 
\text{for} \ X \in \mathbb{R}_{\gt 0}^n, \\\\ 
\end{gather} $$

で得られる.  
$p = \pm\infty$ の場合は極限操作で,  

$$ \lim\_{p \rightarrow \pm\infty}\mathcal{H}\_p^\Lambda(X) = \mathcal{H}\_{\pm\infty}(X), $$

と重みなしのヘルダー平均 (最大・最小値) に一致することが分かる.  

#### 重み付き確率論的平均

重みなしのそれぞれの平均の定義は[前回記事](https://qiita.com/RDProm/private/6c28ed70b9deab2620a1)を参照.  

期待値, 中央値, 最頻値の場合, 仮定した確率密度関数 $p(x; X)$ に対して重み関数 $l: \mathcal{D}_p \rightarrow \mathbb{R}$ を考えて,  

$$ p^l(x; X) := \begin{cases} 
\frac{l(x)p(x)}{\int\_{\mathcal{D}_p}l(x)dx} & \text{連続分布を仮定}, \\\\ 
\frac{l(x)p(x)}{\sum\_{x \in \mathcal{D}\_p}l(x)} & \text{離散分布を仮定}, \\\\ 
\end{cases} $$

を使ってそれぞれを算出することで定義される.  

重み付きの標準的な中央値は, $X$ をソートして隣り合う $x^\sigma_i, x^\sigma_{i+1}$ の間隔を $\Delta = [\delta_0, \delta_1, \dots, \delta_{m-2}]$ で重み付けて,  

$$ \begin{gather} 
i_l^\Delta := \max{\left\\{i \ \middle| \ \sum_{j=0}^{i-1}\delta_j \leq \frac{1}{2}\sum_{j=0}^{n-2}\delta_j\right\\}}, \\\\ 
i_u^\Delta := \min{\left\\{i \ \middle| \ \sum_{j=0}^{i-1}\delta_j \geq \frac{1}{2}\sum_{j=0}^{n-2}\delta_j\right\\}} \\\\ 
\end{gather} $$

を使って $x^\sigma_{i_l^\Lambda}, x^\sigma_{i_u^\Lambda}$ の平均を取ることで得られ, $\delta_j = 1$ と取れば $\sum_{j=0}^{k-1}\delta_j = k$ であり, 標準的な中央値に一致することが確認できる.  
点の間隔でなく各点 $x^\sigma_i$ に対して重みを付けたいなら, 重み $\lambda_i$ から $\delta_i := \lambda_i+\lambda_{i+1}$ とすればいい.  
例えば下側 (第1) 四分位数は,  

$$ \delta_j := \begin{cases} 
3 & j \lt \frac{n-1}{4}, \\\\ 
1 & j \geq \frac{n-1}{4}, \\\\ 
\end{cases} $$

で重み付けた標準的な中央値と見なせる[^quartile].  

[^quartile]: 中央値と同様に, 四分位数においてちょうど 25% に当たる点を取れない時の処理もいくつか方法がある. NumPy の `np.quartile`, `np.percentile` では $x^\sigma_{i_l^\Lambda}, x^\sigma_{i_u^\Lambda}$ に対して $[(n-1)\%1, 1-(n-1)\%1]$ で重み付けた算術平均を取っている ($a\%b$ は $a$ を $b$ で割った余り, ここでは小数部分).  

重み付きの標準的な最頻値の場合は,  

$$ v_j^\Lambda := \sum_{i \in [\alpha_j, \alpha_{j+1})}\lambda_i, $$

が最大になる $j$ を最頻区間として最頻値を計算すればいい.  

### 列平均 (sequential mean)

2数 $a_0, b_0$ から始めて, 算術平均 $\mathrm{AM}$, 幾何平均 $\mathrm{GM}$ によって,  

$$ \begin{cases} 
a_{i+1} := \mathrm{AM}([a_i, b_i]), \\ 
b_{i+1} := \mathrm{GM}([a_i, b_i]), \\ 
\end{cases} $$

で生成される2つの数列 $\{a_n\}, \{b_n\}$ は同じ値に収束することが知られており, その極限値は**算術幾何平均**と呼ばれる.  

一般の2つの平均 $\mu_a, \mu_b$ によって同様に数列を生成して同じ値に収束する時, その極限値を取ると新たな平均を構成することができ, 次の文献等では sequential mean と呼ばれている (和訳は見つからなかったのでこのシリーズでは列平均と訳す).  
cf. THEORY OF MEANS AND THEIR INEQUALITIES / J. Sándor (PDF:http://www.math.ubbcluj.ro/~jsandor/lapok/Sandor-Jozsef-Theory%20of%20Means%20and%20Their%20Inequalities.pdf)

$$ \begin{gather} 
\mu_a\boxtimes\mu_b([a_0, b_0]) := \lim_{n \rightarrow \infty}a_n = \lim_{n \rightarrow \infty}b_n, \\\\ 
a_{i+1} = \mu_a([a_i, b_i]), \quad b_{i+1} = \mu_b([a_i, b_i]), \\\\ 
\end{gather}$$

列平均は任意の $\mu_a, \mu_b$ に対して構成できるわけではない.  
例えばパラメータ $\pm\infty$ のヘルダー平均を適用すると, 常に $a_n = \max{\{a_0, b_0\}}, b_n = \min{\{a_0, b_0\}}$ であり, $a_0 \neq b_0$ であれば同じ値には収束しない.  

ここで, 2つの平均 $\mu_0, \mu_1$ について, 任意の $x_0, x_1$ に対して常に $\mu_0([x_0, x_1]) \leq \mu_1([x_0, x_1])$ となることを $\mu_0 \ll \mu_1$ と書くと,  

(1) $\mu_a, \mu_b$ がいずれも[内部性](https://qiita.com/RDProm/private/a2aca16588e5705f9bd4#一般的な性質)を持つ,  
(2) $\mu_a \ll \mu_b$ または $\mu_a \gg \mu_b$,  

が共に成り立てば,  

$$ a_0 \leq a_1 \leq \dots \leq a_n \leq b_n \leq \dots \leq b_0, $$

($\mu_a \gg \mu_b$ ならば逆の不等号) から $a_n, b_n$ が収束することが言えて,  

(3) $\mu_a, \mu_b$ のいずれかが連続かつ狭義内部性を持つ,  

であれば, 例えば $\mu_a$ について連続かつ狭義内部性が成り立つ時, 連続性から,  

$$ \begin{gather} 
a^\* := \lim_{n \rightarrow \infty}a_n, \ b^\* := \lim_{n \rightarrow \infty}b_n, \\\\ 
a^\* = \lim_{n \rightarrow \infty}\mu_a([a_n, b_n]) = \mu_a([a^\*, b^\*]), \\\\ 
\end{gather} $$

で, 狭義内部性から $a^\* = b^\* = \mu_a([a^\*, b^\*])$ となることが分かる.  

2つのパラメータのヘルダー平均は (1), (2) を満たし, パラメータが $\pm\infty$ でなければ (3) も成り立つので列平均が定義できる.  
一般化 $f$ 平均は常に連続かつ狭義連続性を満たすため, $M_f, M_g$ が (2) を満たすのであれば列平均が存在する.  
[第3回の一般化 _f_ 平均の性質](https://qiita.com/RDProm/private/1cd6ab41828870c8ef2b#性質)で述べたように, $g\circ f^{-1}$ が凸関数なら (2) が成り立つことが分かっている.  

### 性質

重み付き平均, 列平均の性質は, 元になった平均の性質に大きく依存する.  
元の平均の性質を引き継ぐ ($\mu$ で成り立つなら派生した平均 $\mu'$ でも成り立つ) ことが多い.  

#### 一般性質

(1) 重み付き平均
重み付き一般化 $f$ 平均は, [一般的な性質](https://qiita.com/RDProm/private/a2aca16588e5705f9bd4#一般的な性質)のうち狭義内部性, 連続性, 狭義単調増加性を満たす.  
対称性, 双対称性については重みの置換, 入れ替えも含めると成り立つ.  
つまり,  

$$ \begin{gather} 
M\_f^{\Lambda^\sigma}(X^\sigma) = M\_f^\Lambda(X), \\\\ 
M\_f^\Lambda([M\_f^{\Lambda'}([x\_{ij}]\_{j=0, 1, \dots, m-1})]\_{i=0, 1, \dots, n-1}) = M\_f^{\Lambda'}([M\_f^{\Lambda}([x\_{ij}]\_{i=0, 1, \dots, n-1})]\_{j=0, 1, \dots, m-1}). \\ 
\end{gather} $$

置換性についても, $\Lambda_{:k} = [\lambda_0, \lambda_1, \dots, \lambda_{k-1}]$ によって,  

$$ M_f^\Lambda(X) = M_f^\Lambda([M_f^{\Lambda_{:k}}([x_0, x_1, \dots, x_{k-1}]), \dots, M_f^{\Lambda_{:k}}([x_0, x_1, \dots, x_{k-1}]), x_k, \dots, x_{n-1}]), $$

という形で成り立つ.  

重み付きの標準的な中央値, 最頻値はやはり付随する平均の性質に依存し, 重みなしで成り立つ性質を引き継ぐ.  

(2) 列平均
2つの平均 $\mu_a, \mu_b$ による列平均 $\mu_a\boxtimes\mu_b$ は, $\mu_a, \mu_b$ が共にそれぞれ内部性, 対称性, 斉次性, 単調増加性を持つなら, 列平均も同じ性質を持つ.  
双対称性, 連続性については極限の交換が発生するため, $\mu_a, \mu_b$ で成り立っても $\mu_a\boxtimes\mu_b$ でも成り立つとは限らない.