2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

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

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Разделить линейные тренды.
Сообщение07.12.2012, 13:25 


30/03/12
130
Доброго времени суток. Задача следующая: дан набор точек, отражающий зависимость одной случайной величины от другой(ошибки распределены нормально). Известно, что зависимость линейна, но на разных участках различна. Пример на рисунке ниже:
Изображение
Как определить точку, где зависимость меняется?

 Профиль  
                  
 
 Re: Разделить линейные тренды.
Сообщение07.12.2012, 13:32 
Заслуженный участник
Аватара пользователя


18/05/06
13440
с Территории
Я бы делал так.
1. Прикинуть место на глаз.
2. Провести прямую по левым точкам (т.е. слева от места), другую по правым.
3. Найти место, где пересекаются прямые.
4. А сами прямые стереть.
5. См. п.2.

 Профиль  
                  
 
 Re: Разделить линейные тренды.
Сообщение07.12.2012, 13:38 


30/03/12
130
ИСН в сообщении #655459 писал(а):
1. Прикинуть место на глаз.

А можно это как-то в автоматическом режиме сделать? Сложность алгоритма на данный момент не важна.

 Профиль  
                  
 
 Re: Разделить линейные тренды.
Сообщение07.12.2012, 14:16 
Заслуженный участник


11/05/08
32166
Euler7 в сообщении #655463 писал(а):
А можно это как-то в автоматическом режиме сделать?

Рассмотрите целевую функцию $L(x)=a_0+a_1x+a_2|x-c|$, где $c$ -- настроечный параметр. Запрограммируйте функцию $r(c)$, которая для каждого входного $c$ находит оптимальный набор коэффициентов $a_k$ по стандартной схеме МНК и возвращает соответствующую этим коэффициентам сумму квадратов отклонений $r$ (фактически это должна быть процедура вида $p(c, r, a_0,a_1,a_2)$, где параметр $c$ -- входной, а все остальные -- выходные). Ну и минимизируйте зависимость $r(c)$ -- например, тупо делением отрезков на три.

 Профиль  
                  
 
 Re: Разделить линейные тренды.
Сообщение07.12.2012, 16:46 
Заслуженный участник
Аватара пользователя


11/03/08
10035
Москва
Можно попробовать пошаговой регрессией. Регрессоры имеют вид
$x_0=i$
$$
x_i=\begin{cases}
0,&\text{если $x < i$;}\\
x-i,&\text{если $x \ge i$.}
\end{cases}
$$
Но если шум мал - находите вторую производную $-x_{t-1}+2x_t-x_{t+1}$ и смотрите, где самый большой пик...

-- 07 дек 2012, 16:52 --

С большим шумом могут быть ложные срабатывания.
Да, и поскольку только один перелом - достаточно использовать регрессию на две переменные $x_0$ и $x_i$, перебирая разные точки перелома i. Где максимальное R - там и был перелом.

 Профиль  
                  
 
 Re: Разделить линейные тренды.
Сообщение07.12.2012, 20:58 
Заслуженный участник


11/05/08
32166

(Оффтоп)

Евгений Машеров в сообщении #655536 писал(а):
С большим шумом могут быть ложные срабатывания.

Они мало того что могут быть -- они практически обязаны возникать. Как-то наивно надеяться на сглаживание тренда сравнением значений по всего лишь трём соседним точкам.

 Профиль  
                  
 
 Re: Разделить линейные тренды.
Сообщение08.12.2012, 11:08 
Заслуженный участник
Аватара пользователя


11/03/08
10035
Москва
Ну да, такой простой и наивный подход работает, если СКО шума невелико в сравнении с разностью наклона линий тренда. Для экономики или медицины нереал, в технике иногда бывает. Сглаживание иногда помогает, но вносит эмпиризм и произвол. Так что при зашумленных данных помогает скорее регрессия. Для одного перелома - даже вручную посчитать можно. А для поиска нескольких переломов пошаговая регрессия работает недурно.

 Профиль  
                  
 
 Re: Разделить линейные тренды.
Сообщение09.12.2012, 18:46 
Заслуженный участник
Аватара пользователя


11/03/08
10035
Москва
Тут topic45996.html что-то похожее обсуждалось...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group