我正在开发一个代码来分析两个变量的关系。我正在使用 DataFrame 将变量保存在两列中,如下所示:
column A = 132.54672, 201.3845717, 323.2654551
column B = 51.54671995, 96.38457166, 131.2654551
我曾尝试使用 statsmodels,但它说我没有足够的样本。
谁能帮帮我?我需要定义系数和截距才能计算其他变量。
y = coefficient * x + intercept
最佳答案
好的,这是一个使用 DataFrame 的解决方案。我正在跳过导入命令并仅显示相关部分。如果您想知道它们是什么,请给我留言。
我正在使用 NumPy 的 polyfit
进行 1 阶线性回归。您可以打印拟合 (fit
) 以获得斜率和截距。 fit[0]
是截距,fit[1]
是斜率(或您所说的系数)
column_A= [132.54672, 201.3845717, 323.2654551]
column_B= [51.54671995, 96.38457166, 131.2654551]
df = pd.DataFrame({'A': column_A, 'B': column_B})
fit = np.poly1d(np.polyfit(df['A'], df['B'], 1))
A_mesh = np.linspace(min(df['A']), max(df['A']), 100)
plt.plot(df['A'], df['B'], 'bx', label='Data', ms=10)
plt.plot(A_mesh, fit(A_mesh), '-b', label='Linear fit')
print (fit)
# 0.4028 x + 4.833
关于python - python 上有两个变量的线性回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53843187/