Анализ многомерных блужданий

denis24

Привет всем.
Что советуете почитать, каким инструментами пользоваться для того, чтобы подступиться вот к какой задаче:
есть много, сейчас 78, но теоретически это количество может увеличиться, переменных. Есть некий черный ящик, который на основании исторического поведения этих переменных вычисляет их корреляцию и волатильность, после чего генерит 1500 сценариев их поведения в будущем на горизонте в 1 год. Т.е. можно сказать, что у нас в 78-мерном пространстве существует 1500 траекторий. Для каждой такой траектории черный ящик умеет считать некую числовую меру. Т.е. на выходе мы имеем 1500 чисел. (Выглядят они примерно как нормальное распределение).
Что мы можем узнать о траектории? Мы можем задавать любое количество "реперных точек" в будущем и наш чёрный ящик скажет нам для каждого сценария значение каждой переменной в каждой заданной точке. Так мы можем сгенерить массив данных практически любого размера.
Собственно сама задача состоит в том, чтобы выяснить, какие из переменных являются "важными" для окончательного результата, а какие"не важными".
Как оценить, сколько для этого реперных точек нужно? Если взять 365, т.е. на каждый день, то мы получим массив из 365*78*1500=42 705 000 значений. Вроде, многовато. С другой стороны, если взять 2 точки - сегодня и сегодня + 1 год, то это как-то неинформативно. Значит, есть какой-то оптимальный вариант, при котором данных не избыточное количество с одной стороны и достаточное с другой. Как это можно оценить?
Как потом с этим массивом работать? М.б. есть уже какие-то готовые статистические пакеты для обработки таких данных? (Но тут загвоздка в том, что решать задачу придётся на работе, и скорее всего поставить совсем любую прогу не получится. Хотя R, как я слышал, можно поставить при необходимости).
Из инструментов есть Excel, (неплохо знаю) SAS (вообще не знаю но готов заботать). Кроме того 10 лет назад изучал статистику но с тех пор всё благополучно забыл. Но готов взботнуть любую книжку, какую посоветуете.

griz_a

Пока постановка не очень ясная. Как устроены траектории-то? Если про траектории ничего не дано, то 1500 траекторий ничуть не лучше чем просто 1500 чисел, собственно, 1500 чисел это и есть 1500 траекторий, просто постоянных :)
Нужна какая-то информация о динамике траекторий

demiurg

Ну, для начала можно principal component analysis сделать :)

griz_a

Угу, и свято верить, что у нас все точки 1500 траекторий дают вместе что-то типа 78-мерного нормального распределения. :) Угу, угу.
Я уж молчу о том, что даже в вырожденном случае, если все траектории зависят от одного параметра, а все остальное просто шум, максимизироваться выборочная дисперсия вполне может и по другому компоненту.

demiurg

Ну, во что верить — это другой совсем вопрос, а сделать можно

griz_a

Rastreador

вы все тут гуманетарии, не обольщяйтесь сильно.

Romyk

Значит, есть какой-то оптимальный вариант, при котором данных не избыточное количество с одной стороны и достаточное с другой. Как это можно оценить?
Не знаю как по теории, а на практике проще взять какое то разумное исходное количество данных , наращивать детализацию и смотреть как сходятся результаты. При этом оценивать также и реальный расход вычислительных ресурсов и выбирать оптимальное с твоей точки зрения соотношение расход/точность.
И еще - детализация зависит и от того насколько траектории гладкие, а этого ну никак по постановке задачи не оценить.

denis24

Ок, случайные переменные - процентные ставки. Траектория - изменение ставок во времени. Результат - процентный доход минус процентный расход по этим ставкам.
Просто у меня проблема в следующем. Вот я беру сценарий с наименьшим результатом и смотрю, как в нём разные ставки меняются со временем. Затем беру сценарий с наилучшим результатом и смотрю, как ставки меняются во времени. И я не вижу разницы между поведением ставок в этих сценариях.
Хотелось бы, чтобы среди 78 ставок оказалась группа ставок, от поведения которых ничего (почти ничего) не зависит. И был бы набор ставок, поведение которых сильно влияет на результат. Скажем так, в при моделировании разница между наилучшим и наихудшим сценарием может составлять 200 млн. долларов. Например, поведение малозначительных ставок приводит к отклонению от среднего результата на 20 млн., а изменение значимых ставок влияет на остальные 80 млн.
А если таких ставок нет, то как доказать, что все ставки равнозначны по их влиянию на результат.

kshangin

Сдается мне, что это задача для Principal Component Regression.

Niklz


Угу, и свято верить, что у нас все точки 1500 траекторий дают вместе что-то типа 78-мерного нормального распределения
А что, прямо совсем-совсем нельзя, чтобы распределение отличалось от нормального? Сразу же PCA бесполезен становится? :)

Niklz


Собственно сама задача состоит в том, чтобы выяснить, какие из переменных являются "важными" для окончательного результата, а какие"не важными".
А что ты понимаешь под окончательным результатом? Потому что от этого зависит какие переменные для него важны!

griz_a

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

griz_a

А как ставки-то меняются? Более-менее с нормальным\логнормальным\каким-то еще известным распределением с разными средними и дисперсиями? Более-менее независимо в разные периоды?
Надо начать с ответа на такого рода вопросы

Niklz

я правильно понимаю, что под результатом ты имееешь ввиду \sum_i,t asset_i,t * rate_i,t ?
где i пробегает от 1 до 78 и t от 1 до 1500, asset_i,t это сколько у тебя в момент t актива i по которому платится или взимается процентная ставка rate_i,t (в зависимости от того положительный или отрицательный у тебя объем актива)
динамика портфеля asset'ов тоже меняется от сценария к сценарию? или одна во всех сценариях? или вообще константа?

gala05

Ок, случайные переменные - процентные ставки. Траектория - изменение ставок во времени. Результат - процентный доход минус процентный расход по этим ставкам.
Просто у меня проблема в следующем. Вот я беру сценарий с наименьшим результатом и смотрю, как в нём разные ставки меняются со временем. Затем беру сценарий с наилучшим результатом и смотрю, как ставки меняются во времени. И я не вижу разницы между поведением ставок в этих сценариях.
Хотелось бы, чтобы среди 78 ставок оказалась группа ставок, от поведения которых ничего (почти ничего) не зависит. И был бы набор ставок, поведение которых сильно влияет на результат. Скажем так, в при моделировании разница между наилучшим и наихудшим сценарием может составлять 200 млн. долларов. Например, поведение малозначительных ставок приводит к отклонению от среднего результата на 20 млн., а изменение значимых ставок влияет на остальные 80 млн.
А если таких ставок нет, то как доказать, что все ставки равнозначны по их влиянию на результат.
Ботать матчасть по термину "переучивание" (он же overfitting)
з.ы. Как финансист финансисту, я бы не советовал работать с дневными данными в 78-мерном пространстве, гиблое дело 8)

Niklz

фигню написал, по обоим пунктам. переобучение в задаче ТС ни при чем и 1500 реализаций при 78 переменных - вполне нормальное соотношение для анализа.
я тебе больше скажу, подавляющее большинство финансовых моделей до сих пор - модели для оценки разного рода структурированных финансовых продуктов и данные при этом всегда используются подневные! :) переменных при этом от нескольких, до нескольких тысяч и периоды обычно длинные 1-30лет.
Оставить комментарий
Имя или ник:
Комментарий: