見出し画像

SQL分析データ準備と基礎統計#18:相関係数

相関係数自体の計算は以下です。上が単純な2変数の相関をとる場合で、下は群ごとに分割して相関をとる場合です。両変数が同一テーブル上、もしくは結合して同じ論理テーブル上にあることが必要です。

select
corr(変数1, 変数2) as 相関係数
from データベース名.テーブル名
;
select
群,
corr(変数1, 変数2) as 相関係数
from データベース名.テーブル名
group by 1
;

ただし、実際のケースではあまたある説明変数と結果変数との相関をとったり、説明変数同士の相関を確認したりするため、総当たりに近い相関をとるとなると、SQLを書くのが面倒になります。そのため、メタデータテーブルを利用します。メタデータテーブルとして存在しているテーブル情報を参照することにより、列の一覧を取得できます。SQLとしては以下です。
そのまま列の一覧を取得することもできますが、2回取得してクロスジョインすることにより、総当たりの組み合わせを取得しています。一番上部の列加工は、ついでならということでSQLをそのまま作成し、取得結果をSQLとしてコピーペーストすればそのままSQLとして実行できるようにしています。最後のwhere句にて自分自身同士の相関計算を除外していますが、これ以外にも対象外の列があればwhere句にて絞り込めます。例えば顧客番号のような分析単位列や文字型の列は相関をとる必要がないので除外します。また総当たりだと列1と列2、列2と列1の組み合わせ両方を計算しますので、どちらかで良ければcolumnname1>columnname2の条件を追記して絞ってください。

///

#sql #teradata #analytics  

この記事が気に入ったらサポートをしてみませんか?