Zaman Serileri - Time Series

1. Smoothing Methods

# Kütüphaneler ve Veri Seti
import itertools
import warnings
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import statsmodels.api as sm
from sklearn.metrics import mean_absolute_error
from statsmodels.tsa.holtwinters import ExponentialSmoothing, SimpleExpSmoothing
from statsmodels.tsa.seasonal import seasonal_decompose
import statsmodels.tsa.api as smt

warnings.filterwarnings("ignore")

data = sm.datasets.co2.load_pandas()

y = data.data

y.head()
# Veriler haftalık, aylık olması daha işimize yarar
y = y["co2"].resample("MS").mean()
print("doldurma öncesi eksik değerler:", y.isnull().sum().sum())
# Zaman serilerinde eksik değerler ortalama vb. doldurulmaz
# Bir önceki veya sonraki değer ile doldurulabilir
y = y.fillna(y.bfill())
print("doldurma sonrası eksik değerler:", y.isnull().sum().sum())

#Grafiği oluşturmak
y.plot(figsize = (15, 7.5))
plt.show()
doldurma öncesi eksik değerler: 5 doldurma sonrası eksik değerler: 0
Notebook Image
# Zaman kırılımlarından dolayı doğrudan train-test split uygulanmaz
# Böyle bir durumda durağanlık, mevsimsellik, trend gibi kavramlar yok olur

# Eğitim seti oluşturmak
train = y[:"1997-12-01"]
print("eğitim seti uzunluğu:", len(train), " ay")

# Test seti oluşturmak
test = y["1998-01-01":]
print("test seti uzunluğu:", len(test), " ay")
eğitim seti uzunluğu: 478 ay test seti uzunluğu: 48 ay