RbiSearchHeader

Press escape key to go back

Past Searches

Template ப்ராஸஸிங் செய்யும்போது பிழை ஏற்பட்டது.
Failed to "?eval" string with this error:

---begin-message---
Syntax error in ?eval-ed string in line 1, column 27024:
Encountered "SecondLevelLink", but was expecting one of:
    "."
    ".."
    <DOT_DOT_LESS>
    "..*"
    "?"
    "??"
    "!"
    ","
    "["
    "("
    "}"
    <TERMINATING_EXCLAM>
---end-message---

The failing expression:
==> completeJson?eval  [in template "20099#20125#25189027" at line 18, column 56]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #list completeJson?eval as jsonKey, j...  [in template "20099#20125#25189027" at line 18, column 49]
----
1<#assign completeJson = content.getData()?remove_beginning("<p>")?remove_ending("</p>") , 
2				 isVariableString = completeJson?is_string 
3/> 
4 
5 
6<#assign theme_display = themeDisplay /> 
7<#assign images_folder = theme_display.getPathThemeImages() /> 
8<#assign tabindexNum ="" /> 
9 
10<!-- <div class="desktop-primary-navigation-wrapper full-width">--> 
11	<nav class="container pl-0 pr-0" tabindex="0"  aria-label="Primary Navigation Use tab keys to access menu items and Press enter key to activate."> 
12    <div class="rbi-header-wrap full-width"> 
13        <div class="container-fluid rbi-header"> 
14            <div data-title="Primary Navigation" id="primary-navigation" data-intro="Smart navigation with clear segregations" class="rbi-primary-navigation"> 
15                <ul class="nav navbar-site" role="menu"> 
16                    <!--Menu Level 1 start--> 
17                    <#if (content.getData())??> 
18						<#list completeJson?eval as jsonKey, jsonValue> 
19						<#list jsonValue as singleJsonValue> 
20						<li class="nav top-level-menu ${singleJsonValue.ListInfo}" role="menuitem" aria-label="${singleJsonValue.FirstLevelText} menu item"> 
21 
22                            <#if singleJsonValue.IsSecondLevelExists=="true"> 
23                                            <#assign topLevelMenuRole="role='menuitem'"> 
24                                                <#else> 
25                                                    <#assign topLevelMenuRole="role='menuitem'"> 
26                                        </#if> 
27                                                     
28						<#if singleJsonValue.FirstLevelText??> 
29						<span role="menu" class="page-level-one-text"> 
30							<a class="nav-link page-level-1" aria-label="${singleJsonValue.FirstLevelText} menu item"  ${topLevelMenuRole} href="${singleJsonValue.FirstLevelLink}"  tabindex="0" > 
31								<span class="text-truncate">${singleJsonValue.FirstLevelText}</span> 
32							</a> 
33					</span> 
34						</#if>      
35            <#if singleJsonValue.IsSecondLevelExists=="true"> 
36                    <div class="top-mega-menu-wrap" role="menu"   tabindex="0" aria-label="${singleJsonValue.FirstLevelText} Sub Menu Open"> 
37                        <div class="repateable-img d-none"></div> 
38                            <div class="mega-menu-first-block equalColumns"> 
39                                <div class="mega-menu-first-block-row"> 
40                                    <h3 tabindex="0">${singleJsonValue.FirstLevelText}</h3> 
41									<#if singleJsonValue.FirstLevelDescription?? && singleJsonValue.FirstLevelDescription!=""> 
42                                    <p tabindex="0" class="desc">${singleJsonValue.FirstLevelDescription}</p> 
43									</#if> 
44																		 
45                                       
46                                </div> 
47                            </div> 
48                        <div class="mega-menu-second-blocks equalColumns"> 
49												<span class="top-level-page-name">${singleJsonValue.FirstLevelText}</span> 
50                                                <!--Menu Level 2 start--> 
51                                                <#if singleJsonValue.IsSecondLevelExists == "true" > 
52                                                <ul class="second-level-menu test"> 
53                                <#list singleJsonValue.SecondLevelData as secondLevelData> 
54                                
55                                 
56                                <li class="second-level-page test" role="menuitem"> 
57                                    <!--${secondLevelData.SecondLevelLink}--> 
58                                         
59                                        <a class="second-level-menu-URL" target="_self"  
60                                        href="${secondLevelData.SecondLevelLink}" tabindex="0"> 
61                                            ${secondLevelData.SecondLevelText} 
62 
63                                        </a> 
64                                        <!--${secondLevelData.SecondLevelLink}--> 
65                                        <#if secondLevelData.IsThirdLevelExists == "true" > 
66                                        <div class="primary-nav-arrow-wrapper">  
67                                             
68                                           <span  class="primary-nav-arrow" role="menu" tabindex="0" title="Open Submenu for ${secondLevelData.SecondLevelText}">  
69                                             
70                                            <img src="${images_folder}/rbi-main/nav-arrow.svg" alt="${secondLevelData.SecondLevelText}"> 
71                                         
72                                            </span> 
73                                         
74										</div> 
75                                        </#if> 
76                                     
77											 
78                                         
79                                            <!--Menu Level 3 start--> 
80                                            <div class="mega-menu-third-blocks equalColumns"> 
81                                                <span class="third-level-page-name">${secondLevelData.SecondLevelText}</span> 
82            <#if secondLevelData.IsThirdLevelExists == "true" > 
83                                                            <ul class="third-level-menu"> 
84 
85            <#list secondLevelData.ThirdLevelData as thirdLevelData> 
86             
87            <#if thirdLevelData.IsFourthLevelExists == "true" > 
88                <#assign third_lavel_aria ="open sub menu for ${thirdLevelData.ThirdLevelText}" /> 
89                <#assign rolemenu = "role=menu" /> 
90                <#else> 
91              <#assign third_lavel_aria ="${thirdLevelData.ThirdLevelText}" /> 
92              <#assign rolemenu = "" /> 
93 
94            </#if> 
95 
96                <li class="third-level-page"> 
97                    <span class="hide-text"></span> 
98                    <a href="${thirdLevelData.ThirdLevelLink}" ${rolemenu}  aria-label="${third_lavel_aria}"  target="_self">${thirdLevelData.ThirdLevelText}</a> 
99                        <!--Menu Level 4 start--> 
100                     
101                                                                                        <#if thirdLevelData.IsFourthLevelExists == "true" > 
102         <ul class="fourth-level-menu"> 
103 
104                                                                                            <#list thirdLevelData.FourthLevelData as fourthLevelData> 
105                                                                                                <li class="fourth-level-page"  role="menuitem" >  
106                                                                                                    <a href="${fourthLevelData.FourthLevelLink}" target="_self">${fourthLevelData.FourthLevelText}</a> 
107                                                                                                </li> 
108                                                                                            </#list> 
109                                                                                                                                                                                                                            </ul> 
110                                                                                        </#if> 
111 
112 
113                </li> 
114               
115</#list> 
116</#if> 
117 
118            <!--json area--> 
119             
120                                                                <#if secondLevelData.IsThirdLevelExists == "true" > 
121                                                                    <#if secondLevelData.CommonSecondLevelData?? && secondLevelData.CommonSecondLevelData.Main.ImageLink != ""> 
122                                                                    <div class="pn-dynamic-data-wrapper"> 
123                                                                        <!--josn image--> 
124                                                                        <#if secondLevelData.CommonSecondLevelData.Main.ImageLink != ""> 
125                                                                        <div class="pn-dynamic-data--img d-none"> 
126                                                                            <img src="${secondLevelData.CommonSecondLevelData.Main.ImageLink}" alt="RBI" title="RBI" tabindex="0"> 
127                                                                        </div> 
128                                                                        </#if> 
129                                                                        <!--josn image--> 
130 
131                                                                        <!--json dynamic content--> 
132                                                                        <div class="pn-content-dynamic-wrapper"> 
133																																				       <h2>${languageUtil.get(locale, "quick-links")}</h2> 
134                                                                        <#if secondLevelData.CommonSecondLevelData.Others??> 
135                                                                            <#list secondLevelData.CommonSecondLevelData.Others as others> 
136                                                                            <#if others.Title != "" > 
137                                                                            <div class="pn-content-contents-row"> 
138                                                                                <div class="pn-content-contents-row--inner"> 
139                                                                                    <div class="pn-dynamic-content-title"> 
140                                                                                        <a href="${others.Link}" class="content-title--link"> 
141                                                                                            ${others.Title} 
142                                                                                        </a> 
143                                                                                    </div> 
144                                                                                    <#if others.Description != "" >  
145                                                                                    <div class="pn-dynamic-content-desc"> 
146                                                                                        ${others.Description} 
147                                                                                    </div> 
148                                                                                    </#if> 
149                                                                                </div> 
150                                                                            </div> 
151                                                                            </#if> 
152                                                                            </#list> 
153                                                                        </#if> 
154                                                                        </div> 
155                                                                        <!--json dynamic content--> 
156                                                                    </div> 
157                                                                    </#if> 
158                                                                        </ul> 
159                                                                </#if> 
160                                                                 
161            <!--json area--> 
162 
163     
164 
165    </div> 
166 
167</li> 
168 
169</#list> 
170</ul> 
171</#if> 
172<!--Menu Level 2 start-->      
173</div> 
174</div> 
175</#if> 
176 
177<!--top-mega-menu-wrap ends--> 
178 
179</li> 
180<!--Menu Level 1 ends--> 
181</#list> 
182</#list> 
183</#if>  
184 
185</ul> 
186</div> 
187</div> 
188</div> 
189</nav> 
190<!--</div>--> 
191 
192 
193<script> 
194    var clickedTab = false; 
195 
196    function tabPressEqualCol() { 
197       // console.log('tabPressEqualCol function called'); 
198        if ($(window).width() < 1024) { 
199                return false; 
200
201 
202            $('.top-level-menu').each(function() { 
203                var getSecondLevelTabMenuLength = $(this).children(".top-mega-menu-wrap").find($(".second-level-menu li")).length; 
204                if (getSecondLevelTabMenuLength > 0) { 
205 
206                    // var isLevelOneisHidden = $(this).children(".top-mega-menu-wrap").is(":hidden"); 
207                    //     if (isLevelOneisHidden) { 
208                    //         $(this).children(".top-mega-menu-wrap").show(); 
209                    //         const elms = document.querySelector('.top-level-menu'); 
210                    //         const getLeftPos = elms.getBoundingClientRect(); 
211                    //         const shiftLeftPos = getLeftPos.left; 
212                    //     } 
213 
214                    var maxHeight = 0; 
215                    var sameBlocks = ($(this).children(".top-mega-menu-wrap")).children( 
216                    '.equalColumns'); 
217                    var thirdLevelBlockMenu = $(this).find('.mega-menu-third-blocks .third-level-menu'); 
218 
219                    sameBlocks.each(function (ev) { 
220                        $(this).css('height', 'fit-content'); 
221                        if ($(this).height() > maxHeight) { 
222                            maxHeight = $(this).height(); 
223
224						 
225                    }); 
226 
227                    sameBlocks.each(function (ev) { 
228                        if (maxHeight > 400) { 
229                            $(this).css('height', Math.round(maxHeight).toString() + 'px'); 
230                            $(thirdLevelBlockMenu).css('height', Math.round(maxHeight).toString() + 'px'); 
231                        } else { 
232                            $(this).css('height', '400px'); 
233                            $(thirdLevelBlockMenu).css('height', '400px'); 
234
235                    }); 
236
237            }); 
238             
239 
240 
241 
242 
243
244 
245    //tab key invoke// 
246$(document).on('keyup', '.primary-nav-arrow', function (e) { 
247    if ((e.keyCode === 9) || (e.keyCode === 13))  { 
248        console.log('tab press'); 
249        tabPressEqualCol(); 
250
251}); 
252 
253	 
254    $(document).ready(function () { 
255 
256        tabPressEqualCol(); 
257			 
258			//third level content title character length 
259			$(".pn-dynamic-content-title a.content-title--link").each(function() { 
260				var getFeedbackText=$(this).text().trim(); 
261				if (getFeedbackText.length > 43) { 
262					 var setFeedbackText = getFeedbackText.substring(0,43); 
263					$(this).text(setFeedbackText); 
264
265				//console.log("getFeedbacktext --- " + getFeedbackText); 
266			}); 
267 
268			//third level content Desc character length 
269			$(".pn-dynamic-content-desc").each(function() { 
270				var getFeedbackText=$(this).text().trim(); 
271				if (getFeedbackText.length > 43) { 
272					 var setFeedbackText = getFeedbackText.substring(0, 43); 
273					$(this).text(setFeedbackText); 
274
275				//console.log("getFeedbacktext --- " + getFeedbackText); 
276			}); 
277			 
278        // Check if 3rd level nav items exist 
279        if($(".second-level-page").length){ 
280            $(".second-level-page").each(function() { 
281                let thirdLevelNavItems = $(this).find('.third-level-page'); 
282                if(thirdLevelNavItems.length){ 
283                    $(this).addClass('has-level-3'); 
284
285            }); 
286        }   
287 
288        // Check if 4th level nav items exist 
289        if($(".third-level-page").length){ 
290            $(".third-level-page").each(function() { 
291                let fourthLevelNavItems = $(this).find('.fourth-level-page'); 
292                if(fourthLevelNavItems.length){ 
293                    $(this).addClass('is-level-4-accordion'); 
294                    $(this).parents('.mega-menu-third-blocks').addClass('is-level-4-accordion-parent'); 
295
296            }); 
297        }         
298 
299        // Close Nav 1st level anchor text 
300        $(".top-level-page-name").on('click', function () { 
301            $(this).closest(".top-mega-menu-wrap").hide(); 
302        }); 
303 
304        // Close Nav 2nd level anchor text 
305        $(".third-level-page-name").on('click', function () { 
306            $(this).parent(".mega-menu-third-blocks").removeClass('level-3-open'); 
307            $(this).siblings($(".third-level-menu")).hide(); 
308        }); 
309 
310        // Nav 1st level anchor link with lchange for accessibilty fix line 300, 306 and 309 
311        $('.top-level-menu> span a').on('click', function (e) { 
312            if ($(this).hasClass('disableURL')) { 
313                e.preventDefault(); 
314
315 
316            if ($(window).width() < 1024) { 
317                var getSecondLevelMenuLength = $(this).parent().siblings(".top-mega-menu-wrap").find($( 
318                    ".second-level-menu li")).length; 
319                if (getSecondLevelMenuLength > 0) { 
320                    var menuOpen = $(this).parent().siblings(".top-mega-menu-wrap").is(":hidden"); 
321                    if (menuOpen) { 
322                        $(this).parent().siblings(".top-mega-menu-wrap").show(); 
323
324
325
326        }); 
327 
328        // Nav 1st level anchor link 
329		$('.second-level-page a').on('click', function (e) { 
330            if ($(this).hasClass('disableURL')) { 
331                e.preventDefault(); 
332
333            if ($(window).width() < 1024) { 
334                var getThirdLevelMenuLength = $(this).closest('.second-level-page').children(".mega-menu-third-blocks").find($(".third-level-menu li")).length; 
335                if (getThirdLevelMenuLength > 0) { 
336                    $(this).closest('.second-level-page').children(".mega-menu-third-blocks").addClass('level-3-open'); 
337                    $(this).closest('.second-level-page').children(".mega-menu-third-blocks").find($(".third-level-menu")).show(); 
338					//console.log("clicked...."); 
339
340
341        }); 
342		 
343		 
344 
345		$('.second-level-page .primary-nav-arrow').on('click', function (e) { 
346            if ($(this).hasClass('disableURL')) { 
347                e.preventDefault(); 
348
349            if ($(window).width() < 1024) { 
350                var getThirdLevelMenuLength = $(this).closest('.second-level-page').children(".mega-menu-third-blocks").find($(".third-level-menu li")).length; 
351                if (getThirdLevelMenuLength > 0) { 
352                    $(this).closest('.second-level-page').children(".mega-menu-third-blocks").addClass('level-3-open'); 
353                    $(this).closest('.second-level-page').children(".mega-menu-third-blocks").find($(".third-level-menu")).show(); 
354					//console.log("clicked...."); 
355
356
357        }); 
358 
359        // Nav 1st level mouseenter event 
360        $('.top-level-menu').mouseenter(function (e) { 
361            if ($(window).width() < 1024) { 
362                return false; 
363
364             
365            var getSecondLevelMenuLength = $(this).children(".top-mega-menu-wrap").find($( 
366                ".second-level-menu li")).length; 
367                 
368              //added  
369              if (getSecondLevelMenuLength === 0) { 
370                    $(this).closest('.top-level-menu').find('.page-level-1').addClass("withoutDropdown"); 
371					//$(this).closest('.top-level-menu').find('.top-mega-menu-wrap').remove(); 
372                }    
373            if (getSecondLevelMenuLength > 0) { 
374                var isLevelOneisHidden = $(this).children(".top-mega-menu-wrap").is(":hidden"); 
375                if (isLevelOneisHidden) { 
376                    $(this).children(".top-mega-menu-wrap").show(); 
377                    const elms = document.querySelector('.top-level-menu'); 
378                    const getLeftPos = elms.getBoundingClientRect(); 
379                    const shiftLeftPos = getLeftPos.left; 
380 
381                    //$(this).children(".top-mega-menu-wrap").css("left", "-" + shiftLeftPos + "px"); 
382 
383                    // added for equal column //  
384                    var maxHeight = 0; 
385                    var sameBlocks = ($(this).children(".top-mega-menu-wrap")).children( 
386                    '.equalColumns'); 
387                    var thirdLevelBlockMenu = $(this).find('.mega-menu-third-blocks .third-level-menu'); 
388 
389                    sameBlocks.each(function (ev) { 
390                        $(this).css('height', 'fit-content'); 
391                        if ($(this).height() > maxHeight) { 
392                            maxHeight = $(this).height(); 
393
394						 
395                    }); 
396 
397                    sameBlocks.each(function (ev) { 
398                        if (maxHeight > 400) { 
399                            $(this).css('height', Math.round(maxHeight).toString() + 'px'); 
400                            $(thirdLevelBlockMenu).css('height', Math.round(maxHeight).toString() + 'px'); 
401                        } else { 
402                            $(this).css('height', '400px'); 
403                            $(thirdLevelBlockMenu).css('height', '400px'); 
404
405						 
406				}); 
407
408
409             
410        }); 
411 
412        // Nav 1st level mouseleave event 
413        $('.top-level-menu').mouseleave(function (e) { 
414            if ($(window).width() < 1024) { 
415                return false; 
416
417            $(this).children(".top-mega-menu-wrap").hide(); 
418            $(".third-level-menu").hide(); 
419        }); 
420 
421        // Nav 2nd level mouseenter event 
422        $(".second-level-page").mouseenter(function () { 
423            if ($(window).width() < 1024) { 
424                return false; 
425
426            var thirdLevelMenu = $(this).find(".third-level-menu"); 
427            var thirdLevelMenuItems = $(this).find(".third-level-menu li"); 
428 
429            if (thirdLevelMenuItems.length > 0) { 
430                thirdLevelMenu.show(); 
431            }             
432        }); 
433 
434        // Nav 2nd level mouseleave event 
435        $(".second-level-page").mouseleave(function () { 
436            if ($(window).width() < 1024) { 
437                return false; 
438
439            var thirdLevelMenu = $(this).find(".third-level-menu"); 
440            thirdLevelMenu.hide(); 
441        }); 
442 
443        // retriving top level url  
444        $(document).on('keydown', '.top-level-menu', function (e) { 
445            $('.nav.navbar-site').first().children('li').each(function () { 
446               // $(this).find('a').attr('tabindex', '0'); 
447               // $(this).find('a').addClass('First-level-menu'); 
448            }); 
449           
450            $(this).each(function () { 
451                if ( $(this).children('.page-level-1').hasClass('disableURL') ) { 
452                    if (e.which == 13) { 
453                        if ($(this).find('.top-mega-menu-wrap').is(":hidden")) { 
454                            $(".top-mega-menu-wrap").hide(); 
455                            $(this).find(".top-mega-menu-wrap").show(); 
456                            clickedTab = true; 
457                            e.preventDefault(); 
458                        } else { 
459                            $(this).find(".top-mega-menu-wrap").hide(); 
460
461
462
463                 
464            }); 
465        }); 
466 
467        $(".rbi-primary-navigation a").each(function () { 
468            var getPageLevelURL = $(this).attr("href"); 
469            if (((getPageLevelURL.indexOf("javascript") > -1)) || ((getPageLevelURL.indexOf( 
470                    "Javascript") > -1))) { 
471                $(this).addClass("disableURL"); 
472
473 
474            // added for collaborative events menu should not open  
475            if ((getPageLevelURL.indexOf("href") > -1))  { 
476                $(this).addClass("menu-not-open-collaborative"); 
477
478 
479             
480        }); 
481          
482        /*blocked temprary need to know why shift key is desier*/ 
483        // $('.mega-menu-second-blocks .second-level-menu>li:last-child>a').on('keydown', function (e) { 
484        //     if( !e.shiftKey && e.keyCode ){ 
485        //         $('.top-mega-menu-wrap').css('display', 'none');   
486        //     }                        
487        // }); 
488 
489        var navMousedown = false; 
490        $('.mega-menu-third-blocks .third-level-menu>li:last-child>a').on('mousedown', function () { 
491            navMousedown = true; 
492        }); 
493 
494        $('.mega-menu-third-blocks .third-level-menu>li:last-child>a').on('focusout', function (event) { 
495            $(this).keydown(function (e) { 
496                if(!navMousedown) { 
497                    if( !e.shiftKey && e.keyCode ){ 
498                        if( !$(this).parent('.is-level-4-accordion').hasClass('active') ){ 
499                            $(".third-level-menu").css('display', 'none'); 
500                            $(this).parent('.second-level-page').focus();  
501                        }                         
502                    }                 
503
504                navMousedown = false;   
505            });                       
506        }); 
507 
508        $('.mega-menu-second-blocks .second-level-menu li.has-level-3').on('keydown', function (event) { 
509            // on click of enter  
510            if (event.which === 13) { 
511                $(this).trigger('click').find('.third-level-menu').css('display', 'block'); 
512                 
513
514        }); 
515 
516        $('.mega-menu-second-blocks .second-level-menu>li>a').on('focus', function (event) { 
517            $(".third-level-menu").css('display', 'none'); 
518        }); 
519 
520        $('.rbi-header .site-logo .custom-logo').on('focusout', function (event) { 
521            $('.rbi-primary-navigation>ul>li:nth-child(2)>a').attr('tabindex', '0'); 
522        }); 
523 
524        // On load get number of languages 
525        let rbiLanguages = []; 
526 
527        if ($(".multipleLanguae-wrapper #languageSelector option").length) { 
528            $(".multipleLanguae-wrapper #languageSelector option").each(function () { 
529                let currentItem = { 
530                    languageText: $(this).text(), 
531                    languageURL: $(this).attr('value') 
532                }; 
533                rbiLanguages.push(currentItem); 
534            }); 
535        }  
536		 
537 
538        // Add languages to mobile list items 
539        let langListItem = ''; 
540        let langListItemContainer = $(".pwa-primary-navigation-wrapper .nav>li:first-child").find( 
541            '.second-level-menu'); 
542        langListItemContainer.empty(); 
543				 
544				     if (rbiLanguages.length) { 
545            $.each(rbiLanguages, function (key, value) { 
546							 
547                if (value.languageURL == value.languageText) { 
548                    langListItem = 
549                        "<li class='second-level-page selected test' ><a href='javascript:void(0)' target='_self'>" + 
550                        value.languageText + "</a></li>"; 
551                } else { 
552                    langListItem = 
553                        "<li class='second-level-page test'><a href='" + 
554                        value.languageURL + "' target='_self'>" + value.languageText + "</a></li>"; 
555
556 
557                langListItemContainer.append(langListItem); 
558            }); 
559
560         
561 
562    }); 
563window.addEventListener("load", () => { 
564    setTimeout(() => { 
565        if(window.location.href.includes('lost-in-transmission-financial-markets-and-monetary-policy-duplicate-0') 
566        ){ 
567                $(".multipleLanguae-wrapper .list ul li").each(function () { 
568                        $(this).removeClass('d-none') 
569                }); 
570
571    }, 2000); 
572 }); 
573 
574</script> 
575 
576 
577<script> 
578$(document).ready(function(){ 
579		setTimeout(function() {  
580        $('.rbi_home_hero_wrapper .owl-dots button').attr('aria-label', 'Slide Navigation'); 
581        $('.rbi_home_hero_wrapper .owl-dots button').attr('title', 'Slide Navigation'); 
582    }, 50); 
583}); 
584</script> 
Theme
Theme
Text Size
Text Size
S3

RbiAnnouncementWeb

RBI Announcements
RBI Announcements

சொத்து வெளியீட்டாளர்

83813682

IX. Estimation of Seasonal Factors

9.1. Introduction

Economic time series are generally found to exhibit regular, intra-year seasonal movements around its annual trend path. Such repetitive seasonal variations can result from climatic conditions, production cycle characteristics, seasonal nature of economic activity, festivals, vacation practices, etc. While the seasonal variations occur regularly, yet they may vary in magnitude from year to year. From the policy perspective, information on seasonal factors of an economic variable is useful as it enables the policy maker to differentiate between the seasonal changes and long-run changes in a variable and thereby design appropriate policy responses. An article regarding monthly seasonal factors for selected economic and financial time series of the Indian economy is being regularly published in the RBI Bulletin from 1980 onwards. This article presents the monthly seasonal factors of selected economic/financial time series classified into major five groups, namely,

A. Monetary and Banking Indicators;
B. Wholesale Price Index (WPI);
C. Consumer Price Index for Industrial workers (CPI-IW);
 D. Index of Industrial Production (IIP); E. External Trade.

The seasonal factors are being estimated using the X-12 auto-regressive integrated moving average (ARIMA) methodology. X-12 ARIMA is the software for seasonal adjustment developed by the US Census Bureau. It is an enhanced version of the X-11 Variant of the Census Method II seasonal adjustment programme. The procedure makes multiplicative/additive adjustments of a time series and creates an output data set containing the adjusted time series and intermediate calculations.

The main source of these new tools is the extensive set of time series model building facilities built into the programme for fitting the regARIMA models. These are regression models with ARIMA (Autoregressive Integrated Moving Average) errors. More precisely, they are models in which the mean function of the time series (or its lags) is described by a linear combination of regressors, and the covariance structure of the series is that of an ARIMA process. If no regressors are used, indicating that the mean is assumed to be zero, the regARIMA model reduces to an ARIMA model. There are regressors for modeling certain kinds of disruption in the series, or sudden changes in level, whose effects need to be removed from the data before the methodology can adequately estimate seasonal adjustments. The regARIMA-modeling module of X-12-ARIMA was adopted from the regARIMA programme developed by the Time Series Staff of Census Bureau’s Statistical Research Division.

9.2. Methodology

The X-12-ARIMA is developed following the operation-flow diagram of Figure 9.1. This posits a regARIMA (linear regression model with ARIMA time series errors) modeling subprogram that can provide forecasts, backcasts, and prior adjustments for various effects before the seasonal adjustment subprogram in the central box is invoked. The final box in Figure 9.1 represents a set of post-adjustment diagnostic routines that can be used to obtain indicators of the effectiveness of both the modeling and the seasonal adjustment options chosen. The modeling module of X-12-ARIMA is designed for regARIMA model building with seasonal economic time series. To this end, several categories of predefined regression variables are available in X-12-ARIMA (for further details user may refer to the manual available at ‘htttp://www.census.gov/srd/www/ x12a/). User-defined regression variables can also be easily read in and included in models. For a multiplicative model, Figure 9.2 describes X-12 process for computing seasonal factors.

X-12-ARIMA uses the standard (p d q) (P D Q)s notation for seasonal ARIMA models. The (p d q) refers to the orders of the nonseasonal autoregressive (AR), differencing, and moving average (MA) operators, respectively. The (P D Q)s refers to the seasonal autoregressive, differencing, and moving average orders. The s subscript denotes the seasonal period, e.g., s = 12 for monthly data, or 4 for quarterly data. Great flexibility is allowed in the specification of the ARIMA structures: any number of AR, MA, and differencing operators may be used; missing lags are allowed in AR and MA operators; and AR and MA parameters can be fixed at user-specified values. The specification of a regARIMA model requires specification both of regression variables to be included in the model and also the type of ARIMA model for regression errors (i.e., the orders (p d q) (P D Q)s). Specification of the regression variables depends on user knowledge about the series being modelled.

For the user who wishes to fit customised time series models, X-12-ARIMA provides capabilities for the three modeling stages of identification, estimation, and diagnostic checking. Identification of the ARIMA model for the regression errors follows well-established procedures based on examination of various sample autocorrelation and partial autocorrelation functions produced by X-12-ARIMA. Once a regARIMA model has been specified, X-12-ARIMA will estimate its parameters by maximum likelihood using an iterative generalised least squares (IGLS) algorithm. Diagnostic checking involves estimation of residuals from the fitted model for signs of model inadequacy.

The major improvements in X-12 ARIMA are new modeling capabilities using regARIMA models, sliding spans diagnostic procedure, ability to produce revisions history of a given seasonal adjustment, several new outlier detection options for the irregular component of the seasonal adjustment, etc. RegARIMA is a linear regression model with ARIMA that can provide forecasts and prior adjustments for various effects. X-12 ARIMA uses regARIMA models to preadjust a series by removing effects such as outliers, etc., before the seasonal adjustment program is invoked.

 


residuals (with standard errors), along with Ljung and Box (1978) summary Q-statistics. X-12-ARIMA can also produce basic descriptive statistics of the residuals and a histogram of the standardised residuals.

An important aspect of diagnostic checking of time series models is outlier detection. The outlier spec of X-12-ARIMA provides the automatic detection of additive outliers (AOs), temporary change outliers (TCs) and level shifts (LSs). X-12-ARIMA’s approach of outliers detection involves computing t-statistics for significance of each outlier type at each time point, searching through these t-statistics for significant outlier(s), and adding the corresponding AO, LS, or TC regression variable(s) to the model.

A seasonal adjustment that leaves detectable residual seasonal and calendar effects in the adjusted series is usually regarded as unsatisfactory. Even if no residual effects are detected, the adjustment will be unsatisfactory if the adjusted values (or important derivative statistics, such as the percent changes from one month to the next) undergo large revisions when they are recalculated as future time series values become available. Frequent, substantial revisions cause data-users to lose confidence in the usefulness of adjusted data. Indeed, such instabilities in the adjustments should cause the producers of adjustments to question their meaning. Unstable adjustments can be the unavoidable result of the presence of highly variable seasonal or trend movements in the series being adjusted. X-12-ARIMA includes two types of stability diagnostics, sliding spans and revision histories.

The sliding spans diagnostics display, and provide summary statistics for, the different outcomes obtained by running the program up to four overlapping subspans of the series. For each month that is common to at least two of the subspans, these diagnostics analyze the difference between the largest and smallest adjustments of the month’s datum obtained from the different spans. They also analyze the largest and smallest estimates of month-to-month changes and of other statistics of interest. They improve upon, or complement in important ways, earlier diagnostics for (i) determining if a series is being adjusted adequately, (ii) for deciding between direct and indirect adjustments of an aggregate series, and (iii) for confirming option

choices such as the length chosen for the seasonal filter or showing that other option choices must be tried.
The second type of stability diagnostic in X-12-ARIMA considers the revisions associated with continuous seasonal adjustment over a period of years. The basic revision calculated by the program is the difference between the earliest adjustment of a month’s datum obtained when that month is the final month in the series and a later adjustment based on all future data available at the time of the diagnostic analysis. Similar revisions are obtained for month-to-month changes, trend estimates, and trend changes. Sets of these revisions, calculated over a consecutive set of time points within the series, are called revisions histories.

9.4. Forecasting

For a given reg ARIMA model with parameters estimated by the X-12-ARIMA programme, the forecast spec will use the model to compute point forecasts, and associated forecast standard errors and prediction intervals. The point forecasts are Minimum Mean Squared Errors (MMSE) linear predictions of future yt ‘s based on the present and past yt ‘s assuming that,

i) the regARIMA model form is correct,
ii) the correct regression variables have been included,
iii) no additive outlier or level shifts will occur in the forecast period,
iv) the specifed ARIMA orders are correct, and
v) the parameter values used (typically estimated parameters) are equal to the true values.

These are standardised assumptions, though obviously unrealistic in practical applications. What is more realistically hoped is that the regARIMA model will be a close enough approximation to the true, unknown model for the results to be approximately valid. Two sets of forecasts errors are produced. One assumes that all parameters are known. The other allows for additional forecast error that comes for estimating the regression parameters, while still assuming that the AR and MA parameters are known.

If the series is transformed, the forecasting results are first obtained in the transformed scale, and then transformed back to the original scale. For example, if one specifies a model of form (1) for  yt = log( Yt ), where Yt is the original time series, then yt is forecasted first, and the resulting point forecasts and prediction interval limits are exponentiated to produce point and interval forecasts in the original ( Yt ) scale. The resulting point forecasts are MMSE for  yt = log(Yt ), but not for  Yt , under the standard assumptions mentioned above. If any prior adjustments are made, these will also be inverted in the process of transforming the point forecasts and prediction interval limits back to the original scale.

If there are any user-defined regression variables in the model, X-12-ARIMA requires that the user supply data for these variables for the forecast period. For the predefined regression variables in X-12-ARIMA, the programme will generate the future values required. If user-defined prior adjustment factors are specified, values for these should also be supplied for the forecast period.

9.5. Limitations

Some of the limitations of X-12-ARIMA procedure are listed below:

1.Observations (data) from a time series to be modeled and / or seasonally adjusted using X-12-ARIMA should be quantitative, as opposed to binary or categorical.

2.Observations must be equally spaced in time, and missing values are not allowed.

3.X-12-ARIMA handles only univariate time series models, i.e., it does not estimate relationships between different time series.

4.The set of automatically identified outliers can change if the regressor set or ARIMA model type is changed.

5.Regressors with t-statistic values just below the critical values can have their t-statistics increase above the critical values as new data are added to the series over time. Conversely, regressors can drop out of the set of identified outliers as new data are added. The printed output of X-12-ARIMA’s automatic-outlier-identification option lists months whose AO or LS regressors are close to the critical values. This is done to enable the user to consider in advance whether to include such regressors in subsequent runs of the program

RbiTtsCommonUtility

प्ले हो रहा है
கேட்கவும்

Related Assets

RBI-Install-RBI-Content-Global

RbiSocialMediaUtility

இந்திய ரிசர்வ் வங்கி மொபைல் செயலியை நிறுவுங்கள் மற்றும் சமீபத்திய செய்திகளுக்கான விரைவான அணுகலை பெறுங்கள்!

Scan Your QR code to Install our app

RbiWasItHelpfulUtility

இந்த பக்கம் உதவியாக இருந்ததா?