Giacomini–White পরীক্ষা: শর্তাধীন পূর্বাভাস নির্ভুলতা
Giacomini–White পরীক্ষা কীভাবে পরিচিত অবস্থায় পূর্বাভাসের নির্ভুলতা বদলায় তা যাচাই করে, পরীক্ষার উপকরণ কীভাবে বাছতে হয় এবং ফল কী বোঝাতে পারে তা জানুন
এই গাইডেগড় নির্ভুলতা ও শর্তাধীন নির্ভুলতা আলাদা প্রশ্নের উত্তর দেয়
সংক্ষিপ্ত সারাংশ
Giacomini–White (GW) কাঠামো জিজ্ঞেস করে, দুটি পূর্বাভাসের আপেক্ষিক loss কি পূর্বাভাস তৈরির সময় জানা তথ্যের সঙ্গে সম্পর্কিত? এটি গড় স্কোরে ঢাকা পড়া পার্থক্য দেখাতে পারে; তবে ফল নির্ভর করে পূর্বনির্ধারিত পূর্বাভাস-পদ্ধতি, মূল্যায়ন-উইন্ডো, loss function এবং শর্ত হিসেবে বাছা চলকের ওপর
গড় নির্ভুলতা ও শর্তাধীন নির্ভুলতা আলাদা প্রশ্নের উত্তর দেয়
ধরা যাক, পরীক্ষার নমুনায় A-এর গড় loss, B-এর চেয়ে কম। এই গড়ে উপযোগী একটি ধরন আড়াল হতে পারে: শান্ত বাজারে A ভালো করতে পারে, কিন্তু volatility বেশি হলে B এগিয়ে যেতে পারে। সামগ্রিকভাবে কোন পূর্বাভাস ভালো ছিল জানতে চাইলে unconditioned comparison উপযুক্ত। পূর্বাভাসের সময় জানা তথ্য দিয়ে কোন পূর্বাভাস ভালো করবে তা বোঝা যায় কি না জানতে চাইলে conditional predictive ability প্রাসঙ্গিক।
Giacomini ও White নির্দিষ্ট loss function ও information set-এর অধীনে পূর্বাভাস-পদ্ধতির তুলনা হিসেবে বিষয়টি গঠন করেন। কাজের উপযোগী loss নির্ধারণ করা গেলে point, interval, probability বা density forecast-এ কাঠামোটি ব্যবহার করা যায়। প্রতিটি forecast তৈরির estimation procedure-ও তুলনার অংশ। তাই rolling window, fixed training sample বা weighting rule হলো মূল্যায়িত forecasting method-এর অংশ; ফল দেখার পর বদলে ফেলার মতো তুচ্ছ সেটিং নয় (Giacomini and White, 2006)।
শর্তাধীন পরীক্ষা structural-break পরীক্ষার সঙ্গে সম্পর্কিত, তবে একই নয়। প্রথমটি জিজ্ঞেস করে আপেক্ষিক loss বাছা তথ্যের সঙ্গে নিয়মিতভাবে যুক্ত কি না; break test জিজ্ঞেস করে অজানা বা নির্দিষ্ট সময়ে parameter বা সম্পর্ক বদলেছে কি না। Diebold–Mariano নির্দেশিকা গড় loss-এর unconditional তুলনা ব্যাখ্যা করে; conditional প্রশ্নে কোন তথ্যের ওপর শর্ত দেওয়া হচ্ছে তা নির্দিষ্ট করতে হয়।
প্রথমে পূর্বাভাস, ফল এবং তথ্যের সময় মিলিয়ে নিন
ধরা যাক, forecast origin \(t\)-এর পরে লক্ষ্য \(Y_{t+1}\) দেখা যায়। \(\hat y_{A,t+1}\) এবং \(\hat y_{B,t+1}\) একই target, horizon, unit ও information cutoff-এর হতে হবে। কম loss ভালো হলে পার্থক্যটি এভাবে লিখি:
dₜ₊₁ = L(Yₜ₊₁, ŷA,ₜ₊₁) − L(Yₜ₊₁, ŷB,ₜ₊₁)
এই sign convention-এ ধনাত্মক মান মানে A-এর loss বেশি, তাই ওই origin-এ B ভালো; ঋণাত্মক মান A-কে সুবিধা দেয়। প্রতিটি origin-এর জন্য একটি row রাখুন এবং দুই forecast-ই একই realized value-তে score করুন। তখনকার forecast, data vintage ও model version সংরক্ষণ করুন। সংশোধিত input বা পরে আসা তথ্য দিয়ে পুরোনো forecast নতুন করে বানাবেন না।
শর্তাধীন চলকগুলোও forecast origin-এ জানা থাকতে হবে। উদাহরণ: lagged volatility estimate, আগে ঘোষিত event indicator, lagged loss difference, অথবা কেবল অতীত পর্যবেক্ষণ দিয়ে হিসাব করা market-state variable। t-এর পর মাপা চলক দিয়ে t+1-এ কোন forecast ভালো ছিল তা ব্যাখ্যা করতে গেলে ভবিষ্যৎ তথ্যের পক্ষপাত আসবে।
স্কোরকে লক্ষ্য অনুযায়ী বাছুন। Conditional-mean forecast-এর জন্য squared error একটি বিকল্প, কিন্তু volatility, quantile বা density forecast-এর জন্য নিজে থেকেই উপযুক্ত নয়। একটি মডেল variance আর অন্যটি standard deviation পূর্বাভাস দিলে আগে দুটিকে একই পরিমাণের forecast-এ প্রকাশ করুন। পরীক্ষাটি ভিন্ন প্রশ্নের অমিল ঠিক করতে পারে না।
Volatility forecast তুলনা করলে একই realized-variance সংজ্ঞা ও sampling interval দিয়ে দুই forecast score করুন। একটি যদি শুধু intraday price cover করে আর অন্যটি overnight return-ও target করে, loss gap আসলে target-এর পার্থক্য হতে পারে। বাজার বন্ধ থাকার সময়ের price move, sampling frequency, missing observation এবং realized measure কীভাবে সামলাবেন তা স্থির করে দুই ক্ষেত্রেই একইভাবে প্রয়োগ করুন। Realized proxy-তে measurement error থাকলে তা দুই score-কেই প্রভাবিত করে, তাই ব্যাখ্যায় উল্লেখ করুন।
শর্তাধীন null নির্ধারণ করুন এবং test function বাছুন
তুলনা শর্তাধীন করতে ব্যবহৃত তথ্যকে \(\mathcal{G}_t\) ধরা যাক। আদর্শ null হলো
H₀: E[dₜ₊₁ | 𝒢ₜ] = 0
অর্থাৎ নির্দিষ্ট তথ্য জানা থাকলে expected loss difference শূন্য। এক-ধাপের GW পরীক্ষা এই conditional statement-কে আগে থেকে বাছা test function vector \(h_t\)-এর moment-এ রূপ দেয়; এর প্রতিটি মান t সময়ে জানা তথ্য দিয়ে হিসাবযোগ্য:
H₀,ₕ: E[hₜ dₜ₊₁] = 0
\(h_t\)-এ constant থাকতে পারে, যা average loss difference ধরে। অন্য উপাদানে market state, lagged relative loss বা ফল দেখার আগে বাছা nonlinear transform থাকতে পারে। উদাহরণ হিসেবে, \(S_t\) যদি t-তে জানা binary high-volatility indicator হয়, তবে \(h_t=(1,S_t)'\) constant moment-ও পরীক্ষা করে এবং loss difference ওই অবস্থার সঙ্গে যুক্ত কি না তাও পরীক্ষা করে।
সীমিত test-function set শুধু সেই নির্দিষ্ট moment-গুলোই পরীক্ষা করে। Reject করলে test assumption-এর অধীনে অন্তত একটি নির্বাচিত moment শূন্যের সঙ্গে মেলে না—এমন প্রমাণ মেলে; সব সম্ভাব্য অবস্থায় সেরা মডেল চিহ্নিত হয় না, বা প্রতিটি state variable গুরুত্বপূর্ণ প্রমাণিত হয় না। Reject না করলেও conditional performance সমান প্রমাণ হয় না। শুধু constant থাকলে সেটি unconditional moment comparison, সব শর্ত খোঁজার বিস্তৃত অনুসন্ধান নয়।
কোন মডেল জেতে তা দেখার আগে loss, instruments, transformations, sample ও forecast horizon ঠিক করুন। ফল দেখার পর অনেক state indicator, threshold ও lag যোগ করা আরেকটি search problem তৈরি করে। Conditional test নিজে থেকে এই selection ঠিক করে না।
State variable কখন হিসাব হবে সেটিও আগে নির্ধারণ করুন। পুরো sample থেকে volatility-র শীর্ষ ২০% বের করে পুরোনো high-volatility state চিহ্নিত করলে threshold বানাতে ভবিষ্যৎ তথ্য ঢুকে যায়। প্রতি forecast origin পর্যন্ত পাওয়া তথ্য দিয়ে threshold হিসাব করুন, অথবা আগে থেকেই প্রকাশিত নিয়ম নিন। Continuous state হলে unit যাচাই করুন এবং centering বা standardization একইভাবে প্রয়োগ করুন। কাছাকাছি অর্থের অনেক instrument moment-গুলোকে প্রায় duplicate ও covariance matrix-কে অস্থিতিশীল করতে পারে; তাই ব্যাখ্যাযোগ্য ছোট সেট আগে বাছুন।
Wald statistic তৈরি করুন এবং reference distribution ব্যাখ্যা করুন
qটি test function থাকলে \(g_{t+1}=h_t d_{t+1}\) moment vector গঠন করুন। এর sample mean:
ḡ = (1/n) Σₜ gₜ₊₁
এক-ধাপের GW statistic-এর Wald রূপ:
GW = n ḡ′ Ω̂⁻¹ ḡ
এখানে \(\hat\Omega\) moment vector-এর covariance matrix estimate করে। Null hypothesis এবং paper-এর regularity condition-এ statistic-টি q degrees of freedom-সহ asymptotic chi-square reference distribution অনুসরণ করে। Test function-এর সংখ্যা reference distribution এবং power-এ প্রভাব ফেলে। দুর্বল বা redundant instrument বেশি দিলে দরকারি তথ্য না বাড়িয়েই covariance estimate অস্থিতিশীল হতে পারে।
এক-ধাপের সেটাপে null moment vector-এ martingale-difference structure দেয়; সে কারণে মূল test sample second-moment estimate ব্যবহার করতে পারে। অন্য horizon, overlapping outcome বা এই সেটাপ থেকে বিচ্যুতিতে variance estimator-কে সেই implementation-এর assumption ও dependence structure মেলাতে হবে। বেছে নেওয়া পদ্ধতির formulation অনুসরণ করুন; অন্য test-এর HAC bandwidth স্বয়ংক্রিয়ভাবে নকল করবেন না। Newey and West (1987)-এর estimator-সহ সাধারণ HAC covariance method প্রয়োজনীয় সেটাপের tool, GW-এর জন্য সর্বজনীন bandwidth prescription নয়। Covariance estimate ও forecast design যতটা বিশ্বাসযোগ্য, ফলও ততটাই।
\(\hat\Omega\) সংখ্যাগতভাবে স্থিতিশীল কি না দেখুন। কাছাকাছি test function, কম পর্যবেক্ষিত state dummy বা অনেক interaction matrix-কে singular বা অস্থিতিশীল করতে পারে, ফলে সামান্য data change-এ inverse অনেক বদলে যায়। প্রতিটি function কোন অর্থনৈতিক অবস্থা বা forecast-performance পার্থক্য বোঝায় তা ব্যাখ্যা করুন; function সংখ্যা এবং moment variance নথিবদ্ধ করুন। ফল দেখে একই sample-এ অপ্রাসঙ্গিক function বাদ দিয়ে আবার পরীক্ষা করাও selection-এর অংশ।
p-value নির্দিষ্ট moment restriction test assumption ও reference distribution-এর অধীনে কতটা অসামঞ্জস্যপূর্ণ তার প্রমাণ। এটি A বা B সঠিক মডেল হওয়ার সম্ভাবনা নয় এবং trading rule লাভ করবে—তার সম্ভাবনাও নয়। Reject-এর অর্থ স্পষ্ট করতে statistic, degrees of freedom, p-value এবং ঠিক কোন moment পরীক্ষা হয়েছে তা জানান।
<!-- learn:illustration -->

দুই-অবস্থার উদাহরণে গড়ে ঢাকা পার্থক্য দেখা যায়
আটটি hypothetical one-step forecast origin ধরা যাক। \(S_t=0\) শান্ত অবস্থা, \(S_t=1\) উচ্চ-volatility অবস্থা। চারটি শান্ত origin-এ loss difference \(d_{t+1}=L_A-L_B\) যথাক্রমে −2, −2, −2, −2 এবং চারটি high-volatility origin-এ +2, +2, +2, +2। ঋণাত্মক মান A-কে, ধনাত্মক মান B-কে সুবিধা দেয়।
আটটি মানের গড় শূন্য, তাই এই ছোট উদাহরণে unconditional loss difference নেই। কিন্তু শান্ত অবস্থার গড় −2 এবং high-volatility অবস্থায় +2; state বদলালে আপেক্ষিক ranking উল্টে যায়। \(h_t=(1,S_t)'\) নিলে constant moment-এর পাশাপাশি high-volatility moment-ও থাকে, যা এই pattern ধরতে পারে।
এই আটটি মান গণনা বোঝানোর উদাহরণ, নির্ভরযোগ্য inference-এর জন্য যথেষ্ট observation নয়। বাস্তব ডেটায় forecast তৈরির estimation procedure, state আগে থেকে নির্দিষ্ট ছিল কি না, origin-এর সংখ্যা এবং loss-difference moment সময়ের সঙ্গে কীভাবে বদলায়—সব বিবেচনা করতে হবে। শুধু state অনুযায়ী plot দেখলে pattern ভবিষ্যতেও থাকবে, এমন প্রমাণ হয় না।
Estimation window-কে পদ্ধতির অংশ হিসেবে ধরুন
GW-এর মূল asymptotic ফল forecast-estimation uncertainty ধরে রাখে: out-of-sample forecast সংখ্যা বাড়লেও সর্বোচ্চ estimation-window size সসীম থাকে। Rolling window ও fixed training sample এই মূল সেটাপে খাপ খায়। Window size এবং data-dependent window rule-ও forecast method-এর অংশ, তাই আগে ঠিক করে জানাতে হবে।
Forecast model পুনরায় estimate করলে বিষয়টি গুরুত্বপূর্ণ। Parameter estimation উপেক্ষা করা comparison অতীত ডেটা থেকে শেখার পদ্ধতিতে তৈরি uncertainty মিস করতে পারে। নির্দিষ্ট condition-এ GW nested বা nonnested model-এর forecast সামলাতে পারে, কিন্তু প্রতিটি expanding-window implementation বা estimator-এর জন্য নিশ্চয়তা দেয় না। মূল one-step framework finite-window assumption-এ দাঁড়ানো; conventional expanding window এই শর্তের বাইরে। সেটাপ আলাদা হলে প্রকৃত forecast construction-এর জন্য প্রমাণিত ফল ব্যবহার করুন।
Test আপনার জন্য উপযুক্ত window-ও বেছে দেয় না। ছোট window সাম্প্রতিক অবস্থার সঙ্গে মানাতে পারে, কিন্তু observation কমায়; দীর্ঘ বা expanding window estimate স্থিতিশীল করতে পারে, কিন্তু পুরোনো সম্পর্ক ধরে রাখতে পারে। আগে থেকে পরিকল্পিত evaluation-এ বিকল্প তুলনা করুন এবং window selection নথিবদ্ধ করুন। Giacomini and Rossi (2010) অস্থিতিশীল পরিবেশে relative forecast performance-এর সময়পথ পরীক্ষা করার আলাদা পদ্ধতি দেয়; এটি সম্পর্কিত প্রশ্ন, কিন্তু মূল GW conditional statistic নয়।
Conditional rejection নিজে থেকে বাস্তব সময়ে সঠিক forecast বেছে নেওয়ার trading rule দেয় না। Evaluation data-তে instrument loss difference-এর সঙ্গে যুক্ত হতে পারে, কিন্তু তাতে স্থিতিশীল বা কার্যকর switching rule তৈরি হয় না। বর্তমান তথ্য দিয়ে forecast বাছতে হলে অতীত observation-এ rule নির্ধারণ করুন, তারপর পরের অক্ষত origin-গুলোর ধারায় তার estimation, decision uncertainty-সহ মূল্যায়ন করুন।
GW-কে DM, nested-model ও instability test থেকে আলাদা করুন
Diebold–Mariano test evaluation sample-এ দুই forecast-এর average loss সমান কি না জিজ্ঞেস করে। GW বাছা তথ্য relative loss-এর সঙ্গে যুক্ত কি না পরীক্ষা করে; unconditional comparison একটি বিশেষ moment restriction হিসেবে রাখা যায়। দুই-state উদাহরণের মতো average score সমান হলেও state-ভেদে performance আলাদা হতে পারে।
Forecast nested model থেকে এলে এবং প্রশ্নটি equal-MSPE comparison হলে Clark–West adjustment ভিন্ন null ও estimation-noise সমস্যার জন্য প্রাসঙ্গিক। অনেক trading rule বা forecast candidate খুঁজে তাদের মধ্যে কোনোটি উন্নত কি না জানতে চাইলে White Reality Check বা Hansen SPA-এর মতো family-level procedure আলাদা প্রশ্নের উত্তর দেয়। আগে বাছা একটি জোড়ার conditional test বৃহত্তর অনুসন্ধান মুছে দেয় না।
Relative accuracy সময়ে বদলায়—এমন প্রমাণ নির্দিষ্ট break date দেয় না। গবেষণার প্রশ্ন যদি নির্বাচিত instrument-এর সঙ্গে সম্পর্ক নয়, বরং performance-এর সময়পথ হয়, local instability বা reversal test বেশি মানানসই হতে পারে। Giacomini and Rossi (2010) এ ধরনের comparison আলোচনা করে। প্রশ্নমাফিক পদ্ধতি নিন; প্রতিটি rejection-কে regime-switching trading strategy-র প্রমাণ ভাববেন না।
অনেক forecast model তুলনা করে পরিসংখ্যানগতভাবে আলাদা করা কঠিন এমন set রাখতে চাইলে Model Confidence Set নির্দেশিকা আলাদা পদ্ধতি ব্যাখ্যা করে। সেটিও GW analysis-এ condition আগে থেকে নির্ধারণের বিকল্প নয়।
কম power ও বারবার পরীক্ষা করার ঝুঁকি ধরুন
Conditional test-এ অনেক data লাগতে পারে। Sample-কে calm ও high-volatility অবস্থায় ভাগ করলে প্রতিটি comparison-এর observation কমে যায়। বেশি function মানে বেশি moment ও degrees of freedom। নির্বাচিত condition-গুলো relative loss-এর সঙ্গে দুর্বলভাবে সম্পর্কিত হলে বাস্তবে conditional difference থাকলেও test power কম হতে পারে।
McCracken-এর Federal Reserve Bank of St. Louis working paper একটি সহজ quadratic-loss উদাহরণে GW test-এর অস্তিত্ব, size ও power পরীক্ষা করে। তার simulation-এ পরীক্ষা করা সেটাপগুলোতে test size যথাযথ হলেও power সাধারণত কম ছিল (McCracken, 2020)। এটি ওই সেটাপের ফল, সব প্রয়োগের জন্য সর্বজনীন power estimate নয়। Reject না হওয়া সীমিত তথ্য বা কম power বোঝাতে পারে; forecast-দুটি interchangeable প্রমাণিত—এভাবে লিখবেন না।
State definition, threshold, horizon, loss function ও evaluation date পাল্টে পাল্টে দেখে significant result বেছে নিলে chance finding-এর সম্ভাবনা বাড়ে। চেষ্টা করা সব test নথিবদ্ধ করুন; exploratory analysis ও pre-specified confirmation sample আলাদা রাখুন। বহু strategy-র মধ্যে কোনোটি predictive—এমন দাবি করতে চাইলে পুরো family-তে উপযুক্ত multiple-testing বা data-snooping পদ্ধতি ব্যবহার করুন। Conditional instrument বাড়ালেই evidence জোরালো হয় না।
একাধিক forecast model তুলনায় pairwise conditional test থেকে ভিন্ন প্রশ্নের জন্য family-level পদ্ধতি দরকার হতে পারে। Model Confidence Set নির্দেশিকা নির্বাচিত স্তরে আলাদা করা যায় না এমন model set রাখার iterative comparison বোঝায়; এটি GW-তে শর্ত আগে নির্ধারণের বিকল্প নয়।
পুনরুৎপাদনের জন্য নকশা যথেষ্ট স্পষ্ট করে জানান
দুই forecast method-এর নাম, প্রতিটির estimation পদ্ধতি, model nested কি না, target, horizon ও evaluation date জানান। সুনির্দিষ্ট loss function এবং \(d_{t+1}\)-এর sign convention লিখুন। \(h_t\)-এর প্রতিটি উপাদান কীভাবে তৈরি হয়, কখন জানা যায়, এবং ফল দেখার আগে ঠিক করা হয়েছিল কি না ব্যাখ্যা করুন।
Forecast-origin schedule, estimation-window rule, data vintage, common-sample rule, out-of-sample origin সংখ্যা, test function সংখ্যা, covariance estimator, reference distribution, statistic, degrees of freedom ও p-value জানান। Horizon overlap করে কি না এবং dependence কীভাবে সামলেছেন লিখুন। শুধু test result নয়, average loss ও loss-difference summary-ও দিন।
চেষ্টা করা অন্য instrument, threshold, window, loss ও forecast pair-এর তালিকা দিন। একই observation দিয়ে model বা conditioning variable বেছে পরে সেটিই test করা হলে তা বলুন। ফল confirmatory না হলেও তথ্যবহ হতে পারে; স্বচ্ছ প্রতিবেদন পাঠককে সীমা বুঝে আলাদা validation নকশা করতে দেয়।
সাধারণ প্রশ্ন
Q1Giacomini–White test কি Diebold–Mariano test-এর মতো?
না। Diebold–Mariano average loss সমান কি না দেখে। One-step GW framework বাছা conditional moment পরীক্ষা করে এবং সম্ভাব্য restriction হিসেবে unconditional moment-ও রাখে।
Q2Reject করলে কি প্রতিটি market regime-এ কোন forecast ব্যবহার করতে হবে জানা যায়?
না। Test assumption-এ অন্তত একটি নির্বাচিত moment শূন্যের সঙ্গে মেলে না—এটুকু বোঝায়। ফল instrument, sample ও loss-এর ওপর নির্ভর করে এবং সব অবস্থায় performance নিশ্চিত করে না।
Q3Test reject না করা পর্যন্ত volatility threshold যোগ করতে থাকব?
এটি conditioning variable নিয়ে search তৈরি করে। সম্ভব হলে variable আগে নির্ধারণ করুন এবং চেষ্টা করা সব specification জানান। বিস্তৃত predictive claim-এর জন্য আলাদা confirmation sample বা family-উপযোগী correction ব্যবহার করুন।
Q4Conditional predictive ability কি trading strategy লাভজনক বোঝায়?
না। Test forecast loss তুলনা করে। Trading claim-এর জন্য নির্দিষ্ট decision rule এবং execution, fee, financing, market impact ও risk-এর আলাদা মূল্যায়ন দরকার। প্রাথমিক গবেষণা - Giacomini and White, “Tests of Conditional Predictive Ability” (2006) - Giacomini and Rossi, “Forecast Comparisons in Unstable Environments” (2010) - McCracken, “Tests of Conditional Predictive Ability: Existence, Size, and Power” (Federal Reserve Bank of St. Louis Working Paper, 2020) - Diebold and Mariano, “Comparing Predictive Accuracy” (1995) - Newey and West, “A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix” (1987)
উৎস ও আরও পড়ুন
সমস্যা জানান
এই নিবন্ধের লিংকসহ একটি ইমেল তৈরি হবে। পাঠানোর পরেই Mark প্রতিবেদনটি পাবে
দ্রুত যাচাই
গাইডটি পড়ার পর 3টি প্রশ্নে নিজেকে যাচাই করুন
প্রশ্ন 01
dₜ₊₁ = L(A) − L(B) হলে positive loss difference কী বোঝায়?
ব্যাখ্যা দেখতে একটি উত্তর বেছে নিন