Ben*_*ann 3 python matplotlib pandas statsmodels
我想在股票图表上绘制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)
Run Code Online (Sandbox Code Playgroud)
我再次看了一遍,发现我以前的答案很不合适,因为它没有包括拦截.我已经更新了我的答案.
segfault来自于尝试将Datetime索引作为外生变量.而是尝试:
import datetime
import matplotlib.pyplot as plt
import statsmodels.api as sm
import pandas
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"],
sm.add_constant(range(len(sp500.index)),
prepend=True)).fit().fittedvalues
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要将statsmodels的fittingvalues作为函数调用.如果您的数据点均为空间,则此模型将提供与使用实际索引相同的结果.
对于你的第二个问题,大熊猫是你想要查看的内置指数加权移动平均线:pandas.ewma 这里.
| 归档时间: |
|
| 查看次数: |
3464 次 |
| 最近记录: |