gpt4 book ai didi

python - 从 Pandas 回归中获取要绘制的回归线

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:02 25 4
gpt4 key购买 nike

我已经尝试使用 (pandas)pd.ols 和 (statsmodels)sm.ols 来获得回归散点图与回归线,我可以得到散点图,但我可以' 似乎得到参数来绘制回归线。很明显,我在这里进行了一些剪切和粘贴编码:-((以此为指导:http://nbviewer.ipython.org/github/weecology/progbio/blob/master/ipynbs/statistics.ipynb

我的数据在 pandas DataFrame 中,x 列是 merged2[:-1].lastquy 数据列为 merged2[:-1].Units我的代码现在如下:得到回归:

def fit_line2(x, y):
X = sm.add_constant(x, prepend=True) #Add a column of ones to allow the calculation of the intercept
model = sm.OLS(y, X,missing='drop').fit()
"""Return slope, intercept of best fit line."""
X = sm.add_constant(x)
return model
model=fit_line2(merged2[:-1].lastqu,merged2[:-1].Units)
print fit.summary()

^^^^ 看起来不错

intercept, slope = model.params  << I don't think this is quite right
plt.plot(merged2[:-1].lastqu,merged2[:-1].Units, 'bo')
plt.hold(True)

^^^^^ 这样就完成了散点图****下面没有给我一条回归线

x = np.array([min(merged2[:-1].lastqu), max(merged2[:-1].lastqu)])
y = intercept + slope * x
plt.plot(x, y, 'r-')
plt.show()

Dataframe 的一个片段:[:-1] 从数据中删除当前周期,随后将成为投影

Units   lastqu  Uperchg lqperchg    fcast   errpercent  nfcast
date
2000-12-31 7177 NaN NaN NaN NaN NaN NaN
2001-12-31 10694 2195.000000 0.490038 NaN 10658.719019 1.003310 NaN
2002-12-31 11725 2469.000000

编辑:

我发现我可以做到:

fig = plt.figure(figsize=(12,8))
fig = sm.graphics.plot_regress_exog(model, "lastqu", fig=fig)

Statsmodels doc 中所述这似乎得到了我想要的主要东西(以及更多)我仍然想知道我在之前的代码中哪里出错了!

最佳答案

检查数组和变量中的值。

我猜你的 x 只是 nans,因为你使用了 Python 的最小值和最大值。至少我目前打开的 Pandas 版本会发生这种情况。

min 和 max 方法应该可以工作,因为它们知道如何处理 nan 或缺失值

>>> x = pd.Series([np.nan,2], index=['const','slope'])
>>> x
const NaN
slope 2
dtype: float64

>>> min(x)
nan
>>> max(x)
nan

>>> x.min()
2.0
>>> x.max()
2.0

关于python - 从 Pandas 回归中获取要绘制的回归线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com