乱数検定: RMT 検定
概要
RMT 検定 (random matrix theory test) [1] はデータ列の乱数性を検定するためのアルゴリズム。与えられたデータ列で相互相関行列を作成し、その固有値分布が RMT に基づく理論曲線と一致すれば検定に合格する。
Table of Contents
手順
検定対象のデータ列を長さ \(L\) の \(N\) 個に分割して \(L\times N\) 行列 \(a_{i,j}\) を作成する。RMT 公式を使うためには \(N \ge 500\) であれば十分 [2]。
各列が平均 0、分散 1 となるように正規化する。\[ \begin{eqnarray*} G & = & \left( \begin{matrix} g_{1,1} & \ldots & g_{1,N} \\ \vdots & \ddots & \vdots \\ g_{L,1} & \ldots & g_{L,N} \end{matrix}\right) \\ g_{i,j} & = & \frac{a_{i,j} - \langle a_j \rangle}{\sqrt{\langle a_j^2\rangle - \langle a_j\rangle^2}} \end{eqnarray*} \]
相関行列を算出する。\[C = \frac{1}{L} G^T G\]
相関行列 \(C\) を \(k\) 乗してその体格要素の平均を取り、\(k\) 次のモーメントの理論値を算出する。\[ \begin{eqnarray*} m_k & = & \frac{1}{N} \sum_{i=1}^N (C^k)_{i,j} = \frac{1}{N} \sum_{i=1}^N \lambda_i^k \\ \mu_k & = & \int_{\lambda_-}^{\lambda_+} \lambda^k P_{RMT}(\lambda)\,d\lambda \end{eqnarray*} \] ここで \(P_{\rm RMT}(\lambda)\) は次のように表される。\[ \begin{eqnarray*} P_{\rm RMT}(\lambda) & = & \frac{Q}{2\pi\lambda} \sqrt{(\lambda_+ - \lambda)(\lambda - \lambda_-)} \\ Q & = & \frac{L}{N} \\ \lambda_\pm & = & 1 + \frac{1}{Q} \pm 2\sqrt{\frac{1}{Q}} \end{eqnarray*} \]
誤差 \(0 \le e \le 1\) を算出する。\[ e = \left( \frac{m_k}{\mu_k} - 1 \right) \]
参考文献
- Xin Yang, Ryota Itoi, Mieko Tanaka-Yamawaki, Testing Randomness by Means of Random Matrix Theory, Progress of Theoretical Physics Supplement, Volume 194, May 2012, Pages 73–83, https://doi.org/10.1143/PTPS.194.73
- 三賀森悠大; 楊欣; 田中美栄子. 乱数度測定器 RMT テストにおける高乱数度判定基準の再考. In: IEICE Conferences Archives. The Institute of Electronics, Information and Communication Engineers, 2013.