۳-۳-۳-۱- کاهش ستونی داده ها با بهره گرفتن از روش رگرسیون پله ای[۲۴۱]
در بین اندیکاتورهای ساخته شده در بخش قبلی، تعداد محدودی از اندیکاتورها برای پیش بینی قیمت سهم مورد نظر مفید هستند. برای تشخیص اینکه کدامیک از اندیکاتورهای قابلیت پیش بینی قیمت سهم را دارند، از روش رگرسیون پله ای استفاده می کنیم. روش رگرسیون پله ای به دو صورت پیش رو[۲۴۲] و پس رو[۲۴۳]،قابلیت هر یک از اندیکاتورها را برای پیش بینی قیمت می سنجد.
در این پژوهش از روش پیش رو برای انتخاب متغیرهای تأثیرگذار استفاده می گردد. در این روش، در ابتدا در مدل هیچ متغیری وجود ندارد؛ سپس متغیرها یک به یک به مدل وارد شده و توسط آزمون t-statistic و آزمون F-statistic در مورد باقی ماندن یا نماندن متغیر اضافه شده تصمیم گرفته می شود. با این روش، اندیکاتورهایی که توانایی پیش بینی قیمت سهم را ندارند از میان داده ها شناسایی شده و حذف می شوند. این مرحله، اولین مرحله کاهش ستونی در پایگاه داده برای کاهش حجم ورودی های شبکه عصبی برای پیش بینی قیمت سهام است.
۳-۳-۳-۲- دسته بندی اندیکاتورها و انتخاب از هر دسته
در میان اندیکاتورهای باقیمانده در پایگاه داده، رفتار بسیاری از اندیکاتورها شبیه به هم است. همانگونه که در جدول (۳) دیده شد، بسیاری از اندیکاتورها از مقادیر یکدیگر استفاده می کنند؛ برای مثال اندیکاتورهای KST و Coppok Curve از روی اندیکاتور ROC ساخته شده و انتظار می رود که همبستگی بالایی با یکدیگر داشته باشند. در این مرحله، اندیکاتورهای مشابه یکدیگر توسط معیار Correlation شناخته شده و در یک دسته قرار می گیرند. بنابراین پس از انجام این اقدامات، به جای چندین اندیکاتور منفرد، چند دسته اندیکاتور وجود خواهد داشت.
در قدم بعدی، از میان هر دسته بهترین پیش بینی کننده انتخاب می گردد. برای این کار نیز از معیار Correlation استفاده می شود، به این معنا که در هر دسته، آن اندیکاتوری انتخاب می شود که بیشترین Correlation را با قیمت سهم دارد. این مرحله، قدم دوم در کاهش ستونی داده ها به حساب آمده و اندیکاتورهای نهایی که برای پیش بینی استفاده خواهند شد، مشخص می شوند.
۳-۳-۳-۳- انتخاب از میان سری های زمانی مشابه
در مرحله قبل، اندیکاتورهای نهایی انتخاب شدند. در این مرحله باید از میان سری های زمانی با lag بهینه یکی را انتخاب کرد. برای این مهم نیز از معیار Correlation استفاده خواهد شد. بر این پایه، سری زمانی قیمت سهمی انتخاب می گردد که دارای بالاترین Correlation برای قیمت های بسته شدن با سهم مورد نظر باشد. لذا در پایان این مرحله، آخرین ورودی شبکه عصبی برای پیش بینی قیمت سهام نیز شناسایی شده و نهایی می شود.
۳-۴- طراحی شبکه عصبی برای پیش بینی قیمت سهم
۳-۴-۱- ساختار شبکه
برای درک مفهوم کارکرد شبکه عصبی و انتخاب طراحی مناسب برای آن، می توان شبکه عصبی را مجموعه ای از نرون ها دانست که هریک از آنها یک خط برای برازش به سری زمانی داده ها پیشنهاد می دهد. همانگونه که می دانیم، مجموع چند خط تشکیل یک نمودار غیر خطی را می دهد و لذا می توان شبکه های عصبی را به صورت مجموعی از چند خط که هر کدام در یک نرون ساخته شده اند دانست. در جریان آموزش نرون ها، هر نرون خطی بهینه را به داده ها برازش می کند و هر نرون قسمتی از داده ها را پوشش می دهد و در نهایت با جمع این نرون ها، یک نمودار غیر خطی که همه داده ها را پوشش می دهد به دست می آید. حال اگر شبکه عصبی بیشتر از یک لایه مخفی داشته باشد، در واقع هر چند خطی که توسط نرون ها در لایه اول ساخته و بهینه شده برای قسمتی از داده ها هستند، در لایه بعد در نرون های دیگر جمع می شوند. بنابراین در هر نرون لایه مخفی بعدی، یک نمودار غیر خطی خواهیم داشت و سپس چند نمودار غیر خطی با یکدیگر جمع خواهند شد.
باید دقت شود که لایه های میانی بالاتر از یک، برای زمانی است که بین ورودی های شبکه interaction وجود داشته باشد. برای مثال ورودی x و ورودی y تأثیر کمتری از x+y دارند، به این معنا که تأثیر هر دو ورودی ها در مجموع برابر x+y+xy خواهد بود. در این حالت، نرون های لایه های مخفی دوم، این فرصت را به شبکه می دهند که رابطه های مخفی شبیه xy را هم جداگانه تخمین بزنند.
با توجه به اینکه در بخش پیش پردازش داده ها، داده های مشابه حذف شده و در چند مرحله تلاش شده است که ورودی ها مستقل از یکدیگر باشند، در این پژوهش فرض را بر عدم وجود interaction بین ورودی ها گذاشته و از شبکه عصبی تک لایه استفاده می کنیم. دلیل این احتیاط این است که شبکه های عصبی چند لایه معمولا دچار بیش برازش شده و دقت مدل را کاهش می دهند.
حال در مورد تعداد نرون های حاضر در لایه میانی نیز از قاعده کولموگروف[۲۴۴] استفاده خواهیم کرد. بر طبق این قاعده، بیشترین تعداد نرون لازم برای تخمین بهینه می تواند ۲n+1 باشد، به این معنا که با این تعداد نرون و شاید در تعداد پایین تر، عملکرد شبکه به بالاترین حد می رسد، اما بیشتر از آن شبکه را دچار بیش برازش کرده و دقت آن را کاهش می دهد. بنابراین تعداد نرون های لایه میانی شبکه، از این قاعده پس از مشخص شدن تعداد ورودی ها تعیین می گردد.
از آنجا که در این تحقیق سعی شده است که قیمت برای یک دوره جلوتر پیش بینی گردد، شاید معقول نباشد که تنها قیمت بسته شدن سهم را برای دوره بعدی پیش بینی کرد؛ کاری که در تمام تحقیقات مشابه انجام شده است. دلیل این امر این است که با دانستن قیمت بسته شدن سهم، نمی توان فهمید که سهم را چه زمانی باید خرید. به عبارتی، در صورتی که امروز پیش بینی کنیم که قیمت سهمی فردا بالا خواهد رفت، چه استفاده ای می توان از این پیش بینی کرد؟ چرا که پیش بینی کننده سهمی در اختیار ندارد و اگر بخواهد فردا آن را بخرد ممکن است با همان قیمت که پیش بینی کرده است بخرد و لذا سودی نخواهد کرد. بنابراین در این پژوهش دو قیمت برای دوره بعدی انتخاب می شود، یکی قیمت پایین و یکی قیمت بالا. این ابتکار این فرصت را به پیش بینی کننده می دهد که در قیمت پایین سهم را خریده و در قیمت بالا بفروشد و از این طریق کسب سود کند. لذا شبکه عصبی که در این تحقیق ساخته می شود، یک شبکه عصبی با یک لایه پنهان با ۲n+1 نرون و دو خروجی و n ورودی خواهد بود.
همچنین شکل ساختاری شبکه نیز اتورگرسیو با متغیر خارجی[۲۴۵] (NARX) انتخاب می شود. در این شبکه ها علاوه بر متغیرهای ورودی خارجی که در این تحقیق همان اندیکاتورها و سری زمانی مشابه است، قیمت های قبلی نیز برای پیش بینی استفاده می شوند. لذا ورودی های شبکه عصبی عبارتند از اندیکاتورهای انتخاب شده نهایی با lag بهینه، قیمت های بالا و پایین سری زمانی مشابه با lag بهینه و قیمت های بالا و پایین گذشته سهم با lag بهینه. Lag بهینه از طریق تکنیک های سری زمانی شناخته و استفاده خواهد شد.
۳-۴-۲- الگوریتم یادگیری
الگوریتم یادگیری در این پژوهش بر مبنای ادبیات موضوعی تحقیق و بر پایه تحقیقات مشابه انجام شده الگوریتم پس انتشار بازگشتی یا همان Back Propagation انتخاب شده و مورد استفاده قرار می گیرد.
۳-۴-۳- توابع فعال سازی
توابع فعال سازی نیز بر پایه تحقیقات مشابه در لایه های ورودی و خروجی به صورت خطی و در لایه میانی تابع سیگموید انتخاب می شوند.
۳-۵- مدل های رقیب و معیارهای سنجش
از آنجا که در این پژوهش شبکه عصبی مورد نظر از قیمت ها و اندیکاتورهای گذشته استفاده می کند، عملکردی مشابه مدل های سری زمانی خواهد داشت و لذا با مدل های ARMA سری زمانی مقایسه خواهند شد. علاوه بر این عملکرد این شبکه، مشابه عملکرد رگرسیون چند متغیره با بهره گرفتن از اندیکاتورها و قیمت های مشابه است و لذا عملکرد شبکه عصبی با رگرسیون چند متغیره نیز مقایسه خواهد شد.
همچنین معیارهای سنجش به دو صورت MSE و MAD خواهند بود. از آنجا که دو متغیر در هر یک از سه مدل رقیب پیش بینی خواهد شد، MSE و MAD هر مشاهده در کل، برابر مجموع MSE و MAD دو خروجی خواهد بود. فرمول های محاسبه این دو معیار نیز به صورت زیر است :
۳-۳
۳-۴
۳-۶- جمع بندی
در این فصل، به بررسی مراحل انجام تحقیق پرداخته و مراحل را به صورت کلی از جمع آوری داده ها، پیش پردازش داده ها و ساخت اطلاعات، ساخت شبکه و مدل های رقیب شرح دادیم. در فصل چهارم، نتایج به دست آمده عددی از روش مذکور را شرح خواهیم داد.
فصل چهارم
نتایج عددی
۴-۱- مقدمه
در این فصل، به مرور نتایج عددی به دست آمده از تحقیق خواهیم پرداخت. توضیحات داده شده مطابق سر فصل های گفته شده در فصل سوم خواهد بود و لذا ترتیب مراتب به صورت کلی شامل جمع آوری داده ها، پیش پردازش داده ها، ساخت شبکه عصبی و ارزیابی نتایج خواهد بود. مطالب گفته شده به صورت مشروح در ادامه این فصل خواهد آمد.
۴-۲- جمع آوری داده ها و تشکیل پایگاه داده
داده های مورد نیاز این پژوهش از سایت شرکت مدیریت فناوری بورس تهران، برای سه صنعت بانکها و مؤسسات مالی، محصولات شیمیایی و فلزات اساسی جمع آوری شده است. از سایت مذکور برای هر شرکت حاضر در هر صنعت یک فایل، که حاوی اطلاعات معاملاتی و قیمتی و حجمی سهم شرکت مورد نظر می باشد استخراج شده و ذخیره می گردد.
با کامل شدن اطلاعات مورد نیاز، سه پایگاه داده برای هر صنعت شامل بانک ها و مؤسسات مالی، محصولات شیمیایی و فلزات اساسی تشکیل شده و در هر پایگاه قیمت های بالا، پایین، بسته شدن و حجم معاملات برای سهام بانک پارسیان، صنایع شیمیایی فارس و فولاد مبارکه اصفهان ایجاد می گردد. همچنین در هر پایگاه داده اطلاعات مربوط به قیمت بسته شدن برای تمامی شرکت های حاضر در همان صنعت نیز اضافه می گردد.
نکته مهم که در ساخت پایگاه داده رعایت شده است، این است که در هر پایگاه داده اطلاعات قیمتی مشترک بین تمام سهام موجود در هر صنعت ثبت می گردد. به عبارتی، اطلاعات قیمتی برای روزهایی ثبت می شود که تمام سهام آن صنعت در وضعیت فعال بوده و در حال معامله بوده اند؛ دلیل این امر این است که در برخی روزها سهم خاصی به دلایل خاصی می تواند بسته شود و معامله در آن صورت نگیرد. بنابراین در روزهایی که تمام شرکت های صنعت فعال نیستند، اطلاعات قیمتی در پایگاه داده ثبت نمی گردد. با کامل شدن سه پایگاه داده به مرحله پیش پردازش داده ها وارد می شویم.
۴-۳- پیش پردازش داده ها
۴-۳-۱- کاهش سطری داده ها
۴-۳-۱-۱- حذف رکوردهای مغشوش
همانطور که در فصل قبل ذکر شد، داده های زیادی در پایگاه داده ساخته شده، بر طبق قواعد سه گانه ذکر شده، مغشوش هستند و باید از میان پایگاه داده حذف گردند. در همین راستا، تعدادی از داده ها از هر سه پایگاه داده حذف خواهند شد. این رکوردها، از نظر منطقی مشکل داشته و شامل قواعد سه گانه مغشوش بودن داده ها می گردند، به عبارت دیگر؛ قیمت بالا در این رکوردها از قیمت پایین یا قیمت بسته شدن کمتر ثبت شده است و یا قیمت بسته شدن از قیمت پایین کمتر ثبت شده است. همچنین تعدادی از رکوردها دارای مقادیر ثبت نشده و غیر عددی مثل NaN هستند، که این داده ها نیز حذف می گردند.
در جدول ۴-۱، تعداد اولیه داده ها و تعداد آنها پس از اعمال اولین فیلتر، یعنی حذف داده های مغشوش نشان داده شده است :
جدول ۴-۱ : تغییرات تعداد رکوردهای پایگاه های ساخته شدن پس از حذف داده های مغشوش
نام پایگاه | تعداد ابتدایی داده ها در پایگاه | تعداد داده ها پس از حذف داده های مغشوش |