EQLでの線形回帰

このトピックで説明する構文を使用して、EQLで線形回帰を生成できます。

次に示すデータセットを使用します。
ID X Y
1 60 3.1
2 61 3.6
3 62 3.8
4 63 4
5 65 4.1

次に示す単純な公式は、

y = A + Bx

EQLでは、次のように表すことができます。
RETURN Regression AS SELECT
    COUNT(ID) AS N,
    SUM(X) AS sumX,
    SUM(Y) AS sumY,
    SUM(X*Y) AS sumXY,
    SUM(X*X) AS sumX2,
    ((N*sumXY)-(sumX*sumY)) /
     ((N*sumX2)-(sumX*sumX)) AS B,
    (sumY-(B*sumX))/N AS A
GROUP

結果は次のとおりです。

N sumX sumY sumXY sumX2 B A
5 311.000000 18.600000 1159.700000 19359.000000 0.187838 -7.963514

回帰の結果の使用

y = A + Bxの場合:
DEFINE Regression AS SELECT
    COUNT(ID) AS N,
    SUM(X) AS sumX,
    SUM(Y) AS sumY,
    SUM(X*Y) AS sumXY,
    SUM(X*X) AS sumX2,
    ((N*sumXY)-(sumX*sumY)) /
    ((N*sumX2)-(sumX*sumX)) AS B,
    (sumY-(B*sumX))/N AS A
GROUP

RETURN Results AS SELECT
    Y AS Y,  X AS X,   Regression[].A + Regression[].B * X AS Projection
...    

前述の例の最後のステップとして、結果のPAGEまたはGROUPが必要になります。膨大な数の結果が生成されることがあるからです。