Предсказание рынка на основе макроэкономических показателей - страница 12
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
справедливо лишь для того ограниченного класса моделей, которому тебя обучили "твои университеты".
В университетах я это не изучал. Я самоучка. Думаю своими мозгами. Всё подвергаю сомнению и перепроверке. Необходимость стационарности само пришло ко мне после неудачных множетсвенных попыток получить модель на нестационарных данных. Могу подробно доказать, но времени жалко так как все останутся при своих мнениях.
Мой инетерес к этому топику возник после просмотра рыночных новостей, где профессор Steve Keen хвастался как его экономическая модель предсказала крах 2008 года, а DSGE модель изпользуемая фед резёрв банком ничего не предсказала. Я занялся изучением DSGE модели и модели Кина. Для желающих пройти по моему пути, советую начать вот с этой матлабовской статьи о DSGE модели. Там есть все необходимые коды, включая код подкачки экономических данных из фед резёрв базы данных FRED:
http://www.mathworks.com/help/econ/examples/modeling-the-united-states-economy.html
Федовская модель изпользует следующие предсказатели:
Потом посмотрите ютюб лекции Стива Кина:
https://www.youtube.com/watch?v=aJIE5QTSSYA
https://www.youtube.com/watch?v=DDk4c4WIiCA
https://www.youtube.com/watch?v=wb7Tmk2OABo
и почитайте его статьи.
/go?link=http://www.ideaeconomics.org/minsky/
ProfSteveKeen
А для слаборазвитых на удобочитаемом языке
Для немцев :)
https://translate.google.com.ua/translate?sl=en&tl=ru&js=y&prev=_t&hl=ru&ie=UTF-8&u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSteve_Keen&edit-text=
Итак, задача предсказать S&P 500 индекс на основе имеющихся экономических показателей.
Шаг 1: Находим показатели. Показатели имеются в общем доступе здесь: http://research.stlouisfed.org/fred2/ Их там 240 тысяч. Самым главным является рост GDP. Этот показатель расчитывается каждый квартал. Отсюда наш шаг - 3 месяца. Все индикаторы на более коротком периоде перерасчитываются на 3-х месячный период, остальные (годовые) отбрасываются. Отбрасываем также показатели для всех стран кроме США и показатели, у которых нет глубокой истории (по крайней мере 15 лет). Итак кропотливым трудом отсеиваем кучу показателей и получаем порядка 10 тыс показателей. Формулируем более конкретную задачу прдесказать S&P 500 индекс на один или два квартала вперёд имея в наличии 10 тыс экономических показателей с квартальным периодом. Я делаю всё в МатЛабе, хотя можно и в R.
Шаг 2: Преобразуем все данные к стационарному виду путём дифференцирования и нормирования. Методов тут много. Главное чтобы из преобразованных данных можно было восстановить первоначальные данные. Без стационарности не одна модель работать не будет. S&P 500 ряд до и после преобразования показан внизу.
Шаг 3: Выбираем модель. Можно нейронную сеть. Можно много-переменную линейную регрессию. Можно много-переменную полиномную регрессию. После опробования линейных и нелинейных моделей приходим к выводу что данные настолько зашумлены что вписывать нелинейную модель смысла нет т.к. y(x) граф, где y = S&P 500 и x = один из 10 тыс показателей, бредставляет собой почти круглое облако. Таким образом формулируем задачу ещё более конкретно: предсказать S&P 500 индекс на один или два квартала вперёд имея в наличии 10 тыс экономических показателей с квартальным периодом используя много-переменную линейную регрессию.
Шаг 4: Выбираем из 10 тыс экономических показателей наиболее главные (уменьшаем размерность задачи). Это самый главный и трудный шаг. Допустим берём историю S&P 500 длинной в 30 лет (120 кварталов). Чтобы представить S&P 500 в виде линейной комбинации экономических показателй разного рода, достаточно иметь 120 показателей чтобы точно описать S&P 500 за эти 30 лет. Причём показатели могут быть совершенно любыми чтобы создать такую точную модель из 120 показателей и 120 значений S&P 500. Значит нужно уменьшать количество входов ниже количества описываемых значений функции. Например ищем 10-20 наиболее важных показателей-входов. Такие задачи описания данных небольшим количеством входов, выбранных из огромного количества кандидатов-базисов (словаря), называются разряжённым кодированием (sparse coding).
Методов отбора входов-предсказателей много. Я перепробовал их все. Вот главные два:
Вот первые 10 индикаторов с максимальным коэффициентом корреляции с S&P 500:
Вот первые 10 индикаторов с максимальной взаимной информацией с S&P 500:
Lag это задержка входного ряда по отношению к моделируемому ряду S&P 500. Как видно из этих таблиц, разные методы выбора наиважнейших входов приводят к разным наборам входов. Так как моей конечной целью является минимизация ошибки модели, то я выбрал второй метод выбора входов, т.е. перебор всех входов и выбор того входа который дал наименьшую ошибку.
Шаг 5: Выбираем метод расчёта ошибки и коэффициентов модели. Наипростейшим методом является метод СКО, поэтому линейная регрессия, использующая этот метод, так популярна. Проблема метода СКО в том что он чувствителен к выбросам (outliers), т.е. эти выбросы существенно влияют на коэфициенты модели. Чтобы уменьшить эту чувствительность, вместо суммы квадратов ошибок можно использовать сумму абсолютных значений ошибок, что ведёт к методу наименьших модулей (МНМ) или robust regression. Этот метод не имеет аналитического решения для коэффициентов модели в отличие от линейной регрессии. Обычно модули заменяются на плавные/дифференцируемые аппроксимирующие функции и решение ведётся численными методами и долго. Я пробовал оба метода (лин регрессии и МНМ) и особого преимущества МНМ не заметил. Вместо МНМ, я пошёл в обход. На втором шагу получения стационарных данных путём их дифференцирования, я добавил операцию нелинейной нормализации. То есть, исходный ряд x[1], x[2], ... x[i-1], x[i] ... сначала преобразуется в ряд разниц x[2]-x[1] ... x[i]-x[i-1] ... и потом каждая разница нормализуется путём её замены на sign(x[i]-x[i-1])*abs(x[i]-x[i-1])^u, где 0 < u < 1. При u=1, мы получаем классический метод СКО с его чувствительностью к выбросам. При u=0, все значения входного ряда заменяются на бинарные значения +/-1 практически без выбросов. При u=0.5, получаем что-то близкое к МНМ. Оптимальное значение u лежит где-то между 0.5 и 1.
Следует отметить что одним из популярных методов преобразования данных к стационарному виду является замена значений ряда на разницу логарифмов этих значений, т.е. log(x[i]) - log(x[i-1]) или log(x[i]/x[i-1]). Выбор такого преобразования опасен в моём случае так как в словаре 10 тыс входов много рядов с нулевыми и отрицательными значениями. Логарифм также имеет преимущетсво уменьшения чувствительности метода СКО к выбросамы По существу, моя функция преобразования sign(x)*|x|^u имеет ту же цель что и log(x), но без проблем связанных с нулевыми и отрицательными значениями.
Шаг 6: Расчитывем предсказание модели путём подстановки свежих входных данных и расчёта выхода модели используя те же коэффициенты модели, кторые были найдены линейной регрессией на предыдущем участки истории. Тут важно иметь в виду что квартальные значения экономических показателей и S&P 500 приходят почти одновременно (с точностью до 3 месяцев). Поэтому чтобы предсказать S&P 500 на следующий квартал, модель должна быть построена между текущим квартальным значением S&P 500 и входами задержанными по крайней мере на 1 квартал (Lag>=1). Чтобы предсказать S&P 500 через один квартал вперёд, модель должна быть построена между текущим квартальным значением S&P 500 и входами задержанными по крайней мере на 2 квартала (Lag>=2). И так далее. Точность предсказаний существенно снижается с увеличением задержки больше 2.
Шаг 7: Проверяем точность предсказаний на предыдущей истории. Первоначальная методика описанныя выше (вписываем каждый вход в предыдущую историю, выбираем вход дающий наименьшую СКО и рассчитывем предсказание по свежему значению этого входа) дала СКО предсказания, которая была ещё хуже чем случайные или нулевые предсказания. Задался таким вопросом: а почему вход, который хорошо вписался в прошлое, должен иметь хорошую предсказуемую способность будущего? Имеет смысл выбирать входы модели на основе их предыдущей ошибки предсказаний, а не на основе наименьшей ошибки регрессии на известных данных.
В конце концов, моя модель может быть пошагово описанa так:
Вкратце, выбор предсказателя зависит от его СКО предсказний предыдущих значений S&P 500. Заглядывания в будущее нет. Предсказатель может меняться по времени, но в конце тестируемого отрезка он в основном перестаёт меняться. Моя модель выбрала PPICRM с задержкой в 2 квартала как первый вхoд для предсказания Q2 2015. Линейная регрессия S&P 500 выбранным входом PPICRM(2) за 1960 - Q4 2014 показана внизу. Чёрные кружки - линейная регрессия. Разноцветные кружки - исторические данные за 1960 - Q4 2014. Цвет кружка означает время.
Предсказания S&P 500 в стационарном виде (красная линия):
Предсказания S&P 500 в исходном виде (красная линия):
Из графика видно что модель предсказывает рост S&P 500 во втором квартале 2015 года. Добавление второго входа увеличивают ошибку предсказаний:
1 err1=0.900298 err2=0.938355 PPICRM (2)
2 err1=0.881910 err2=0.978233 PERMIT1 (4)
где err1 это ошибка регрессии. Очевидно что она уменьшается от добавления второго входа. err2 это средне-квадратичная ошибка предсказания, делённая на ошибку случайных предсказаний. То есть err2>=1 означает что предсказание моей моделью не лучше чем случайные предсказания. err2<1 означает что предсказание моей моделью лучше чем случайные предсказания.
PPICRM = Producer Price Index: Crude Materials for Further Processing
PERMIT1 = New Private Housing Units Authorized by Building Permits - In Structures with 1 Unit
Описанная выше модель может быть перефразирована таким образом. Собираем 10 тыс экономистов и просим их предсказать рынок на квартал вперёд. Каждый экономист проходит со своим предсказанием. Но вместо того чтобы выбрать какое-то предсказание на основе количества написанных ими учебников или полученных Нобелевских премий в прошлом, мы ждём несколько лет, собирая их предсказания. После существенного количества предсказаний, мы видим какой экономист более точный и начинаем верить его предсказаниям до тех пор пока какой-нибудь другой экономист не превзойдёт его по точности.
Ответ то простой - торгуйте на годовых таймфреймах....
Шутка что ли?
:-) ну не знаю.... если анализ идет на годах..... то не знаю уж на чем торговать... на м5 вряд ли это будет иметь какой-то практический эффект...
Как вариант, попробуйте свои выкладки применить к Н4...
gpwr:
...После существенного количества предсказаний, мы видим какой экономист более точный и начинаем верить его предсказаниям до тех пор пока какой-нибудь другой экономист не превзойдёт его по точности...
Мнмм, это как бы противоречит Талебу с его чёрным лебедем. Как экономисты которые хорошо предсказывают в одних условиях могут предсказать крах?
Вернее не как, а почему это произойдёт? ведь они вполне уверены в своей правоте, с чего они будут эту правоту пересматривать, вот и получим лемингов с энтузиазмом несущихся в пропасть.
Вот статья Кина о его модели:
http://keenomics.s3.amazonaws.com/debtdeflation_media/papers/PaperPrePublicationProof.pdf
Хотя я сразу скажу что мне его модель не нравится. Её целью является обьяснение экономических циклов и крахов, а не предсказание рынка или экономических показателей как GDP с какой то точностью. Например, его модель предсказала что рост долга населения приведёт к краху экономики. Но когда точно его модель не предсказала. Она также не способна предсказать что произойдёт после краха. Все его теоретические кривые уходят в бесконечность и там сидят неопределённое время хотя рынок и экономика в США восстановились в 2009 году. Наверно поэтому он продолжает быть очень негативным по поводу этого восстановления, не веря в него и утверждая что наступает великая депрессия похуже чем в Японии, длившаяся два десятилетия. Мне кажется что эта проблема всех динамических экономических моделей: их трудно стабилизировать и если они становятся нестабильными то зацикливают и предсказать будущее больше не могут. Хотя известный хедж фонд наняли Кина как эконимического советника.