【发布时间】:2012-11-26 23:54:34
【问题描述】:
我想在股票图表上绘制 Excel 所称的“指数趋势/回归”。当我在 IPython 笔记本中运行下面的代码时,它只是说“内核已经死了,你想重新启动它吗?”。关于如何解决它的任何想法?此外,这只是尝试进行线性回归,我不太确定如何对指数数据进行回归。
import datetime
import matplotlib.pyplot as plt
import statsmodels.api as sm
from pandas.io.data import DataReader
sp500 = DataReader("AGG", "yahoo", start=datetime.datetime(2000, 1, 1)) # returns a DataFrame
sp500["regression"] = sm.OLS(sp500["Adj Close"], sp500.index).fit().fittedvalues()
top = plt.subplot2grid((3,1), (0, 0), rowspan=2)
top.plot(sp500.index, sp500["Adj Close"], 'b-', sp500.index, sp500["regression"], 'r-')
bottom = plt.subplot2grid((3,1), (2,0))
bottom.bar(sp500.index, sp500.Volume)
plt.gcf().set_size_inches(18,8)
【问题讨论】:
-
ipython --pylab存在分段错误 -
到分段错误(另请参见第二个答案):这是由 numpy 1.6.2 中的点函数中的错误引起的,该版本添加了日期时间数组并且仍然存在一些问题。这已在 numpy 1.7.0 的 beta 版本中得到修复。我从中得到的信息是,我们应该小心使用日期时间数组,直到对这个新功能的 numpy 支持失去了它的尖角。
标签: python matplotlib pandas statsmodels