2016-03-22 20 views
1

私は同じデータを使用していますが、Pythonライブラリを使って、決定係数R^2を計算しています。 statsライブラリとsklearnを使用すると、異なる結果が得られます。sklearn r2_scoreとpython stats lineregress関数は、R^2の非常に異なる値を与えます。どうして?

この現象の背景は何ですか?

# Using stats lineregress 
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y) 
print r_value**2 

0.956590054918

# Using sklearn 
from sklearn.metrics import r2_score 
print r2_score(x, y) 

0.603933484937

答えて

2

linregressによって返さr_value相関係数R XYあります。一般に、二乗相関係数は、の係数と同じではありません。R2²です。

決定係数は、モデルがデータにどのくらい適しているかを示します。したがって、r2_scorexが真の値であり、yがモデルによって予測される値であると考えます。

あなたXYが真であるとデータを予測した場合は、は、あなたが望むものです。ただし、両方が測定データの場合は、代わりにが必要です。

correlation coefficientcoefficient of determinationについては、Wikipediaを参照してください。

関連する問題