gcor 手法概要

作者
所属

鈴木了太

株式会社ef-prime

公開

2026年3月11日

1 導入

gcorは一般化相関尺度を提供するソフトウェアで、RおよびPythonで利用可能である。本ドキュメントはgcorが採用する手法について説明する。

1.1 概要

連続、離散またはその混合を含む任意の確率変数の組\((X,Y)\)に対して定義され、区間\([0,1]\)に値をとる尺度を考える。これは\(X\)\(Y\)が独立のとき\(0\)、相互に完全従属のとき\(1\)をとり、特に\((X,Y)\)が二変量正規分布に従うとき相関係数の絶対値\(|\rho|\)に一致するものとする。

このような性質を満たす尺度はさまざまな形で定義することができ、これらを総称して一般化相関尺度と呼ぶ。gcorは情報理論的アプローチに基づく尺度を提供し、線形のみならず非線形な関係についても評価することができる。

これらの尺度は\(X\)\(Y\)の同時分布によって定まる母数であり、実用においてはデータから推定する必要がある。本ドキュメントではgcorが採用する尺度の定義、およびその推定手法について説明する。

2 尺度の定義

本章では母集団分布における一般化相関尺度の定義を説明する。

2.1 準備

ふたつの確率変数\(X\)\(Y\)について、関係の強さを評価することを考える。\(X\)\(Y\)はいずれも任意の確率変数であり、連続、離散またはその混合であってもよい。

確率変数の組\((X,Y)\)が同時分布\(P_{X,Y}\)に従うとする。離散の場合、同時確率を\(p_{X,Y}(x,y)\)、周辺確率を\(p_X(x), p_Y(y)\)で表す。連続の場合、同時密度を\(f_{X,Y}(x,y)\)、周辺密度を\(f_X(x), f_Y(y)\)で表す。

2.2 完全従属

確率変数間の関係の強さを評価するにあたり、 Lancaster (1963) による完全従属の概念を用いる。これは次のように要約することができる:

確率変数\(X\)の値が与えられたとき、\(Y\)の値が(確率1で)ひとつに定まる場合、\(Y\)\(X\)完全従属するという。より形式的には、ある可測関数\(g\)が存在して\(P(Y = g(X)) = 1\)が成り立つことをいう。さらに\(X\)もまた\(Y\)に完全従属するとき、\(X\)\(Y\)相互に完全従属するという。

2.3 一般化相関尺度

確率変数の組\((X,Y)\)の同時分布\(P_{X,Y}\)によって定まる量\(r\)が次の性質をすべて満たすとき、\(r\)一般化相関尺度(generalized correlation measure)と呼ぶ:

  1. \(0 \le r \le 1\)
  2. \(X\)\(Y\)が独立ならば、\(r = 0\)
  3. \(X\)\(Y\)が相互に完全従属ならば、\(r = 1\)
  4. \((X,Y)\)が相関係数\(\rho\)をもつ二変量正規分布に従うならば、\(r = |\rho|\)

ただし\(X\)\(Y\)がともに定数(確率1で特定の値をとる確率変数)である場合、これらは独立であると同時に相互に完全従属でもあるため、性質(2)と(3)が矛盾する。したがってこの場合、理論上は\(r\)を未定義とする。実用上は用途に応じて、便宜的に0または1と定めてもよい。

従属性の尺度について論じた Rényi (1959) でも類似の条件を公理の一部として挙げており、定数を議論から除外している。

2.4 カイ二乗情報相関

情報理論的アプローチに基づき、一般化相関尺度の性質を満たす尺度を定める。

確率変数\(X\)\(Y\)カイ二乗相互情報量は次のように表すことができる(Polyanskiy と Wu 2025; Csiszár 1967)

\[ I_{\chi^2}(X;Y) = \begin{cases} \displaystyle \mathbb{E}_{P_{X,Y}} \bigg[ \frac{dP_{X,Y}}{d(P_X \otimes P_Y)} \bigg] - 1 & (P_{X,Y} \ll P_X \otimes P_Y) \\ \infty & (\text{上記以外}) \end{cases} \]

ここで\(P_X \otimes P_Y\)\(P_X\)\(P_Y\)の直積分布、\(dP/dQ\)はラドン=ニコディム微分であり、\(P \ll Q\)\(P\)\(Q\)に対して絶対連続であることを示す。

尺度の定義にあたっては、定数\(1\)を足した\(\psi = I_{\chi^2}(X;Y) + 1\)を用いる。\(X\)\(Y\)がともに離散、あるいはともに連続の場合、一定の条件のもとで次のように表すことができる:

\[ \psi = \begin{cases} \displaystyle \sum_x \sum_y \frac{p_{X,Y}(x,y)^2}{p_X(x)p_Y(y)} & (\text{離散}) \\[1em] \displaystyle \iint \frac{f_{X,Y}(x,y)^2}{f_X(x)f_Y(y)} dx dy & (\text{連続}) \end{cases} \]

