SARIMA (Seasonal AutoRegressive Integrated Moving Average) মডেল হলো একটি উন্নত টাইম সিরিজ মডেল যা সাধারণ ARIMA মডেলের সাথে সিজনাল পার্ট যোগ করে। SARIMA মডেল সিজনাল ট্রেন্ড এবং সিজনাল ফ্লাকচুয়েশনসহ টাইম সিরিজের পূর্বাভাস তৈরি করতে ব্যবহৃত হয়। একটি সফল SARIMA মডেল তৈরি করার পর, তার কার্যকারিতা বা মডেলটির যথার্থতা মূল্যায়ন করা অত্যন্ত গুরুত্বপূর্ণ। SARIMA মডেল মূল্যায়নের জন্য কিছু সাধারণ evaluation techniques বা মূল্যায়ন পদ্ধতি রয়েছে, যেগুলি মডেলের পূর্বাভাসের নির্ভুলতা পরীক্ষা করতে সাহায্য করে।
১. AIC (Akaike Information Criterion) এবং BIC (Bayesian Information Criterion)
বর্ণনা:
AIC এবং BIC হল দুটি গুরুত্বপূর্ণ মডেল সিলেকশন ক্রাইটেরিয়া, যা মডেলের সঠিকতা এবং জটিলতার মধ্যে ভারসাম্য বজায় রাখে। এগুলি কমপ্লেক্সিটি (প্যারামিটার সংখ্যা) এবং ফিট (মডেলের ফিটিং ক্ষমতা) এর উপর ভিত্তি করে মডেলের কার্যকারিতা পরিমাপ করে। AIC এবং BIC এর কম মান সাধারণত ভালো মডেল নির্দেশ করে।
- AIC: কম AIC মান থাকা মডেলটি সেরা এবং এটি মডেল ফিটিং এবং জটিলতার মধ্যে একটি ভারসাম্য স্থাপন করে।
- BIC: BIC এর মান AIC এর মতোই, তবে এটি মডেলের জটিলতার জন্য বেশি শাস্তি প্রদান করে। সাধারণত BIC কম থাকলে মডেলটি ভালো।
ফর্মুলা:
AIC:
যেখানে হলো মডেলের প্যারামিটার সংখ্যা এবং হলো মডেলের লগ-লাইকেলিহুড।
BIC:
যেখানে হলো ডেটার স্যাম্পল সাইজ।
উদাহরণ:
from statsmodels.tsa.statespace.sarimax import SARIMAX
from statsmodels.tools.eval_measures import aic, bic
# Fit the SARIMA model
model = SARIMAX(y_train, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
results = model.fit()
# Get AIC and BIC
print(f"AIC: {results.aic}")
print(f"BIC: {results.bic}")
২. RMSE (Root Mean Squared Error)
বর্ণনা:
RMSE হল একটি পরিমাপ যা মডেলের পূর্বাভাসের ত্রুটির মাত্রা পরিমাপ করে। এটি বর্তমান মডেলের পূর্বাভাস এবং আসল মানের মধ্যে গড় ত্রুটি বের করে এবং তার বর্গমূল নেয়। কম RMSE মান একটি ভালো মডেলের সূচক।
ফর্মুলা:
যেখানে:
- হলো আসল মান।
- হলো পূর্বাভাসকৃত মান।
- হলো ডেটা পয়েন্টের সংখ্যা।
উদাহরণ:
import numpy as np
from sklearn.metrics import mean_squared_error
# Calculate RMSE
y_pred = results.predict(start=len(y_train), end=len(y_train)+len(y_test)-1)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"RMSE: {rmse}")
৩. MAE (Mean Absolute Error)
বর্ণনা:
MAE হল পূর্বাভাসের গড় মানের ত্রুটি, যা পূর্বাভাস এবং আসল মানের মধ্যে পার্থক্য নিয়ে গণনা করা হয়। MAE মডেলের কার্যকারিতা পরিমাপ করতে খুবই সাধারণ এবং সরল পদ্ধতি।
ফর্মুলা:
যেখানে:
- হলো আসল মান।
- হলো পূর্বাভাসকৃত মান।
- হলো ডেটা পয়েন্টের সংখ্যা।
উদাহরণ:
# Calculate MAE
mae = np.mean(np.abs(y_test - y_pred))
print(f"MAE: {mae}")
৪. Residual Analysis
বর্ণনা:
Residual analysis হল SARIMA মডেলের একটি গুরুত্বপূর্ণ মূল্যায়ন পদ্ধতি, যেখানে মডেল থেকে প্রাপ্ত অবশিষ্ট ত্রুটি বা রেসিডুয়ালগুলি বিশ্লেষণ করা হয়। রেসিডুয়ালগুলি মডেল ফিটিংয়ের ত্রুটি প্রদর্শন করে, এবং এটি নিশ্চিত করতে সাহায্য করে যে মডেলটি সমস্ত মৌলিক প্যাটার্ন ধরা ফেলেছে।
- স্বাভাবিকতা পরীক্ষা: রেসিডুয়ালগুলি স্বাভাবিকভাবে বিতরণ হওয়া উচিত।
- হোয়াইট নয়েজ পরীক্ষা: রেসিডুয়ালগুলি সময়ের সাথে সম্পর্কিত হওয়া উচিত নয় (অর্থাৎ, তাদের মধ্যে কোনো নির্দিষ্ট প্যাটার্ন থাকা উচিত নয়)।
উদাহরণ:
import matplotlib.pyplot as plt
# Plot residuals
residuals = y_test - y_pred
plt.figure(figsize=(10, 6))
plt.subplot(121)
plt.plot(residuals)
plt.title('Residuals over Time')
plt.subplot(122)
plt.hist(residuals, bins=50)
plt.title('Histogram of Residuals')
plt.show()
৫. Cross-Validation
বর্ণনা:
Cross-validation হল মডেল মূল্যায়নের আরেকটি গুরুত্বপূর্ণ পদ্ধতি, যা ডেটার বিভিন্ন সাবসেট ব্যবহার করে মডেলটি প্রশিক্ষিত এবং মূল্যায়িত হয়। টাইম সিরিজের ক্ষেত্রে TimeSeriesSplit ব্যবহৃত হয়, যেখানে ডেটাকে টাইম ফ্রেম অনুসারে ভাগ করা হয় এবং পূর্বাভাস মডেলটির পারফরম্যান্স পরীক্ষা করা হয়।
পদ্ধতি:
- TimeSeriesSplit: এটি ডেটাকে একটি সিরিজে বিভক্ত করে, যেখানে প্রশিক্ষণ এবং টেস্ট সেট সময়ের সাথে চলে।
উদাহরণ:
from sklearn.model_selection import TimeSeriesSplit
# Cross-validation
tscv = TimeSeriesSplit(n_splits=5)
for train_index, test_index in tscv.split(y_train):
train, test = y_train[train_index], y_train[test_index]
model = SARIMAX(train, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
results = model.fit()
print(results.aic)
সারাংশ
SARIMA মডেল মূল্যায়নের জন্য বিভিন্ন পদ্ধতি ব্যবহার করা হয়, যেমন AIC/BIC, RMSE, MAE, Residual Analysis, এবং Cross-Validation। এই মূল্যায়ন পদ্ধতিগুলোর মাধ্যমে মডেলের কার্যকারিতা পরীক্ষা করা যায় এবং মডেলের সঠিকতা ও নির্ভুলতা নিশ্চিত করা যায়। SARIMA মডেলটি সিজনাল টাইম সিরিজ ডেটার জন্য উপযুক্ত এবং উপরের পদ্ধতিগুলি মডেলের পারফরম্যান্স বিশ্লেষণে সাহায্য করে।
Read more