python - montenegro - series de tiempo con r pdf
Paquete para análisis de series de tiempo en python (4)
De alguna manera, algunas preguntas se fusionaron o eliminaron, así que publicaré mi respuesta aquí.
Exp alisado en Python de forma nativa.
''''''
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)
Estoy trabajando en series de tiempo en python. Las bibliotecas que encontré útiles y prometedoras son
- pandas
- statsmodel (para ARIMA);
- El alisamiento exponencial simple es proporcionado por pandas.
También para visualización: matplotlib
¿Alguien sabe una biblioteca para el alisamiento exponencial?
Pandas tiene funciones de momento móvil ponderadas exponencialmente
Por cierto, no debería haber ninguna funcionalidad sobrante en el paquete scikits.timeseries que no esté también en pandas.
Edición : dado que esta sigue siendo una pregunta popular, ahora hay un pedido de trabajo en curso para agregar un suavizado exponencial más completo a los modelos de estadísticas here
Para el triple encontré en la web este http://adorio-research.org/wordpress/?p=1230
puede predecir los valores futuros mediante Pandas Promedio móvil ponderado exponencialmente http://pandas.pydata.org/pandas-docs/stable/generated/pandas.stats.moments.ewma.html as
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