説明変数xと従属変数yに対して、線形回帰を最小二乗法を用いて行うことを考えています。
Pythonには、
・np.polyfit()
・scipy.optimize.curve_fit()
・scipy.optimize.leastsq()
・statsmodels.regression.linear_models.OLS()
など複数の方法があることがわかりました。
そして
・np.polyfit()は多項式近似にしか使えない。
・scipy.optimize.curve_fit()は非線形な関数など、幅広く使えるが、polyfit()に比べると計算スピードが遅い。
・scipy.optimize.leastsq()は使い方が少し独特で、使いにくい。
・statsmodels.regression.linear_models.OLS()は線形回帰につかえ、決定係数やその他統計量もまとめて計算される。
といったところまではわかりました。
そして、多項式近似なら、polyfit()、複雑な関数の近似ならcurve_fit()を使うば良いのかと思ったのですが、pandasなどでデータの量の多い回帰を行う場合に、sm.OLS()が割とよく使われているのを目にしました。
そこで、質問です。
polyfit()とsm.OLS()はどのように使い分けるのが一般的なのでしょうか。
よろしくお願いします。
あなたの回答
tips
プレビュー