ここで\(p_{X,Y}(x,y)\)は同時確率、\(p_X(x)\)および\(p_Y(y)\)は周辺確率を表す。同様に\(f_{X,Y}(x,y)\)は同時密度、\(f_X(x)\)および\(f_Y(y)\)は周辺密度を表す。

これを用いて、カイ二乗情報相関(chi-squared informational correlation)を次の通り定める:

\[ \rchi(X,Y) = \begin{cases} \displaystyle \sqrt{\frac{1-\psi^{-1}}{\sqrt{1-k_X^{-1}}\sqrt{1-k_Y^{-1}}}} & (k_X > 1) \land (k_Y > 1) \\[1em] 0 & (k_X = 1 < k_Y) \lor (k_Y = 1 < k_X) \end{cases} \]

ここで\(k_X\)および\(k_Y\)\(X, Y\)それぞれの支持集合の基数とする。例として\(X\)が有限離散確率変数であれば、\(k_X\)\(p_X(x) > 0\)となる元\(x\)の数にあたる。ただし支持集合が無限集合の場合、無限の濃度を区別せず\(\infty\)と定める。\(Y\)についても同様に\(k_Y\)を定める。

なお先述のとおり、\(k_X = k_Y = 1\)の場合\(\rchi\)は未定義とする。

2.4.1 性質

カイ二乗情報相関\(\rchi\)は以下の性質をもつ:

  1. \(0 \le \rchi \le 1\)
  2. \(X\)\(Y\)が独立ならば、そのときに限り\(\rchi = 0\)
  3. \(X\)\(Y\)が相互に完全従属ならば、\(\rchi = 1\)
  4. \((X,Y)\)が相関係数\(\rho\)をもつ二変量正規分布に従うならば、\(\rchi = |\rho|\)
  5. 対称性。すなわち\(\rchi(X,Y) = \rchi(Y,X)\)
  6. 変換不変性。可測同型な変換\(u,v\)に対して\(\rchi(u(X),v(Y)) = \rchi(X,Y)\)

性質1〜4は一般化相関尺度の性質に対応する(性質2は同値関係であり、「0ならば独立」も保証される)。性質5および6も、相関係数の一般化として望ましい性質といえる。

3 推定手法

本章では一般化相関尺度の推定手法を説明する。

一般化相関尺度は母集団分布において定義され、実用においてはデータから推定する必要がある。gcorでは分布の関数形に強い仮定を置かないノンパラメトリックな推定手法を用いる。

理論上、一般化相関尺度は任意の確率変数の組について定義することができるが、推定にあたってはデータの型に応じた取り扱いが必要となる。gcorは統計ソフトウェアで一般的に利用されるデータ型である数値、カテゴリ、および日付や日時などに対応し、欠損値を含むデータについても取り扱うことができる。

3.1 準備

確率変数の組\((X,Y)\)について、独立同一分布に従うサンプルサイズ\(n\)の観測データを\(\mathbf{x} = (x_1, x_2, \cdots, x_n), \mathbf{y} = (y_1, y_2, \cdots, y_n)\)のように表す。これは対応のある標本であり、添字は個々の観測対象に対応する。つまり組\((x_i, y_i)\)\(i\)番目の対象について観測されたデータとする。

3.2 データ型

観測データ\(\mathbf{x}\)および\(\mathbf{y}\)はさまざまな型の値を取り得る。例として以下のデータ型が含まれる:

  • 整数
  • 浮動小数点数
  • 文字列
  • 論理値
  • 日時

推定の観点から次のように分類する:

カテゴリ型
取りうる値の数が有限個であるデータ。値は文字列、論理値あるいは整数がよく用いられるが、取りうる値が有限個であれば浮動小数点数や日時などであってもよい。欠損値(NA)を含んでもよい。
数値または順序型
カテゴリ型を除く、全順序が定義されたデータ。整数、浮動小数点数および日時などが該当する。正負の無限大(Inf/-Inf)を含んでもよい。全順序が定義されない例外的な要素として、欠損値(NA)を含んでもよい。
その他
上記のいずれにも当てはまらないデータ。すなわち、取りうる値の数が有限個でなく、かつ全順序が定義されないデータが該当する。例として複素数などが挙げられる(取りうる値が有限個である場合を除く)。これらについては、本稿で説明する推定手法の対象外とする。

ここで欠損値などの表記は統計解析環境Rに倣った。以下に実用上の詳細を記載しておく。

3.2.1 非数の扱い

本稿において、非数(NaN)は欠損値(NA)と同等のものとして扱う。実際、Python pandasでは欠損値の内部表現としてNaNnumpy.nan)がよく用いられる。RにおいてはNANaNは異なる内部表現をもつが、is.na(NaN)TRUEを返すなど、処理においては同等に扱われる場合がある。

