Кто может на словах объяснить, как устроена ARIMA(без сложных формул)? У меня есть желание и возможность сделать индикатор на этом алгоритме. - страница 2

 

Что-то застрял на авторегрессии второго порядка

Первого порядка посчитал, из примера увиденного в интернете, просто вместо x(номеров баров) поставил значения цен сдвинутых на один бар

(MQL5 индексация баров наоборот, чем в MQL4).

Расчеты совпали с примером. По сути это тот же алгоритм, что в линейной регрессии для получения a,b,c.

//расчет авторегрессии первого порядка

for(int k=i; k>i-hist; k--)
        {
         sY+=close[k];//close[k] это ряд Y, close[k-sdvig] это ряд X
         sXY+=close[k]*close[k-sdvig];
         sX+=close[k-sdvig];
         sX2+=close[k-sdvig]*close[k-sdvig];
        }

      c=sX2*hist-sX*sX;
      if(c==0.0){Alert("c==0.0");}
      b=(sXY*hist-sX*sY)/c;
      a=(sY-sX*b)/hist;//hist количество элементов для расчета
      m[i]=a+(b*close[i-sdvig]);

Попробовал считать по разному с добавлением второго ряда X2(сдвинутым на два бара назад).

Ну, никак не сходится с расчетом в эксель. А формулу в пакете "анализ данных" не достать из экселя, в интернете полно математических, но конкретного алгоритма, что на что умножить, разделить и пр. не нашел.

 
forexman77:

Что-то застрял на авторегрессии второго порядка

Первого порядка посчитал, из примера увиденного в интернете, просто вместо x(номеров баров) поставил значения цен сдвинутых на один бар

(MQL5 индексация баров наоборот, чем в MQL4).

Расчеты совпали с примером. По сути это тот же алгоритм, что в линейной регрессии для получения a,b,c.

Попробовал считать по разному с добавлением второго ряда X2(сдвинутым на два бара назад).

Ну, никак не сходится с расчетом в эксель. А формулу в пакете "анализ данных" не достать из экселя, в интернете полно математических, но конкретного алгоритма, что на что умножить, разделить и пр. не нашел.

мб попробуйте достать из alglib, там есть множественная лин. регрессия, просто кол-во признаков добавляете в матрицу

 

Два дня не спал из-за соседей сверху опять устроили проходной двор на головой, ночами гремят, бегают всякие подозрительный личности.

Нашел ресурс где по порядку раскладывается алгоритм множественной регрессии.https://math.semestr.ru/regress/corel.php

Может есть и короче пути, но пока сделал такой вариант. Теперь нужно слепить авторегрессии первого и второго порядка и сравнивать корреляцию R2 и использовать, тот порядок, где она больше.

Уравнение множественной регрессии
Уравнение множественной регрессии
  • math.semestr.ru
Основная цель множественной регрессии – построить модель с большим числом факторов, определив при этом влияние каждого из них в отдельности, а также совокупное их воздействие на моделируемый показатель. . С помощью онлайн-калькулятора можно найти следующие показатели: уравнение множественной регрессии, матрица парных коэффициентов корреляции...
Файлы:
 
Кто знает, как рассчитываются коэффициенты в ARIMA для моделей МА>2. Для моделей МА формулы не линейны и для каждого порядка разные.
 
forexman77:
Кто знает, как рассчитываются коэффициенты в ARIMA для моделей МА>2. Для моделей МА формулы не линейны и для каждого порядка разные.
Посмотри: использование метода Бокса-Дженкинса для прогнозирования временных рядов. Автор Демьянов Руслан
 
Вот ещё:
https://www.mql5.com/ru/forum/137712
 
Roman Kutemov:
Вот ещё:
https://www.mql5.com/ru/forum/137712

Много чего читал. В первоисточнике Бокса и Дженкинса описывается два метода:

1.Линейно-сходящийся процесс.

2.Квадратически сходящийся процесс.

Остановился на первом. Вот здесь есть описание стр.61 https://dlib.rsl.ru/viewer/01002804041#?page=62

Дисперсию белого шума рассчитал так:

for(i=Period_-1;i>=0;i--)//m-(Close[i]-Close[i+1), ma -простое скользящее среднее серии (m) c периодом Period_, на текущем баре
     {
      ma1+=(m[i]-ma[0])*(m[i]-ma[0]);
     }
   ma1=ma1/Period_;
   sigma=(MathSqrt(MathAbs(ma1)))*(MathSqrt(MathAbs(ma1)));

с2 нашел так:

for(i=Period_-3;i>=0;i--)
     {
      ma2+=(m[i+2]-ma[0])*(m[i]-ma[0]);
     }
   c`2=ma2/Period_-2;

Теперь пробую подставить значения, как в формуле:

θ2=c`2/дисперсия белого шума в квадрате

Получаются значения явно не коэффициенты, а acf.

Может чего не понял. Но, судя по названию все-таки коэффициенты подгоняются так же циклами, а вычисления ковариаций нужны для получения числителя из формулы нахождения белого шума.

Было бы хорошо обойтись прямыми формулами, чем циклами. Но, с формулами знаю только, как вычислить коэффициент процесса МА(1).

Просмотр документа - dlib.rsl.ru
  • dlib.rsl.ru
Для осуществления навигации по страницам используйте кнопки, находящиеся на верхней панели. Для масштабирования страницы можно использовать ползунок справа (trackbar). Для загрузки документа на компьютер используйте кнопку, находящуюся справа на верхней панели. При загрузке страницы сверху будет появляться линия прогресса загрузки. На боковой...
 
Roman Kutemov:
Посмотри: использование метода Бокса-Дженкинса для прогнозирования временных рядов. Автор Демьянов Руслан

Хотите прикол. https://machinelearningmastery.com/arima-for-time-series-forecasting-with-python/

Очень похоже. Даже картинки одни и теже. В интернете практически все одно и тоже, как попугаи повторяют. Как стих выучат совершенно не понимая, что там на самом деле.

Или только теорию знают, когда касается практического применения впадают в ступор.

How to Create an ARIMA Model for Time Series Forecasting in Python
How to Create an ARIMA Model for Time Series Forecasting in Python
  • Jason Brownlee
  • machinelearningmastery.com
A popular and widely used statistical method for time series forecasting is the ARIMA model. ARIMA is an acronym that stands for AutoRegressive Integrated Moving Average. It is a class of model that captures a suite of different standard temporal structures in time series data. In this tutorial, you will discover how to develop an ARIMA model...
 
Вот ещё 
http://masters.donntu.org/2007/fvti/karpunova/diss/index.html
 

Интернетом пользоваться умею, ссылок достаточно. Если есть, что по теме, а именно, как находятся коэффициенты для различных порядков МА(q), то можно и ссылку разместить.

Если хотите написать, что-то вроде "да это же очевидно",  "проще простого",  "что там сложного не пойму" и в довершение еще кучу ссылок прилепть, типа вот читай)

То лучше ничего не пишите, не засоряйте ветку. Мне уже достаточно лет, не надо мне морочить голову и поддаваться на эти игры не буду))

Причина обращения: