پیش بینی قیمت سهام با استفاده از مدل ARIMA در r

ساخت وبلاگ

با ظهور بسیاری از سرمایه گذاران در سهام و فضای بازار رمزنگاری. ایجاد برنامه ای که بتواند قیمت بازار را برای کمک به سرمایه گذاران پیش بینی کند ، بسیار عالی خواهد بود.

به آنها کمک کنید تا بهترین تصمیم را در مورد اینکه آیا زمان مناسب برای سرمایه گذاری است یا خیر ، تصمیم بگیرند تا بتوانند سود یا پول بیشتری کسب کنند.

معرفی

مدل ARIMA یکی از مفیدترین و دقیق ترین مدل های سری زمانی در پیش بینی در مورد روندهای آینده است. در مورد ما قیمت بازار سهام را با استفاده از زبان برنامه نویسی R پیش بینی خواهیم کرد.

فهرست مطالب

  • پیش نیازها
  • وارد کردن داده های مالی یاهو در r
  • نمودار سهام
  • همبستگی داده ها را تجزیه و تحلیل کنید
  • داده های متفاوت برای ثابت بودن
  • آزمایش ثابت را با استفاده از آزمایش ریشه واحد انجام دهید
  • ساخت مدل آریما
  • متناسب با مدل Arima و پیش بینی

پیش نیازها

برای دنبال کردن با این آموزش ، خواننده به موارد زیر نیاز دارد:

  • دانش اساسی در مورد سری زمانی و نحوه عملکرد مدل های مختلف سری.
  • R Studio را روی رایانه شخصی خود نصب کنید.
  • دانش اساسی در مورد چگونگی تجزیه و تحلیل و تفسیر نمودارها.

وارد کردن داده های مالی یاهو در r

در این آموزش ، ما قصد داریم پیش بینی قیمت سهام را با استفاده از قیمت سهام آمازون نشان دهیم ، ما از نماد NASDAQ استفاده خواهیم کرد: AMZN که با استفاده از بسته QuantMod در R. به مالی یاهو وارد می شود.

داده ها از نوع OHLC (باز ، بالا ، پایین و بسته) تشکیل شده است ، اما به خاطر سادگی ما از قیمت نزدیک استفاده خواهیم کرد تا مدل خود را به یک سری زمانی متغیره تبدیل کنیم.

ما باید بسته های Quantmond را با استفاده از آن نصب کنیم.

نصب("QuantMod") 

installing quantmod

پس از نصب بسته QuantMod ، کتابخانه را باز کنید تا با استفاده از این کتابخانه کد (QuantMod) آن را فعال کنید.

activating quantmod

سپس برای وارد کردن داده های آمازون ، از عملکرد GetSymbols () استفاده کنید.

importing amazon data

نمودار سهام

برای شروع تجزیه و تحلیل سهام ، ما باید شاخص های فنی مانند میانگین حرکت ، باند بولینگر (20 ، SD = 1) ، شاخص قدرت نسبی 14 روز و حرکت میانگین واگرایی همگرایی (12 ، 25) را به عنوان ابزارهای فنی تجزیه و تحلیل اضافه کنیم. قبل از پیش بینی

stock charting

graph

برای آسانتر کردن تجزیه و تحلیل ما ، ما یک تغییر ورود به سیستم داده ها را انجام می دهیم تا نرخ رشد سهام را به تصویر بکشد و مقدار واحد را مطابق شکل زیر مقیاس کند.

ترسیم تغییر ورود به سیستم داده ها:

log

log transformation

سهام روند صعودی را نشان می دهد ، اما یک روند نزولی جزئی نیز وجود دارد که نشان می دهد نوسانات بالایی وجود دارد به این معنی که داده ها مانند اکثر داده های مالی غیر ثابت هستند.

بنابراین، می توانیم فرض کنیم که این یک پیاده روی تصادفی است. به این معنی که قیمت فعلی برابر با قیمت در زمان (t-1) به اضافه نویز سفید است، بنابراین برای برازش داده ها در مدل ARIMA، باید داده ها را در یک تاخیر خاص متمایز کنیم.

differencing log data

همبستگی داده ها را تجزیه و تحلیل کنید

ما تابع AutoCorrelation (ACF) و AutoCorrelation جزئی را تجزیه و تحلیل انجام می دهیم تا ببینیم آیا همبستگی بین قیمت امروز و دیروز وجود دارد یا خیر.

داده های متفاوت برای ثابت بودن

اکنون که می دانیم داده های ما ثابت نیستند، باید آن ها را با متمایز کردن آن در یک تاخیر مشخص ثابت کنیم تا با مدل ARIMA ما مطابقت داشته باشد.

ثابت کردن داده ها از این جهت مهم است که به ما کمک می کند پیش بینی کنیم که ویژگی های آماری گذشته داده های ما در آینده ثابت خواهند ماند. در اینجا، داده های تبدیل شده با log با 1 تاخیر تفاوت می کنند تا ثابت شوند.

ما باید مطمئن شویم که مقادیر از دست رفته را با مقادیری از مشاهدات بعد از مقدار گم شده پر می کنیم.

differencing data to be stationary

آزمایش ثابت را با استفاده از آزمایش ریشه واحد انجام دهید