3.2.2 分類の判定

実際のデータに含まれる値の数は常に有限個であり、適当な方法で全順序を定義することができるが、あらゆるデータをカテゴリ型とみなすことは適切ではない。実用上は次のような手順で分類の判定を行う:

  1. カテゴリを表すデータ型が設定されていれば、カテゴリ型とみなす。Rにおけるfactor、Pythonにおけるpandas.Categoricalがこれに相当する。
  2. 数値や日時などを表すデータ型が設定されていれば、「数値または順序型」とみなす。
  3. 文字列など他のデータ型で、出現する値の種類が一定の閾値以下であれば、カテゴリ型とみなす。閾値はmax_levels引数によって設定することができる。
  4. 上記のいずれにも当てはまらない場合、「その他」とみなす。

3.3 分位点分割による推定

gcorが採用する推定手法について説明する。これは数値などの非カテゴリ型データを経験分位点を用いてカテゴリ化し、変換されたカテゴリ値を用いて近似的に指標を推定する方法である。

3.3.1 準備

欠損レコードの除去

既定では欠損値(NA)をカテゴリ値のひとつとして取り扱う。これによって、例えば「\(X\)が欠損したとき、\(Y\)が大きい値を取りやすい」といった傾向を評価に取り入れることができる。

この取り扱いが望ましくない場合、欠損レコードをあらかじめ除去することができる。R版ではdropNA引数、Python版ではdrop_na引数によって設定する。

欠損レコードを除去した場合、残りのレコード数をサンプルサイズ\(n\)とみなす。

分割数の設定

カテゴリ化においては分割数として整数\(k \ge 2\)を定める必要がある。\(k\)が大きいほど複雑な関係を評価することができる一方、推定精度を保つために必要なサンプルサイズが大きくなる。

既定では分割数は後述する方法で自動的に選択される。手動で指定する場合、引数kによって設定することができる。

3.3.2 アルゴリズム

推定アルゴリズムは3つのステップから構成される。

Step 1: カテゴリ化

本ステップでは、観測データをカテゴリ型に変換する。

観測データ\(\mathbf{x}, \mathbf{y}\)に対して、変換後のデータをそれぞれ\(\mathbf{x'}, \mathbf{y'}\)と表す。以下\(\mathbf{x}\)について示し、\(\mathbf{y}\)についても同様に変換することとする。

分割数\(k\)が指定されていない場合、次の10対2基準によって分割数を設定する:

\[ k = \max \bigg\{2,\; \Bigl\lfloor \tfrac12 (n_\mathbf{x})^{\log_{10} 2} \Bigr\rfloor \bigg\} \]

ここで\(n_\mathbf{x}\)\(x_i\)が欠損せず観測できた数とする。欠損を\(\mathtt{NA}\)で表すと、これは次のように書ける:

\[ n_\mathbf{x} = \sum_{i=1}^n \mathbf{1} \{x_i \ne \mathtt{NA}\} \]

事前に欠損レコードを除去した場合、またはデータに欠損値が含まれない場合、\(n_\mathbf{x} = n\)である。

