RDBMSで相関係数を算出してデータ間の関係性を確認
How to figure out correlation coefficient in RDBMS.
相関係数とは、二つの変量の関係を表す係数です。
直線的な関係(比例関係)の強さを、1 から-1 の間の数で表し、
相関係数の絶対値が 1 に近いほど、相関関係が強いと考えられます。
"1"に近いほど「正の相関関係(一方が増えればもう一方も増える)」が強い。
"-1"に近いほど「負の相関関係(一方が増えればもう一方は減る)」が強い。
PostgreSQLの場合
In case of PostgreSQL
rails_app=# select corr(ad,price) from t1;
corr
-------------------
0.848628572784027
(1 row)
rails_app=# select * from t1;
ad | price
----+-------
10 | 11
20 | 30
30 | 20
40 | 30
50 | 50
(5 rows)
MySQLの場合
In case of MySQL
[confirm]> select (( SUM( ad * price ) - SUM( ad ) * SUM( price ) / COUNT( ad ) ) / COUNT( price )) / (STDDEV_POP(ad) * STDDEV_POP(price)) as corr from t1;
+--------------------+
| corr |
+--------------------+
| 0.8486285727840269 |
+--------------------+
1 row in set (0.00 sec)
[confirm]> select * from t1;
+------+-------+
| ad | price |
+------+-------+
| 10 | 11 |
| 20 | 30 |
| 30 | 20 |
| 40 | 30 |
| 50 | 50 |
+------+-------+
5 rows in set (0.01 sec)
Spread Sheetの場合
例:広告宣伝費と売り上げの相関性を確認した場合