javaによる単回帰分析のコード例

javaによる単回帰分析の簡単なコードをメモ代わりに残しておきます。

単回帰なので目的変数と説明変数の共分散を説明変数の分散で割り算すればいいだけであり、わざわざライブラリを使用するほどではないですが、せっかくなのでApache Commonsの Commons-Math3.xライブラリを使用してみます。
このライブラリの概要については以下のスライドで簡単にまとめられてます!

speakerdeck.com

コード例は以下のとおりです。

//simpleRegressionクラスをインポート
import org.apache.commons.math3.stat.regression.SimpleRegression;

public class Regression {

    public static void main(String[] args) {

        // インスタンスの作成(引数のtrueは定数項ありを意味する)
        SimpleRegression simpleRegression = new SimpleRegression(true);

        // addDataメソッドを利用してsimpleRegressionにデータを渡す
        simpleRegression.addData(new double[][] {
                {1, 2},{2, 3},{3, 4},{4, 5},{5, 6}
        });

        // 推定したパラメタを表示する
        System.out.println("** 出力結果 **");
        System.out.println("定数項 : " + simpleRegression.getIntercept());
        System.out.println("係数推定値 : " + simpleRegression.getSlope());
    }
}

出力結果は以下のとおりです。

** 出力結果 **
定数項 : 1.7
係数推定値 : 1.1



(補足)
simpleRegressionクラスには決定係数を取得するメソッドなど様々なメソッドがあります。メソッドの一覧については以下のリンク先をご覧ください!
SimpleRegression (Apache Commons Math 3.3 API)