简体   繁体   English

带有pandas的OLS:日期时间索引作为预测变量

[英]OLS with pandas: datetime index as predictor

I would like to use pandas OLS function to fit a trendline to my data Series. 我想使用pandas OLS函数来为我的数据系列拟合趋势线。 Does anyone knows how to use the datetime index from the pandas Series as predictor in the OLS? 有谁知道如何使用熊猫系列中的日期时间索引作为OLS中的预测器?

For example, let say that I have a simple time series: 例如,假设我有一个简单的时间序列:

>>> ts
2001-12-31    19.828763
2002-12-31    20.112191
2003-12-31    19.509116
2004-12-31    19.913656
2005-12-31    19.701649
2006-12-31    20.022819
2007-12-31    20.103024
2008-12-31    20.132712
2009-12-31    19.850609
2010-12-31    19.290640
2011-12-31    19.936210
2012-12-31    19.664813
Freq: A-DEC

I would like to do an OLS on it using the index as predictor: 我想使用索引作为预测器对其进行OLS:

model = pd.ols(y=ts,x=ts.index,intercept=True)

But as x is a list of datetime index, the function returns an error. 但由于x是日期时间索引的列表,因此该函数返回错误。 Anyone has an idea? 有人有想法吗?

I could use linregress from scipy.stats but I wonder if it is possible with Pandas. 我可以使用来自scipy.stats的linregress,但我想知道它是否可能与Pandas。

Thanks, Greg 谢谢,格雷格

The problem is that you cannot pass an Index to ols . 问题是你无法将Index传递给ols
Change it to a Series : 将其更改为Series

In [153]: ts
Out[153]: 
2011-01-01 00:00:00    19.828763
2011-01-01 01:00:00    20.112191
2011-01-01 02:00:00    19.509116
Freq: H, Name: 1

In [158]: type(ts.index)
Out[158]: pandas.tseries.index.DatetimeIndex


In [154]: df = ts.reset_index()

In [155]: df
Out[155]: 
                index          1
0 2011-01-01 00:00:00  19.828763
1 2011-01-01 01:00:00  20.112191
2 2011-01-01 02:00:00  19.509116

In [160]: type(df['index'])
Out[160]: pandas.core.series.Series


In [156]: model = pd.ols(y=df[1], x=df['index'], intercept=True)

In [163]: model
Out[163]: 

-------------------------Summary of Regression Analysis-------------------------

Formula: Y ~ <x> + <intercept>

Number of Observations:         3
Number of Degrees of Freedom:   1

R-squared:        -0.0002
Adj R-squared:    -0.0002

Rmse:              0.3017

F-stat (1, 2):       -inf, p-value:     1.0000

Degrees of Freedom: model 0, resid 2

-----------------------Summary of Estimated Coefficients------------------------
      Variable       Coef    Std Err     t-stat    p-value    CI 2.5%   CI 97.5%
--------------------------------------------------------------------------------
             x     0.0000     0.0000       0.00     0.9998    -0.0000     0.0000
     intercept     0.0000 76683.4934       0.00     1.0000 -150299.6471 150299.6471
---------------------------------End of Summary---------------------------------

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM