یک سری زمانی، دنباله ای از مشاهدات منظم شده بر حسب زمان از یک متغیر می باشد. در تجزیه و تحلیل سریهای زمانی تنها از داده های تاریخی متغیری که پیش بینی می شود، استفاده می کنند تا مدلی برای تخمین مقادیر آینده توسعه دهند. پیش بینی بارزترین مورد استفاده از سری زمانی میباشد، اینکار در صنعت و اقتصاد از اهمیت بالایی برخوردار است. از روشهای پیش بینی سری زمانی که در پشبینی کاربرد بسیاری دارد مدل ARIMA میباشد، ولی همانند سایر مدلهای پیش بینی این مدل نیز دارای محدودیتهایی می باشد که در ادامه به برخی از آنها اشاره می شود:
در حال حاضر در مدل ARIMA روش مناسبی وجود ندارد که به محض اینکه مشاهده جدید در دسترس قرار گرفت تخمینهای پارامترهای مدل را اصلاح یا به روز نماید، و تحلیل گر ناگزیر است بطور کامل مدل را از نو برازش نماید. و همچنین پژوهشگر باید فرض نماید که تکامل آینده سری زمانی با گذشته یکسان خواهد بود، یعنی شکل مدل با زمان تغییر نخواهد کرد. عدم امتیاز نهایی مدلهای ARIMA سرمایه گذاری مورد نیاز در زمان و سایر منابع برای ساختن یک مدل رضایت بخش است. ولی این مدلها بخصوص برای سریهای زمانی که در آنها فاصله نمونه گیری خیلی کوچکند، بدلیل اینکه تاریخ نسبتا طولانی یی را به آسانی میتوان تهیه کرد، به نحو شایستهای مناسبند.(فاطمی،۱۳۷۵)
۱-۶-۲: شبکه عصبی مصنوعی
شبکه های عصبی مصنوعی[۸] ابزار مدل بندی انعطاف پذیر و غیر پارامتریک هستند. آنها می توانند هر تابع پیچیده ای را با دقت مورد نظر اجرا کنند. یک شبکه عصبی مصنوعی نوعا از چندین لایه متشکل از تعدادی زیادی عناصر محاسبه گر ساخته شده است که این عناصر محاسبه گر اصطلاحا گره مینامند. هر گره یک سیگنال ورودی از دیگر گره ها، یا ورودی های خارجی دریافت می کند و پس از پردازش سیگنالها بصورت محلی به واسطه یک تابع تبدیل به گره دیگر یا نتیجه نهایی ارسال می کند. لایهی ورودی[۹] و لایهی خروجی[۱۰] شبکه شبیه یک سیستم ورودی-خروجی عمل می کند و ارزش نرون های ورودی را برای محاسبهی ارزش نرون خروجی مورد استفاده قرار می دهد. شبکه های عصبی با لایه های پنهان[۱۱] دارای توانایی های بیشتری نسبت به شبکه های عصبی دو لایه هستند.(منهاج،۱۳۷۷) در شبکه های عصبی ورودی p به نرون اعمال شده از طریق ضرب در وزن w، وزندار می شود و حاصل به تابع انتقال f بعنوان ورودی اعمال شده و خروجی نهایی حاصل میگردد. که در آن اندازه w متناظر با قدرت هر اتصال سیناپسی[۱۲](به نقطه اتصال یک آکسون[۱۳] یک سلول عصبی با دندریت[۱۴] سلولهای عصبی دیگر) در نرونهای موجودات زنده میباشد.(مصطفی کیا،۱۳۸۸) بعبارتی شبکه عصبی وزن بین متغیرهای مستقل و وابسته یعنی میزان رابطه بین آنها را تعیین می نماید.
۱-۶-۲-۱: شبکه عصبی درک چند لایه (MLP)
پرکاربردترین معماری شبکه های عصبی، شبکه های چند لایه پیش خور[۱۵] هستند که معمولا” شبکه های درک چند لایه و به طور اختصار [۱۶]MLPگویند. این نوع شبکه ها دارای مشخصات زیر هستند:
١. پردازنده های شبکه به چند لایه مختلف تقسیم می شوند.
٢. حداقل تعداد لایه ها در این شبکه ها، ٢ است.
٣. پردازنده های هر لایه فقط مجاز به دریافت سیگنال از پردازنده های لایه قبل خود هستند و سیگنال خروجی این پردازنده نیز به پردازنده های بعدی اعمال می شود.
۴. در این شبکه ها به لایه اول، ورودی، به لایه آخر، خروجی و به لایه های میانی ، لایه های پنهان می گویند. ورودی های شبکه پارامتر های مؤثر در تعیین خروجی ها هستند. بنابراین تعداد گره های لایه ورودی و خروجی در حقیقت از همان آغاز استفاده از شبکه معلوم است. تعداد گره های لایهی پنهان و همچنین تعداد لایه های پنهان از طریق سعی و خطا بدست می آید. در حقیقت تعداد مناسب گره ها و لایه های پنهان، وقتی به دست می آید که شبکه بهترین جواب را ارائه دهد.(منافی،۱۳۸۵)
علت اصلی موفقیت این شبکه را بایستی در نوع الگوریتم یادگیری این شبکه جستجو کرد. الگوریتم مورد استفاده در آن ، الگوریتم پس انتشار خطا می باشد. این الگوریتم همواره به دنبال حداقل سازی مربعات خطا می باشد . این دقیقا شبیه تخمین ضرایب رگرسیون از روش OLS در آمار و اقتصاد سنجی می باشد . بنابراین هر شبکه عصبی از یک تابع خطایی همانند رابطه زیر پیروی می کند .
تابع خطا در شبکه MLP :
(۱-۱)
در این رابطه e بیانگر مقدار خطای مشاهده شده می باشد .
هنگام طراحی یک شبکه باید پارامترهای ساختار شبکه، نوع الگوریتم آموزش، نرخ یادگیری، تعداد لایه های شبکه و تعداد نرون ها در هر لایه، و تعداد تکرارها برای هر الگو در خلال آموزش را مد نظر داشت.(اعظمی،۱۳۸۸)
از آنجاییکه عمل پیش بینی در شبکه های عصبی از طریق یادگیری[۱۷] بر روی متغیرهای ورودی انجام می شود، از این رو متغیرهای ورودی یکی از موارد مهم در مدلسازی با بهره گرفتن از شبکه های عصبی و الگوریتم ژنتیک است. از آنجا که بهترین وضعیت برای شبکه های عصبی هنگامی است که تمام ورودی ها و خروجیها بین صفر و یک باشند لذا داده ها با بهره گرفتن از روش ساعتی نرمال شدند. بدین منظور با جمع آوری منابع داخلی و خارجی با بهره گرفتن از روش کتابخانه ای و مطالعه ادبیات تحقیق، چهار متغیر به عنوان متغیرهای ورودی مدل در نظر گرفته شدند:
متغیر های ورودی(مستقل) مورد استفاده در تحقیق
X | شناسه | متغیر |
۱ | GP | قیمت جهانی طلا |
۲ | OP | میانگین قیمت نفت ایران |
۳ | USD | نرخ دولتی دلار آمریکا |
۴ | S&P500 | شاخص S&P500 آمریکا (نماد بورس جهانی) |
مدل دارای یک متغیر خروجی (وابسته) است، و آن هم شاخص قیمت (TEPIX) خواهد بود. داده های روزانه کلیه متغیرهای فوق از تاریخ ۰۶/۰۱/۱۳۸۴لغایت ۲۸/۱۲/۱۳۸۹، مورد بررسی قرار می گیرد. لذا جامعه آماری بورس اوراق بهادار تهران و سال های ۱۳۸۴ لغایت ۱۳۸۹ به عنوان دوره زمانی تحقیق انتخاب شد.
۱-۶-۳: الگوریتم ژنتیک
الگوریتم ژنتیک الهام گرفته از طبیعت است و تکامل طبیعت با فرضیه داروین، اساس شکل گیری آن می باشد که درآن بهترین ها حق بقا دارند.الگوریتم ژنتیک توسط جان هالند [۱۸]متخصص علوم کامپیوتر دانشگاه میشیگان در سال۱۹۶۲ ارائه شد. هالند با ارائه رساله ای با عنوان« تطابق در طبیعت و سیستمهای مصنوعی» به معرفی مفاهیم اصلی GA شامل عملگرهای سه گانهی انتخاب[۱۹]، آمیزش[۲۰] و جهش[۲۱] که در مورد سیستمهای مصنوعی به کار میروند و همچنین مبانی ریاضی الگوریتم ژنتیک پرداخت.(شهابیان و همکاران،۱۳۸۷)
از این الگوریتم، درحل مسائل بهینه سازی پیچیده که نمی توان برای آن قوانین خاصی در نظر گرفت استفاده می شود. برای حل یک مسئله با بهره گرفتن از این روش ابتدا باید پاسخهای فرضی مسئله را به صورت خاصی نمایش داد که برای ادامه کار و ارزیابی پاسخها مشکلی ایجاد نگردد. روشهای متعددی برای نمایش و کدگذاری وجود دارد که از مهمترین و معمولترین آنها روش دودویی و نمایش اعشاری شناور می باشد.(ستایش و همکاران، ۱۳۸۸)
در آغاز، جمعیت اولیه که جواب ها را نشان می دهند به صورت تصادفی انتخاب می گردد. هر یک از اعضای این جمعیت که کروموزم نامیده می شود یکی از پاسخ های مسئله می باشد. هر یک از این کروموزم ها از رشته ای از اعداد با طول برابر انتخاب می گردد که هر یک از این اعداد ژن نام دارد. الگوریتم ژنتیک بر اساس تکرار عمل می کند که به جمعیت در هر مرحله ، نسل گفته میشود. هریک از اعضای این نسل بر اساس تابع ارزش ، ارزیابی می شوند. در این الگوریتم ها نسل جدید سعی دارد که ارزش بیشتری از تابع ارزش را به خود اختصاص دهد و با این عملکرد به تابع هدف نزدیک تر گردد. در هر مرحله از تکرار، هر یک از کروموزم ها با احتمال خاصی با یکدیگر عمل تقاطعی انجام می دهند یا به اصطلاح مزدوج می شوند که پیامد آن یک یا چند کروموزم جدید به نام فرزند می باشد.
در این فرزندان ممکن است طبق احتمال خاصی عمل جهش ژنی اتفاق افتد، به این صورت که مقدار یک یا چند ژن از کروموزم تغییر کند. در مرحله آخر فرزندان طبق تابع ارزش، ارزیابی شده و بر اساس ارزش آنها و ارزش والدین یعنی نسل اولیه که این فرزندان را تولید کرده اند نسل جدید تولید خواهد شد. این مراحل تا جایی تکرار میشود که نسل حاضر به جواب بهینه یا یکی از زیر جوابهای بهینه همگرا گردد.(ایبن و اسمیت[۲۲]،۲۰۰۳)