Pandas PanelOLS,OLS预测

时间:2013-04-30 23:54:46

标签: python pandas

我已经构建了一个面板,p来自数据框,dfi就像这样

p=dfi.to_panel()

和p看起来像

In [1334]: p
Out[1334]:
<class 'pandas.core.panel.Panel'>
Dimensions: 3 (items) x 80 (major_axis) x 20 (minor_axis)
Items axis: bid to px
Major_axis axis: 2013-01-02 05:00:00 to 2013-04-29 04:00:00
Minor_axis axis: 02005NAB6 to 893647AP2

我建造了一个这样的模型(模型看起来很合理)

m=pd.ols(y=p['bid'],x={'px':p['px'],'qty':p['qty']},entity_effects=True, intercept=False)

鉴于新数据如何进行预测?

我甚至无法得到这样的东西。

m.predict(x=dfi) and m.predict(x=dfi.dropna()) both give NaN for all rows.

为了更有帮助,我从pandas / stats / tests / test_ols.py中获取了这个

y = tm.makeTimeDataFrame()
x = Panel({'x1': tm.makeTimeDataFrame(),
           'x2': tm.makeTimeDataFrame()})

result = ols(y=y, x=x)

pred=result.predict(x=x)

当我尝试这个预测时,我得到了

ValueError                                Traceback (most recent call last)
...Omitted...

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/panel.pyc in reindex(self, major, minor, method, major_axis, minor_axis, copy, **kwargs)
    815 
    816     def _reindex_multi(self, items, major, minor):
--> 817         a0, a1, a2 = len(items), len(major), len(minor)
    818 
    819         values = self.values

ValueError: Must specify at least one axis

1 个答案:

答案 0 :(得分:0)

我不确定为什么predict方法不起作用,但怀疑它是一个方向问题。麻烦的是手工制作预测并不容易,因为你必须自己添加固定效果列。

你可以添加一个GitHub问题,可能是一个独立的问题再现(假数据,那很好),这样有人可以更多地看一下它?我现在无法认真看待这件事。