如何在Pandas中使用滚动OLS模型界面?

2024-06-26 01:53:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想校准一个MovingOLS,但一直收到错误消息

IndexError: index -1 is out of bounds for axis 0 with size 0

我用来训练动画片的数据帧如下:

^{pr2}$

带代码

model = pandas.stats.ols.MovingOLS(y = df['y'], x=df[['x1', 'x2']], window_type='rolling', window=2, min_periods=2)

这个模型非常简单,因为我只想让自己熟悉MovingOLSAPI,如果我正确理解Moving和{}部分,我希望得到2个OLS模型。 我想知道它是否有好的资料,因为我找不到关于滚动OLS/MovingOLSAPI足够详细的文档/教程。在

顺便说一下,这个库的版本是0.11.0。在

谢谢你!在


Tags: of模型消息dfindexis错误out
1条回答
网友
1楼 · 发布于 2024-06-26 01:53:41

我认为这是由K(参数)>;N(观察值)引起的。在大熊猫身上动弹增加了一个拦截。您试图用2个观察值的滚动窗口估计3个参数。在

如果您添加一些行并使滚动窗口变大,它应该可以工作。例如,窗口=4:

df=pd.DataFrame({'y': [1,2,3,4,5,6],
                 'x1' : [3,4,6,7,10,12],
                 'x2' : [2,7,4,9,3,15]})
print df

   x1  x2  y
0   3   2  1
1   4   7  2
2   6   4  3
3   7   9  4
4  10   3  5
5  12  15  6

print pd.stats.ols.MovingOLS(y = df['y'], x=df[['x1', 'x2']], 
                             window_type='rolling', 
                             window=4, min_periods=4)

            -Summary of Regression Analysis            -

Formula: Y ~ <x1> + <x2> + <intercept>

Number of Observations:         4
Number of Degrees of Freedom:   3

R-squared:         0.9777
Adj R-squared:     0.9331

Rmse:              0.3339

F-stat (2, 1):    21.9240, p-value:     0.1493

Degrees of Freedom: model 2, resid 1

           -Summary of Estimated Coefficients            
      Variable       Coef    Std Err     t-stat    p-value    CI 2.5%   CI 97.5%
                                        
            x1     0.4319     0.0850       5.08     0.1237     0.2653     0.5984
            x2     0.0262     0.0425       0.62     0.6483    -0.0572     0.1096
     intercept     0.5180     0.6415       0.81     0.5675    -0.7392     1.7753
                -End of Summary                -

当我设置window=2时,也会出现索引越界错误。在

相关问题 更多 >