相関係数を求める

f:id:accs2014:20170825141330p:plain:right:w400

 相関係数は2種類のデータに線形関係、つまりY=aX+bのような関係がみられるかどうかを表す統計量です。ExcelですとCORREL関数があり簡単に求められますがAccessには同じ関数がないのでSQL集合関数で求めてみます。
 例としてこのようなテーブルのXとYの相関係数を求めてみます。


f:id:accs2014:20170825141325p:plain:right:w600

 次のような列を設けます。
 sxyはXとYの偏差積和、sxxはXの偏差平方和、syyはYの偏差平方和、そして相関係数が求める値となります。



sxy: Sum(([x]-(SELECT Avg([x]) FROM テーブル))*([y]-(SELECT Avg([y]) FROM テーブル)))
sxx: Sum(([x]-(SELECT Avg([x]) FROM テーブル))^2)
syy: Sum(([y]-(SELECT Avg([y]) FROM テーブル))^2)
相関係数: [sxy]/Sqr([sxx]*[syy])


f:id:accs2014:20170825141320p:plain:right:w400

 データシートビューです。
 列を4つ設けたのは見やすさのために過ぎません。ちょっと長くなりますが書き下せば1つの列で求められます。