0
は、私はそうのような行を見つけるためにnumpyのを使用することができます実現:最小二乗フィット2Dライン
import numpy as np
import matplotlib.pyplot as plt
a = np.array([1,2,3,4,6,7])
b = np.array([5,4,3,2,-2,-1])
k,m = np.polyfit(a,b,1)
plt.scatter(a,b)
plt.plot([0,10],[m,10*k+m])
plt.show()
が、私が代わりに生のPythonコードを使用したいと思います。私の数学はあまりにも錆びていますが、コードのいくつかの行でできたら、私は本当に助けに感謝します!あなたのサンプル入力の場合
def linear_fit(x, y):
"""For set of points `(xi, yi)`, return linear polynomial `f(x) = k*x + m` that
minimizes the sum of quadratic errors.
"""
meanx = sum(x)/len(x)
meany = sum(y)/len(y)
k = sum((xi-meanx)*(yi-meany) for xi,yi in zip(x,y))/sum((xi-meanx)**2 for xi in x)
m = meany - k*meanx
return k, m
:
私はあなたの質問を理解しているかわかりません。生のPythonコードとはどういう意味ですか?通常の最小二乗係数推定の式をすばやく見つけることができます。 'numpy' /' scipy'行列代数ルーチンを使わなければ "数行"にうまく収まらないかもしれませんが、実装するのはかなり簡単です。 –
@ juanpa.arrivillaga:numpy行列代数の実装は間違いなく十分です(しかし、私はそれを理解することはできません)! –
私の電話はありますが、[これを確認してください](https://www.google.com/amp/s/thetarzan.wordpress.com/2012/10/27/calculate-ols-regression-manually-in –