次のいずれかに当てはまるとき、単に\(\mathbf{x'} = \mathbf{x}\)とする:

  • \(\mathbf{x}\)がカテゴリ型
  • \(\mathbf{x}\)のとる値の種類が\(k\)個以下

それ以外、すなわち\(\mathbf{x}\)が数値または順序型で\(k\)個より多くの値をとる場合、経験分布に基づく経験\(k\)分位点\(\hat{q}_X[m] \; (0 \le m \le k)\)を計算する。\(X\)の経験分布関数を次で定める:

\[ \hat{F}_X(x) = \frac{1}{n_\mathbf{x}} \sum_{i:\,x_i \ne \mathtt{NA}} \mathbf{1} \{x_i \le x\} \]

\(k\)に対する\(X\)の第\(m\)分位点を次で定める:

\[ \hat{q}_X[m] := \min \bigg\{ x_i : x_i \ne \mathtt{NA},\, \hat{F}_X(x_i) \ge \frac{m}{k} \bigg\} \quad (0 \le m \le k) \]

ここで\(m = 0\)のとき最小値\(\hat{q}_X[0] = \min \{x_i : x_i \ne \mathtt{NA}\}\)\(m = k\)のとき最大値\(\hat{q}_X[k] = \max \{x_i : x_i \ne \mathtt{NA}\}\)である。

\(k = 4\)の例では以下のようになる:

\[ \begin{aligned} \hat{q}_X[0] &: \text{最小値} \\ \hat{q}_X[1] &: \text{第1四分位点} \\ \hat{q}_X[2] &: \text{第2四分位点(中央値)} \\ \hat{q}_X[3] &: \text{第3四分位点} \\ \hat{q}_X[4] &: \text{最大値} \\ \end{aligned} \]

ここでいう四分位点および中央値は、経験分布に基づく定義である。

これらを用いて経験\(k\)分位区間\(\hat{Q}_X[m] \; (1 \le m \le k)\)を定める。\(m = 1\)の場合のみ閉区間、それ以外の場合は半開区間とする:

\[ \hat{Q}_X[m] = \begin{cases} \Big[ \hat{q}_X[0], \; \hat{q}_X[1] \Big] & (m = 1) \\[1em] \Big( \hat{q}_X[m - 1], \; \hat{q}_X[m] \Big] & (2 \le m \le k) \\ \end{cases} \]

さらに、これらの区間を用いてカテゴリ化データ\(\mathbf{x'} = (x'_1, \cdots, x'_n)\)を次のように定める:

\[ x'_i = \begin{cases} m & (x_i \in \hat{Q}_X[m]) \\[1em] \mathtt{NA} & (x_i = \mathtt{NA}) \end{cases} \]

同様の方法で\(\mathbf{y'} = (y'_1, \cdots, y'_n)\)についても求める。

Step 2: 集計

本ステップでは、カテゴリ化データの組\((x'_i, y'_i)\)を走査し、値の組み合わせごとに出現数を集計する。

いま\(x'_i\)\(s\)個、\(y'_i\)\(t\)個の異なる値をとるとする。このときデータに欠損値が含まれれば、それも値のひとつとして数える。データに一度も出現しない値は除外して考える。

記法の簡便のため\(x'_i \in \{1, \cdots, s\}, y'_i \in \{1, \cdots, t\}\)として表記すると、求めるべき集計値は次のように表される:

\[ \begin{aligned} n_{ml} &= \sum_{i=1}^n \mathbf{1}\{x'_i = m , \, y'_i = l \}\\ n_{m \cdot} &= \sum_{i=1}^n \mathbf{1}\{x'_i = m \}\\ n_{\cdot l} &= \sum_{i=1}^n \mathbf{1}\{y'_i = l \} \end{aligned} \]

ここで\(1 \le m \le s, \; 1 \le l \le t\)である。これらの集計値は、次のような二次元分割表として表すことができる:

\[ \begin{array}{c|ccc|c} & & Y & & \Sigma \\ \hline & n_{11} & \cdots & n_{1t} & n_{1\cdot} \\ X & \vdots & & \vdots & \vdots \\ & n_{s1} & \cdots & n_{st} & n_{s\cdot} \\ \hline \Sigma & n_{\cdot 1} & \cdots & n_{\cdot t} & n \end{array} \]

Step 3: 推定値の算出

本ステップでは、集計値を用いて一般化相関尺度の推定値を算出する。

カイ二乗情報相関の場合、カテゴリ化データのカイ二乗相互情報量に基づく値

\[ \psi' = I_{\chi^2}(X';Y') + 1 \]

を考え、この推定値を以下のように算出する:

\[ \hat\psi' = \sum_{m=1}^s \sum_{l=1}^t \frac{n^2_{ml}}{n_{m \cdot}n_{\cdot l}} \]

これを用いて、カイ二乗情報相関\(\rchi\)の推定値を以下で算出する:

\[ \hat{r}_{\chi^2} = \begin{cases} \displaystyle \sqrt{\frac{1-1/\hat\psi'}{\sqrt{1-1/s}\sqrt{1-1/t}}} & (s > 1) \land (t > 1) \\[1em] 0 & (s = 1 < t) \lor (t = 1 < s) \\[1em] 1 & (s = t = 1) \end{cases} \]

\(s = t = 1\)の場合は\(\mathbf{x'}, \mathbf{y'}\)ともに単一の値をとり、観測データの範囲においては定数に相当する。定数同士の組について理論上\(r_{\chi^2}\)は未定義であり、ここでは便宜上\(1\)と定めた。将来的には欠損値を返すなど、異なる取り扱いとする可能性がある。

4 参考文献

Csiszár, I. 1967. 「Information-Type Measures of Difference of Probability Distributions and Indirect Observations. Studia Scientiarum Mathematicarum Hungarica 2 (3-4): 299–318.
Lancaster, H. O. 1963. 「Correlation and Complete Dependence of Random Variables. The Annals of Mathematical Statistics 34 (4): 1315–21. https://doi.org/10.1214/aoms/1177703867.
Polyanskiy, Yury, と Yihong Wu. 2025. Information Theory: From Coding to Learning. Cambridge University Press. https://doi.org/10.1017/9781108966351.
Rényi, A. 1959. 「On Measures of Dependence」. Acta Mathematica Academiae Scientiarum Hungaricae 10 (3-4): 441–51. https://doi.org/10.1007/BF02024507.