MySQL で相関係数を求める
単回帰分析
相関係数:
単回帰式:
回帰係数:
標準偏差を求める
SELECT name, ROUND(AVG(x),2) AS "平均(x)", ROUND(AVG(y),2) AS "平均(y)", ROUND(VAR_POP(STD(x),3) AS "母分散(x)", ROUND(VAR_POP(STD(y),3) AS "母分散(y)", ROUND(STD(x),3) AS "標準偏差(x)", ROUND(STD(y),3) AS "標準偏差(y)", ROUND(STD(x)/AVG(x),3) AS "変動系数(x)", ROUND(STD(y)/AVG(y),3) AS "変動系数(y)" FROM table GROUP BY name WITH ROLLUP
相関係数を求める
SELECT name, ROUND(SUM((x-avgX)*(y-avgY))/CNT/(stdX*stdY),3) AS Rxy, #相関係数 ROUND(SUM((x-avgX)*(y-avgY))/(stdX*stdX),3) AS B1, #回帰係数 B1 ROUND(avgY-SUM((x-avgX)*(y-avgY))/(stdX*stdX)*avgX,3) AS B0 #回帰係数 B0 FROM table, (SELECT name, AVG(x) AS avgX, #平均(x) AVG(y) AS avgY, #平均(y) STD(x) AS stdX, #標準偏差(x) STD(y) AS stdY, #標準偏差(y), COUNT(*) AS CNT #件数 FROM table GROUP BY name ) AS DMY USING(name) GROUP BY name
試していませんが。