logo
logo
Динамика курсов валют. [Дмитрий 02/07/2002 18:32]
Не надо так всё усложнять. Эдак мы и до сплайновой интерполяции договоримся :-)
Не знаю, как Вы строите экстраполирующую прямую, но возможно, при вычислениях у Вас есть ошибка или неточность, потому что графики получаются какие-то странные - относительно ровные на реальных значениях и резко задранные вверх или вниз на прогнозах, хотя реально такой тенденции нет.
Предлагаю такое решение: За указанный период времени на вкладке "Графики" (ось X построения графика) берётся сумма разностей соседних значений по Y(n и n+1) и делится на указанный период. Получается величина наклона экстраполирующей прямой. Далее строится эта прямая на интервал НЕ БОЛЕЕ того, за какой учитывались значения, а за этим интервалом прямая строится пунктиром (т.е. недостоверный прогноз).
Таким образом, получаем
- простоту реализации. При одном значении курса валют в месяц для получения прогноза нужно 12 вычитаний, 12 сложений, 1 деление.
- исключение долгосрочных прогнозов на краткосрочных данных, как в приведённом Вами примере.
Кстати, в приведённом Вами примере нельзя дать вообще никакой прогноз - ни линейным, ни параболическим ни каким либо другим методом. Экстраполяция должна отражать ТЕНДЕНЦИЮ изменения курса, а спрогнозировать резкие колебания не сможет ни один математический метод, иначе бы мы купались в золоте :-). Указанный  вариант можно исключить, например, принудительным показом недостоверности прогноза (пунктиром) независимо от интервала выборки данных при падении прогнозируемого курса ниже 0 на интервале показа графика.
Этот же алгоритм, я думаю, можно применить для интерполяции (с определенными оговорками, естественно).
Математиков за столь вольную трактовку экстраполяции прошу сильно меня не пинать.
 
Dervish: Собственно, я потому и выделил прогнозируемые участки пунктиром, что они заведомо недостоверны. Абсолютно согласен с утверждением, что невозможна точная интерполяция, посему, быть может и не стоит особо копья ломать? Я затронул эту тему только лишь потому, что отрицательный курс выглядит на графике очень настораживающе, именно поэтому и возникает у меня желание исправить это, но (!) только это.
 
Если же говорить об эффективности, то, думаю, у Вас всё-таки нет нареканий на скорость работы программы. А сложность программы от такой переделки уменьшится несущественно.