Yang kudapat dari SKS Time series forecasting

Wahyu Ikbal

Wahyu Ikbal

@wahyudesu

Sistem kebut semalam kayaknya sudah jadi kebiasaan ya dilakukan di Indonesia, mahasiswa sering terpaksa buat ngejer sesuatu secara cepat, buat dpet hasil instan🗿.

And its exactly what im doing

And Ini series yang iseng kubuat untuk ngejar deadline lomba🗿 (Jangan ditiru di rumah💀). Karena catatan numpuk di second brain, ane ingin berbagi cerita sekaligus berbagi ilmu, speedrun ini hasil begadang berhari hari. Untuk full exercise Time series akan dirilis via youtube, stay tune aja...

Time series.png

Basic forecasting itu salah satunya adalah Time series, buat yang belum tahu apa itu Time series, simplenya adalah...

Time series is a series of data points indexed (or listed or graphed) in time order.

Time series adalah serangkaian data yang dikumpulkan dan dicatat dalam interval waktu yang teratur

Model yang dikembangkan nantinya harus dapat menangkap atau menggambarkan deret waktu yang diamati. Setelah itu kita perlu memahami pola pergerakan dalam Time Series, 4 diantaranya sebagai berikut

  • Trend: Tendensi rata-rata dari data untuk bergerak ke atas atau ke bawah dari waktu ke waktu.
  • Seasonal: Pola berulang yang terjadi dalam data dari waktu ke waktu.
  • Cyclical/Irregular: Pola berulang yang terjadi dalam data dari waktu ke waktu, tetapi tidak memiliki periode yang tetap.
  • Noice/Random: Variasi dalam data yang tidak dapat dijelaskan oleh trend, seasonality, atau cyclicity.

image.png

Di dalam data time series kalian akan. Dalam aplikasi forecasting, observasinya biasa direkam dengan frekuensi reguler, seperti harian atau bulanan.

Linear regression with Time Series

Hal yang pertama ane pelajari adalah regresi linier, disini menggunakan algoritma linear regression untuk membangun model peramalan. Linear regression digunakan secara luas dalam praktik dan beradaptasi secara alami untuk  yang kompleks sekalipun

Linear regression dengan time series adalah metode forecasting yang sederhana dan efektif. Namun, penting untuk diperhatikan bahwa metode ini tidak dapat menangkap semua kompleksitas data time series. Jika data Anda sangat kompleks, Anda mungkin perlu menggunakan metode peramalan yang lebih advance.

Dari algoritma ini kita akan memahami cara menghitung target berdasarkan:

The linear regression algorithm learns how to make a weighted sum from its input features. For two features, we would have:

target = weight_1 * feature_1 + weight_2 * feature_2 + bias

import pandas as pd
 
df = pd.read_csv(
    "book_sales.csv",
    index_col='Date',
    parse_dates=['Date']
 
df.head()
df['Time'] = df['Hardcover'].shift(1)
df.head()
 
from sklearn.linear_model import LinearRegression
# Training data
X = df.loc[:, ['Time']]  # features
y = df.loc[:, 'NumVehicles']  # target
# Train the model
model = LinearRegression()
model.fit(X, y)
 
# Store the fitted values as a time series with the same time index as the training data
y_pred = pd.Series(model.predict(X), index=X.index)
from sklearn.linear_model import LinearRegression
 
X = df.loc[:, ['Lag_1']]
X.dropna(inplace=True)  # drop missing values in the feature set
y = df.loc[:, 'NumVehicles']  # create the target
y, X = y.align(X, join='inner')  # drop corresponding values in target
 
model = LinearRegression()
model.fit(X, y)
 
y_pred = pd.Series(model.predict(X), index=X.index)

Komponen tren dari suatu deret waktu (time series) adalah perubahan yang terus-menerus dan jangka panjang pada rata-rata deret tersebut. Tren adalah bagian yang bergerak paling lambat dari suatu deret, bagian yang mewakili skala waktu terbesar yang penting. Tren deret waktu itu kayak arah yang diambil oleh datanya dalam jangka panjang. Tren ini bisa naik, turun, atau tetap. Tren yang naik berarti datanya semakin besar dari waktu ke waktu. Tren yang turun berarti datanya semakin kecil dari waktu ke waktu. Tren yang tetap berarti datanya tidak berubah dari waktu ke waktu.

Dalam deret waktu penjualan produk, tren yang naik bisa disebabkan oleh beberapa hal. Misalnya, karena produknya bagus dan banyak orang yang suka. Atau karena produknya diiklankan secara gencar sehingga lebih banyak orang yang tahu.

image.png

To see what kind of trend a time series might have, we can use a moving average plot. To compute a moving average of a time series, we compute the average of the values within a sliding window of some defined width. Each point on the graph represents the average of all the values in the series that fall within the window on either side. The idea is to smooth out any short-term fluctuations in the series so that only long-term changes remain.

Time series project: Rainfall Prediction Model

Dengan algoritma yang kita pakai.

Difference between Univariate and Multivariate Time Series Models

Sama halnya dengan regresi, analisis time series juga memiliki berbagai jenis metode yang bisa digunakan. Pemilihan metode tentu harus disesuaikan dengan data yang dimiliki serta tujuan analisis, karena meskipun sama-sama merupakan data time series, ada keadaan tertentu yang membuat kita bisa menggunakan metode yang berbeda-beda. Model time series yang bisa dijadikan pilihan adalah Autoregressive (AR), Moving Average (MA), ARIMA, dan SARIMA.

There are two types of time series models:

  1. Univariate time series: Time series with a one time-dependent variable and a single independent variable.
  2. Multivariate time series: Time series with one time-dependent variable and more than one independent variable.

Multivariate linear regression (MLR)

Linear regression can be multivariate which has multiple independent variables used as input features and simple linear regression which has only one independent or input feature. Both linear regressions have one dependent variable which can be forecasted or predicted based on the input features. This paper presented the multivariate linear regression because multiple environmental variables or features were used to predict the dependent variable called daily rainfall amount. Linear regression is a supervised machine learning technique used to predict the unknown daily rainfall amount using the known environmental variables. The multivariate linear regression used multiple explanatory or independent variables (X) and single dependent or output variable denoted by Y. Hence, the general equation of the multiple linear regression is given as:

image.png

image.png

The general multivariate linear regression equation of this paper is given as

image.png

The size of the data set collected from the meteorological station for this study was appropriate to use the machine learning algorithms called multivariate linear regression that can estimate the daily amount of rainfall in the region. This algorithm can show how strongly each environmental variable influences the intensity of the daily rainfall.

Measuring performance

The RMSE is a quadratic scoring rule which measures the average magnitude of the error. It’s the square root of the average of squared differences between prediction and actual observation.

RMSE=...

RMSE gives a relatively high weight to large errors. This means the RMSE is most useful when large errors are particularly undesirable. The MAE and the RMSE can be used together to diagnose the variation in the errors in a set of forecasts. The RMSE will always be larger or equal to the MAE; the greater difference between them, the greater the variance in the individual errors in the sample. If the RMSE = MAE, then all the errors are of the same magnitude.

Sumber:

Tambahan