PythonとNumpyを使ってr-squaredを計算するにはどうすればいいですか? 質問する

PythonとNumpyを使ってr-squaredを計算するにはどうすればいいですか? 質問する

私は Python と Numpy を使用して、任意の次数の最適な多項式を計算しています。x 値、y 値、および適合させたい多項式の次数 (線形、二次など) のリストを渡します。

ここまではうまくいきましたが、r (相関係数) と r-squared (決定係数) も計算したいと思います。結果を Excel のベスト フィット トレンドライン機能と、それが計算する r-squared 値と比較しています。これを使用すると、線形ベスト フィット (次数が 1) の r-squared を正しく計算していることがわかります。ただし、次数が 1 を超える多項式では関数が機能しません。

Excel ではこれが可能です。Numpy を使用して高次多項式の r-squared を計算するにはどうすればよいですか?

私の関数は次のとおりです:

import numpy

# Polynomial Regression
def polyfit(x, y, degree):
    results = {}

    coeffs = numpy.polyfit(x, y, degree)
     # Polynomial Coefficients
    results['polynomial'] = coeffs.tolist()

    correlation = numpy.corrcoef(x, y)[0,1]

     # r
    results['correlation'] = correlation
     # r-squared
    results['determination'] = correlation**2

    return results

ベストアンサー1

非常に遅い返信ですが、誰かがこれに対する準備済みの機能を必要としている場合に備えて:

scipy.stats.linregress

つまり

slope, intercept, r_value, p_value, std_err = scipy.stats.linregress(x, y)

@Adam Marples の回答のように。

おすすめ記事