0

我有一个如下所示的数据框,我想在其上计算不同列之间的第一个差异估计量。我找到了这个包,但不确定如何实现它......另外,是否允许使用协变量?我是 python 和统计的新手,所以任何帮助将不胜感激!

我找到的包:https ://bashtage.github.io/linearmodels/doc/panel/models.html#linearmodels.panel.model.FirstDifferenceOLS

如何格式化数据: https ://bashtage.github.io/linearmodels/doc/panel/examples/data-formats.html

我的数据(现在多索引):

       vix                  eff                  bloom 
       time  VIX_close  FEDFUNDS       time       time   
 2017-06-16  10.380000  3.020000 1993-01-01 1993-01-01   
 2017-06-15  10.640000  3.025000 1993-02-01 1993-01-02   

我的尝试:

mod = FirstDifferenceOLS(master.FEDFUNDS, master.Kincaid)
res = mod.fit(cov_type='robust')

结果是:

ValueError: Series can only be used with a 2-level MultiIndex
4

1 回答 1

1

有一个简单的方法可以做到这一点!

1)保持数据不变(也就是不要多索引,不要使用包)

代码:

ARI        Flesch     Kincaid       time    VIX_close  FEDFUNDS  
14.289911  36.843078  13.187598 2004-03-01  17.223000  1.431333   
14.825867  39.550341  13.849544 2004-04-01  16.304333  1.381667 

2)使用pandas通过.diff()函数计算一阶差分:

differs = master.diff()

3)回归差异:

result = sm.ols(formula="Kincaid ~ VIX_close", data=differs).fit()

4) Ta-da——你完成了!

于 2017-06-19T18:30:27.070 回答