پس از تمایز داده ها در تأخیر 1 و ثابت ماندن داده ها، با استفاده از Unit Root Testing آزمایش می کنیم که آیا داده ها ثابت هستند یا خیر.

ما این را با استفاده از تست دیکی فولر افزوده آزمایش خواهیم کرد. این فرضیه داده های ثابت را آزمایش می کند.

اگر مقدار p زیر 0. 05 باشد، فرض صفر را رد می کنیم و نتیجه می گیریم که داده ها ثابت هستند. ما قصد داریم داده های متفاوت خود را آزمایش کنیم.

برای انجام این کار، بسته tseries را با استفاده از کتابخانه (tseries) فعال کنید، سپس با استفاده از تست adf را انجام می دهیم:

adfadf. test(AMAZON_diff، جایگزین=c("ایستا"، "منفجره")، ک=0)  adf 

doing stationary test

مقدار p 0. 01 است به این معنی که داده های ما اکنون ثابت هستند و ریشه واحد ندارند و آن را برای مدل ARIMA ما مناسب می کند.

برای بررسی اینکه آیا داده های ما می توانند در مدل AutoRegressive و فرآیند MA قرار بگیرند، همبستگی ACF و PACF را با استفاده از توابع acf و pacf به شرح زیر تولید می کنیم.

برای آموزش مدل خود باید داده های آموزشی خود را از دوره اول تا دوره 3355 که از 3 ژانویه 2013 تا 12 مارس 2022 است به زیر مجموعه ها تقسیم کنیم.

سپس کتابخانه caTools را با استفاده از;

نصب(“caTools”) 

caTools کتابخانه را فعال کنید:

برای انتخاب داده های قطار خود، از

differencing log data

ساخت مدل آریما

مدل ARIMA در R در بسته "پیش بینی" یافت می شود که ابتدا آن را نصب و سپس به صورت زیر فعال می کنیم:

نصب("پیش بینی") 

Auto. arima برای تولید مدل ARIMA استفاده می شود.

generating ARIMA model

برای بررسی خلاصه ای از بهترین مدل ARIMA ما، از:

summary for our model

We then check for any residual in our ARIMA model, and judging by the Ljung-Box test, we conclude that the p-value>0. 05 (ناچیز). این بدان معنی است که باقیمانده های مدل مستقل هستند و همبستگی ندارند. این بدان معناست که ما مجبور نیستیم با استفاده از مدلهایی مانند GARCH ، مدل سازی نوسانات را انجام دهیم ، که معمولاً در داده های مالی با مشکل ناهمسانگردی استفاده می شود.

checking for residuals

با فرض اینکه Arima (0،0،2) مدل ما است ، روزهای جلو یک خط مستقیم را نشان می دهد که نشان می دهد مدل ARIMA ما نیز متناسب است و قرار است یک توزیع عادی را دنبال کند و باید ثابت باشد.

طرح باقیمانده های ما از مدل ARIMA ما پیش بینی ما را برای 100 نشان می دهد.

residuals form ARIMA

متناسب با مدل Arima و پیش بینی

اکنون ، برای قرار دادن مدل در مجموعه داده های آموزش ، ما استفاده می کنیم.

fitting our model

اکنون می توانیم با استفاده از بسته پیش بینی با H = 100 ، 100 روز آینده پیش بینی خود را انجام دهیم.

و ما می توانیم پیش بینی خود را با استفاده از طرح (پیش بینی) ترسیم کنیم.

plotting our forecast

و سپس باقیمانده ها را در مدل ما با استفاده از checkresiduals (ARIMA) بررسی کنید.

checking residual

our arima

پیش بینی ما خواهد بود:

our forecast

این نشان می دهد که در 100 روز آینده ، افزایش قیمت سهام آمازون با حرکت جزئی نزولی در چند روز آینده و سپس افزایش تقریباً پایدار خواهد بود.

اکنون که سرمایه گذار روندهای مورد انتظار را برای 100 روز آینده در سهام آمازون می داند ، می تواند تصمیم درستی در خرید و فروش برای به حداکثر رساندن سود و جلوگیری از ضرر بگیرد. شما می توانید با استفاده از H = "زمان" پیش بینی دوره زمانی مورد نظر خود را انجام دهید.

نتیجه

ما یاد گرفتیم که چگونه قیمت سهام آمازون را با استفاده از زبان برنامه نویسی R ، انجام مدل سازی مالی و سپس استفاده از مدل های سری زمانی در پیش بینی پیش بینی کنیم. توابع مختلف خودکار وجود دارد که می توانند در مدل ها قرار بگیرند ، که در هنگام تغذیه با داده های کافی ، نتایج دقیقی را ارائه می دهند.

می توانید با استفاده از منابع زیر در مورد نحوه انجام پیش بینی در R و پایتون اطلاعات بیشتری کسب کنید.

بیشتر خواندن

  • پیش بینی سری زمانی در r
  • پیش بینی سری زمانی PluralSight در r
  • راهنمایی برای پیش بینی در r
  • پیش بینی

کمک های بررسی همسالان توسط: Jethro Magaji

حساب اسلامي...
ما را در سایت حساب اسلامي دنبال می کنید

برچسب : نویسنده : کامران فیوضات بازدید : 25 تاريخ : چهارشنبه 15 شهريور 1402 ساعت: 6:32