私は、ログログプロットの巨大な配列に最適な線形回帰直線を試しています。私は私のコードが自動的にy切片を設定するだろうと思っただろう私は、このグラフPython - ログプロットでベストフィットラインを翻訳する
を与える
import scipy.stats as stats
x = subhalos['SubhaloVmax']
y = subhalos['SubhaloMass'] * 1e10/0.704 # in units of M_sol h^-1
slope, intercept, r_value, p_value, slope_std_error = stats.linregress(np.log(x), np.log(y))
predict_y = intercept + slope * x
pred_error = y - predict_y
degrees_of_freedom = len(x) - 2
residual_std_error = np.sqrt(np.sum(pred_error**2)/degrees_of_freedom)
idx = np.argsort(x)
plt.plot(x,y,'k.')
plt.plot(x[idx], predict_y[idx], 'b--')
plt.xscale('log')
plt.yscale('log')
plt.xlabel('$V_{max}$ [km s$^{-1}$]')
plt.ylabel('$M_{sub} $ [$M_\odot h^{-1}$]')
plt.title(' $V_{max} - M_{sub}$ relation ')
。しかし、それはそうではないようです。
どのようにすれば正しいインターセプトに回線を変換できますか?
実際、あなたは[対数関数に一次関数を当てはめるべきではありません](http://bactra.org/weblog/491.html)。 – mtzl
それに合わせて、もっと適切なのは何ですか? – DarthLazar
@ MoritzLotzeの発言はあまりにも一般的だと思います。機能的な形を示唆する理論的モデルがあれば、それを使ってください。それが線形である場合、問題はありません。リンクのアドバイスは、理論的なモデルを持たず、モデルがどのような形を取るかを判断するための "探索的なフィッティング"を行っているときに便利です。その場合、フィッティング手順の限界に注意してください。線形フィットがうまくいくように見えても、その傾向は実際に線形であるとは限りません。しかし、それはこのサイトの範囲外です。 [stats.SE]、[physics.SE]、または[scicomp.SE]に関する詳しい情報があります。 –