我有一些股票数据,可以通过下载并制成熊猫系列
methodInfo = ty.GetMethod(methNm, parmType);
对于statsmodels,我想绘制一个显示以下内容的ARIMA模型:
上面的图片来自statsmodels文档here,但是遵循他们的代码会抛出奇怪的错误。
<CircleWrap width={800} height={600}/>
function CircleWrap(props) {
return (
<div style={{border: "1px solid white", margin: "auto", width: "90%", height: "90%"}}>
<h3>SVG Circle</h3>
<div style={{border: "1px solid black", padding: "3px", margin: "auto", width: "90%", height: "90%"}}>
<ResizeCircle width={this.props.width} height={this.props.height}/>
</div>
</div>
);
}
let ResizeCircle = withResizeHandler(Circle);
function Circle(props) {
return (<svg id={this.state.chartId} style={{display: 'block', margin: "auto", width: this.props.width, height: this.props.height}}>
<g transform={transform}>
<circle cx="70" cy="70" r="70" fill="red"/>
</g>
</svg>
);
}
const withResizeHandler = (WrappedComponent) => {
return class extends React.Component {
render () {
return (
<div style={{border: "1px solid red", margin: "auto", width: "100%", height: "100%"}}>
{/* pass down the props from the hoc wrapper */}
<WrappedComponent width={this.state.width} height={this.state.height}/>
</div>
);
}
下面的错误
import quandl as qd
api = '1uRGReHyAEgwYbzkPyG3'
qd.ApiConfig.api_key = api
data = qd.get_table('WIKI/PRICES', qopts={'columns': ['ticker', 'date', 'high', 'low', 'open', 'close']},
ticker=['AMZN'], date={'gte': '2000-01-01', 'lte': '2014-03-10'})
data.reset_index(inplace=True, drop=True)
price = pd.Series(data.iloc[:,2].values,index=pd.to_datetime(data.iloc[:,1]))
我在做什么错了?
在Chad Fulton的建议之后,我尝试A)以预先指定的频率下载数据,B)下载后手动更改原始数据的频率,以及C)将statsmodels更新为0.9并重试以上所有内容。 / p>
A给我一个错误“推断的频率,从传递的日期开始不符合传递的频率D”,而B在数据中产生fig, ax = plt.subplots()
ax = price.loc['2012-01-03':].plot(ax=ax, label='observed')
fig = model_fit.plot_predict('2014-01-03','2015-01-03', dynamic=False, ax=ax, plot_insample=False)
plt.show()
,导致模型本身无法运行,而C改变了B的错误类型。
我认为这是因为没有频率可以应用于数据,所以不知道不知道如何生成未来日期也不能归咎于预测。在那种情况下,是否有人在进行基本预测时,至少对于自动处理缺失数据的非状态空间模型,如何在财务时间序列中利用尽可能多的数据有任何实用建议?
答案 0 :(得分:1)
我的第一个答案可能不是很令人满意,但从长远来看可能会更好,是关于建议您升级到Statsmodels 0.9的建议,该版本已彻底修改了日期/时间处理。那很有可能解决您的问题。
我的第二个答案是,您可以通过确保日期索引具有频率来解决Statsmodels <0.9的问题。看来您的日期可能是每天的日期(如果不是,则必须更改以下内容以使用正确的freq
参数),所以我建议您替换:
price = pd.Series(data.iloc[:,2].values,index=pd.to_datetime(data.iloc[:,1]))
具有:
price = pd.Series(data.iloc[:,2].values, index=pd.DatetimeIndex(data.iloc[:,1], freq='D'))