2016-07-13 4 views
2

で線形モデルをあてはめる次テストデータを私は線形モデルをフィット(およびR^2を取得)してみてくださいScalanlp /ブリーズ

0.0 0.0 
1.0 1.0 
2.0 2.0 
3.0 3.1 

私はscalanlp /そよ風0.12使用して、次のコードを書いた:

import breeze.linalg.{DenseMatrix, DenseVector} 
    import breeze.stats.regression.leastSquares 

    val indep = DenseMatrix((1.0, 0.0), (1.0, 1.0), (1.0, 2.0), (1.0, 3.0)) 
    val dep = DenseVector(0.0, 1.0, 2.0, 3.1) 
    val result = leastSquares(indep, dep) 

    println("intercept=" + result.coefficients.data(0)) 
    println("slope=" + result.coefficients.data(1)) 
    println("r^2=" + result.rSquared) 

出力は次のようになります。

intercept=-0.020000000000000018 
slope=1.03 
r^2=0.0014623322596666252 

切片と傾きが合理的であるが、私はR二乗理解していない、それはCLOSする必要がありますe〜1!

答えて

1

あなたのベクトルは最後に来る必要はありません。したがって、あなたが期待したr^2 = 1-r_e^2

編集:私は上記の1sのベクトルを切り替えるのは正しいと言いましたが。私はまだひどく間違ったr-二乗を得ています。私の坂道と迎撃はあなたのものによく似ています。だから...ソースコードに!

EDIT2:既知の問題。修正されていません。 shrug

関連する問題