首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python中的时间序列分析包

python中的时间序列分析包
EN

Stack Overflow用户
提问于 2012-10-04 19:38:28
回答 3查看 26.9K关注 0票数 17

我在python中处理时间序列。我发现的有用和有前途的库是

  • pandas;
  • statsmodel (用于ARIMA);
  • 简单指数平滑由pandas提供。

也可用于可视化: matplotlib

有没有人知道指数平滑库?

EN

回答 3

Stack Overflow用户

发布于 2012-10-04 21:04:02

Pandas具有指数加权的移动矩函数

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

顺便说一句,除了pandas之外,scikits.timeseries包中不应该残留任何功能。

编辑:由于这仍然是一个流行的问题,现在有一个正在进行的拉取请求,要求向statsmodels here添加更多功能齐全的指数平滑

票数 24
EN

Stack Overflow用户

发布于 2012-10-25 22:05:15

不知何故,一些问题被合并或删除了,所以我会在这里发布我的答案。

Python原生的Exp平滑。

代码语言:javascript
复制
'''
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)
票数 8
EN

Stack Overflow用户

发布于 2014-02-13 18:29:15

您可以使用Pandas指数加权移动平均http://pandas.pydata.org/pandas-docs/stable/generated/pandas.stats.moments.ewma.html预测未来值,如下所示

代码语言:javascript
复制
from pandas.stats.moments import ewma
import numpy as np

pred_period = 12

def predict(x,span,periods = pred_period):     
    x_predict = np.zeros((span+periods,))
    x_predict[:span] = x[-span:]
    pred =  ewma(x_predict,span)[span:]

    return pred
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12726432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档