2012-10-04 76 views
16

我正在研究python中的時間序列。我發現有用和有前途的圖書館是python中的時間序列分析軟件包

  • pandas;
  • statsmodel(ARIMA);
  • 簡單的指數平滑由熊貓提供。

也爲可視化:matplotlib

有誰知道指數平滑庫?

+1

相關預測未來的值:[計算在python指數移動平均(http://stackoverflow.com/questions/488670/calculate-exponential-moving-average-in-python) – jfs

回答

22

熊貓已指數加權的移動力矩起作用

http://pandas.pydata.org/pandas-docs/dev/computation.html?highlight=exponential#exponentially-weighted-moment-functions

順便提及,不應該有在scikits.timeseries包是不是還熊貓任何功能剩餘。

編輯:由於這仍然是一個熱門的問題,現在正在進行拉請求工作,以增加更多的功能齊全的指數平滑statsmodels here

+1

非常感謝你的更新和良好的工作。 – foc

8
發現

不知怎麼的一些問題被合併或刪除,所以我會在這裏發表我的答案。

用Python本地化平滑處理。

''' 
simple exponential smoothing 
go back to last N values 
y_t = a * y_t + a * (1-a)^1 * y_t-1 + a * (1-a)^2 * y_t-2 + ... + a*(1-a)^n * y_t-n 
''' 
from random import random,randint 

def gen_weights(a,N): 
    ws = list() 
    for i in range(N): 
     w = a * ((1-a)**i) 
     ws.append(w) 
    return ws 

def weighted(data,ws): 
    wt = list() 
    for i,x in enumerate(data): 
     wt.append(x*ws[i]) 
    return wt 

N = 10 
a = 0.5 
ws = gen_weights(a,N) 
data = [randint(0,100) for r in xrange(N)] 
weighted_data = weighted(data,ws) 
print 'data: ',data 
print 'weights: ',ws 
print 'weighted data: ',weighted_data 
print 'weighted avg: ',sum(weighted_data)