2013-01-16 14 views
7

मैं अपने डेटा श्रृंखला में एक ट्रेंडलाइन फिट करने के लिए पांडा ओएलएस फ़ंक्शन का उपयोग करना चाहता हूं। क्या कोई जानता है कि ओएलएस में भविष्यवाणियों के रूप में पांडा श्रृंखला से डेटाटाइम इंडेक्स का उपयोग कैसे करें?ओएलएस पांडा के साथ: डेटटाइम इंडेक्स भविष्यवाणी के रूप में

>>> 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 

मैं इस पर एक OLS करने के लिए कारक के रूप में सूचकांक का उपयोग कर चाहते हैं:

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

लेकिन जैसे एक्स है

उदाहरण के लिए, कहते हैं कि मैं एक साधारण समय श्रृंखला है कि चलो डेटाटाइम इंडेक्स की एक सूची, फ़ंक्शन एक त्रुटि देता है। किसी के पास कोई विचार है?

मैं scipy.stats से लिनरेग्रेस का उपयोग कर सकता हूं लेकिन मुझे आश्चर्य है कि पांडों के साथ यह संभव है या नहीं।

धन्यवाद, ग्रेग

उत्तर

5

समस्या यह है कि आप एक Indexols को पारित नहीं हो सकता है।
यह एक 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--------------------------------- 
+0

आपकी मदद के लिए बहुत धन्यवाद! – leroygr

+2

ऐसा प्रतीत होता है कि यह समाधान अब काम नहीं कर सकता है (2 साल बाद)। यहां देखें: http://stackoverflow.com/questions/30425490/linear-regression-from-time-series-pandas/30431930#30431930 संभावित रूप से परिवर्तनों के कारण पांडों ने डेटाटाइम इंडेक्स में किया है? – JohnE

संबंधित मुद्दे