関数sequence_dispersion マニュアル

(The documentation of function sequence_dispersion)

Last Update: 2021/12/8


◆機能・用途(Purpose)

時系列データのサンプルの値の分散を計算する。
Calculate the dispersion of the sample values of a time series data.


◆形式(Format)

#include <sequence/statistics.h>
inline double sequence_dispersion(struct sequence seq)


◆引数(Arguments)

seq 計算に用いる時系列データを表す構造体。
A structure to represent the time series data used for the computation.


◆戻り値(Return value)

seq.valueの配列要素の分散。
The dispersion of the array components of seq.value.


◆使用例(Example)

struct sequence seq;
double sigma2=sequence_dispersion(seq);


◆計算式とアルゴリズム (Formula and algorithm)

\(a_n=\)seq.value[n], \(N=\)seq.sizeとおく。 この\(a_n\) (\(n=0,1,2,\cdots,N-1\)) の分散\(\sigma^2\)を計算すれば良く、 定義式は以下の通りである。
\[\begin{equation} \sigma^2=\frac{1}{N}\sum_{n=0}^{N-1} (a_n-\mu)^2 \label{eq.sigma2.definition} \end{equation}\] \[\begin{equation} \mu=\frac{1}{N}\sum_{n=0}^{N-1} a_n \label{eq.mu.definition} \end{equation}\] (\ref{eq.mu.definition})式を用いると(\ref{eq.sigma2.definition})式は 以下のように変形できる。 \[\begin{eqnarray} \sigma^2 &=& \frac{1}{N} \sum_{n=0}^{N-1} (a_n^2 - 2\mu a_n + \mu^2) \nonumber \\ &=& \frac{1}{N} \sum_{n=0}^{N-1} a_n^2 -2\mu \frac{1}{N} \sum_{n=0}^{N-1} a_n +\mu^2 \frac{1}{N} \sum_{n=0}^{N-1} 1 \nonumber \\ &=& \frac{1}{N} \sum_{n=0}^{N-1} a_n^2 -2\mu^2 + \mu^2 \nonumber \\ &=& \frac{1}{N} \sum_{n=0}^{N-1} a_n^2 -\mu^2 \label{eq.sigma2.arrange1} \end{eqnarray}\] この\(\mu\)は関数sequence_average (sequence/statistics.h)によって計算でき、 \[\begin{equation} \frac{1}{N}\sum_{n=0}^{N-1} a_n^2 \label{eq.an2.summation} \end{equation}\] は関数sequence_power2_average (sequence/statistics.h)によって計算できる。 したがって、関数sequence_averageの戻り値を\(a\)、 sequence_power2_averageの戻り値を\(a_2\)とおけば、 分散は \[\begin{equation} \sigma^2=a_2-a^2 \label{eq.sigma2.final} \end{equation}\] によって計算できる。 この関数ではこの方法により分散を計算する。
Let us introduce notations \(a_n=\)seq.value[n] and \(N=\)seq.size. Then the quantity required is the dispersion \(\sigma^2\) for this \(a_n\) (\(n=0,1,2,\cdots,N-1\)), which is defined by eqs. (\ref{eq.sigma2.definition}) and (\ref{eq.mu.definition}). Using eq. (\ref{eq.mu.definition}), eq. (\ref{eq.sigma2.definition}) can be arranged as (\ref{eq.sigma2.arrange1}). The value of \(\mu\) and the quantity defined by eq. (\ref{eq.an2.summation}) can be computed by functions sequence_average and sequence_power2_average (both in sequence/statistics.h), respectively. Then the dispersion can be computed by eq. (\ref{eq.sigma2.final}), where \(a\) and \(a_2\) are the return values of functions sequence_average and sequence_power2_average, respectively. This function calculates the dispersion by this approach.