散点图上的叠加线性回归线(iPython笔记本)

时间:2015-11-14 19:53:23

标签: python matplotlib ipython ipython-notebook

gh_data = ascii.read('http://dept.astro.lsa.umich.edu/~ericbell/data/GHOSTS/M81/ngc3031-    field15.newphoto_radec')
ra = gh_data['col5'][:]
dec = gh_data['col6'][:]
f606 = gh_data['col3'][:] 
f814 = gh_data['col4'][:]
plot(f6062-f8142,f8142, 'bo', alpha=0.15)  
axis([-1,2.5,27,23]) 
xlabel('F606W-F814W')
ylabel('F814W')
title('Field 14')

数据集被导入并组织到不同的列中,我试图在创建的散点图上覆盖最佳拟合线或线性回归,但我无法弄清楚如何。提前谢谢。

1 个答案:

答案 0 :(得分:0)

正如@rayryeng指出的那样,您的代码只是绘制数据,但实际上并没有计算任何回归结果。这是一种方法:

import statsmodels.api as sm
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = pd.DataFrame({"y": range(1,11)+np.random.rand(10), 
                     "x": range(1,11)+np.random.rand(10)})

使用statsmodels OLS方法拟合回归线,并使用params在单个回归量上提取系数:

beta_1 = sm.OLS(data.y, data.x).fit().params

生成散点图并添加回归线:

fig, ax = plt.subplots()
ax.scatter(data.x, data.y)
ax.plot(range(1,11), [i*beta_1 for i in range(1,11)], label = "best fit")
ax.legend(loc="best")