CORR_*

CORR_*ファンクションを次に示します。

  • CORR_S

  • CORR_K

構文

correlation::=

目的

CORRファンクション(「CORR」を参照)は、ピアソンの相関係数を計算し、入力として数式を必要とします。CORR_*ファンクションは、ノンパラメトリックまたは順位相関をサポートします。これらのファンクションを使用すると、式間の相関を順序尺度化して求めることができます(値の順序付けが可能な場合)。相関係数は-1から1の範囲の値となります。1は完全な正相関、-1は完全な逆相関(一方の変数が減少すると他方の変数が増加する)、および0(ゼロ)に近い値は無相関を表します。

これらのファンクションは、引数として、任意の数値データ型、または暗黙的に数値データ型に変換可能な数値以外のデータ型を取ります。Oracle Databaseは、数値の優先順位が最も高い引数を判断し、残りの引数をそのデータ型に暗黙的に変換して、計算を実行してNUMBERを戻します。

関連項目:

expr1およびexpr2は、分析対象の2つの変数です。3つ目の引数はVARCHAR2型の戻り値です。3つ目の引数を指定しない場合、デフォルトでCOEFFICIENTが戻り値になります。戻り値の意味を次の表に示します。

表7-2 CORR_*の戻り値

戻り値 意味

COEFFICIENT

相関の係数

ONE_SIDED_SIG

相関の正の片側有意

ONE_SIDED_SIG_POS

ONE_SIDED_SIGに同じ

ONE_SIDED_SIG_NEG

相関の負の片側有意

TWO_SIDED_SIG

相関の両側有意

CORR_S

CORR_Sは、スピアマンの順位相関係数(ロー)を計算します。入力式は、観測値の組(xi, yi)の集合である必要があります。このファンクションは、最初に各値を順位に置き換えます。各xiの値は、標本内の他のすべてのxi中での順位に置き換えられ、各yiの値は、他のすべてのyi中での順位に置き換えられます。したがって、各xiおよび各yiは1からnの値となります。ここでnは、値の組の合計数です。同順位の場合は、値がわずかに異なっていた場合に付けられる順位の平均が割り当てられます。その後このファンクションは、順位の線形相関係数を計算します。

CORR_Sの例

次の例では、スピアマンの順位相関係数(ロー)を使用して、salarycommission_pctsalaryemployee_idの2つの異なる比較ごとに相関係数を導出します。

SELECT COUNT(*) count,
       CORR_S(salary, commission_pct) commission,
       CORR_S(salary, employee_id) empid
  FROM employees;
 
     COUNT COMMISSION      EMPID
---------- ---------- ----------
       107 .735837022 -.04473016

CORR_K

CORR_Kは、ケンドールの順位相関係数(タウb)を計算します。CORR_Sと同様に、入力式は観測値の組(xi, yi)の集合です。係数を計算するために、このファンクションは一致した組と一致しない組の数をカウントします。xとyの値がいずれも大きい観測値の組は一致しています。xの値が大きくyの値が小さい観測値の組は一致していません。

タウbでの有意性は、タウbによって示される相関が偶然の結果である確率です(0から1の値)。この値が小さい場合、タウbが正の値であれば有意な相関が存在します(タウbが負の値の場合は逆相関)。

CORR_Kの例

次の例では、ケンドールの順位相関係数(タウb)を使用して、従業員の給与と歩合の割合(パーセント)間に相関があるかどうかを判断します。

SELECT CORR_K(salary, commission_pct, 'COEFFICIENT') coefficient,
       CORR_K(salary, commission_pct, 'TWO_SIDED_SIG') two_sided_p_value
  FROM employees;

COEFFICIENT TWO_SIDED_P_VALUE
----------- -----------------
 .603079768        3.4702E-07