簡體   English   中英

Python - 在日志圖中翻譯最佳擬合線

[英]Python - Translating best fit line in log plot

我正在為loglog圖中的大型數組嘗試最佳擬合線性回歸線。

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 ')

給我這張圖

在此輸入圖像描述

我以為我的代碼會自動設置y攔截。 但事實似乎並非如此。

如何將線轉換為正確的截距?

您正在計算log(x)log(y)的回歸,因此您的預測應該實際計算為

predict_logy = intercept + slope * logx

然后,您是否會將殘差計算為log(y) - predict_logyy - exp(predict_logy)或其他內容取決於您的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM