折叠Pandas multiindex或在多索引数据框上运行OLS回归

时间:2012-07-20 19:49:21

标签: python hierarchical-data regression pandas multi-index

我使用pivot来重塑我的数据,现在有一列multiindex。我希望结果列是简单OLS回归中的X变量。 Y是另一个具有相同行索引的系列。

当我尝试跑步时

model1 = ols(y = gdp0, x = MIDAS_small)

我得到了

TypeError: can only call with other hierarchical index objects

我可以想象两种解决方案,但无法找出其中任何一种:

  1. 折叠多索引。而不是有形式的列('之前','var1')和('之后','var1'),我会有一堆'beforevar1','aftervar1'等。然后我可以使用ols来制作一张漂亮且易于辨认的桌子。

  2. 有没有办法用多索引运行回归?它似乎部分是为了这类事情设计的,特别是面板回归,但我找不到任何相关的例子或文档。

  3. 好吧,我找到了#1的不雅解决方案: 我可以创建一个新的数据帧,遍历两个列索引,并将新列插入到具有相同名称的新数据帧中,但名称为字符串而不是元组。必须有一个更优雅的单一命令,对吧?

1 个答案:

答案 0 :(得分:1)

您是否厌倦了使用Patsy的dmatricies来准备回归友好的DataFrame?

一个例子就在这里:

http://statsmodels.sourceforge.net/devel/gettingstarted.html

我确定您知道pandas中的.unstack()函数可以删除分层索引,但是使用dmatrices可以产生您要查找的结果。