Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Добавить ответ в эту темуОткрыть тему
> Линейная регрессия для временных рядов
scholar
сообщение 9.02.2018 - 18:18
Сообщение #1





Группа: Пользователи
Сообщений: 14
Регистрация: 28.01.2018
Пользователь №: 30897



Прошу простить, что вопрос немного не медицинский. Подскажите, можно ли применять для предсказания временного ряда не стандартные методы (ARIMA, сезонные, аддитивные модели), а именно простую линейную регрессию?
вот пример данных за 30 дней. Можно ли используя только линейную регрессию предсказать значения
Заранее всем спасибо , кто подсказал.

Сообщение отредактировал scholar - 11.02.2018 - 17:23
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 9.02.2018 - 18:51
Сообщение #2





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Можно, если осторожно. В том смысле, что надо внимательно посматривать на (возможную) spurious regression.

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
passant
сообщение 9.02.2018 - 21:12
Сообщение #3





Группа: Пользователи
Сообщений: 231
Регистрация: 27.04.2016
Пользователь №: 28223



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

Сообщение отредактировал passant - 9.02.2018 - 21:14
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
scholar
сообщение 10.02.2018 - 00:29
Сообщение #4





Группа: Пользователи
Сообщений: 14
Регистрация: 28.01.2018
Пользователь №: 30897



passant, речь идет не о построении идеальной модели. А как бы сказать о самом факте
Возможно господин 100$ сможет ответить на вопрос, можно ли через lm фукцию в R сделать это и как? Учитывая что у меня тут ежедневнное(daily) предсказание на 2 недели (14 дней т.е)
Про ложную регрессию, я не слышал=(

Сообщение отредактировал scholar - 10.02.2018 - 00:35
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 10.02.2018 - 02:32
Сообщение #5





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Цитата(scholar @ 10.02.2018 - 00:29) *
...можно ли через lm фукцию в R сделать это и как?


Можно, только я не знаю, как отклик с набором предикторов оформить в виде ts(), и нужно ли это в данном случае в принципе. Впрочем, регрессию без проблем можно оценить и в Экселе, однако с интервальным прогнозом придется повозиться.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 10.02.2018 - 13:30
Сообщение #6





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Цитата(scholar @ 10.02.2018 - 00:29) *
Возможно господин 100$ ...


Да, кстати, ваше благородие, я тут общаюсь исключительно по принципу "Будь проще, и к тебе потянутся люди", поэтому самозванных господ не люблю, господина из себя не изображаю и вам не советую. Пока всё.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
passant
сообщение 10.02.2018 - 14:03
Сообщение #7





Группа: Пользователи
Сообщений: 231
Регистрация: 27.04.2016
Пользователь №: 28223



ЕСЛИ ((Вы уверены, что у вас линейная регрессионная модель может что-то предсказать на период 14 дней) И (у Вас действительно ежедневные данные за предыдущий период))
ТО
использование специализированных средств работы с временными рядами Вам не нужно.

Все что Вам надо:
1. Создаете фрейм:
- первый столбец - номер дня (именно так - первый день наблюдения -1, второй день наблюдения - 2...... последний день наблюдения - (например)20).
- второй столбец - значения наблюдения в соответствующий день.
2. Скармливаете эти данные функции lm(с2~c1,...). Получаете модель.
3. Подставляете дни, на которые вам надо сделать прогноз - в нашем примере - 21,22,.....34 (если надо на две недели вперед).
4.ЕСЛИ у Вас не нарушены основные предположения (т.е. модель действительно имеет линейные тренд, И он сохраняется на весь период прогнозирования)
ТО наслаждаетесь результатами;
ИНАЧЕ
Применяете другие подходы;

Сообщение отредактировал passant - 10.02.2018 - 14:10
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
scholar
сообщение 10.02.2018 - 17:05
Сообщение #8





Группа: Пользователи
Сообщений: 14
Регистрация: 28.01.2018
Пользователь №: 30897



passant, Вас понял, я так и подумал сначала кстати ,но был неуверен в этом.
100$, прошу извинить, не знал:)
Последний вопрос. (пока использовал стандартные методы временных рядов)
вот у меня на выходе получились такие результаты
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
2016.2514|| 45.21749 36.49811 56.01815 32.58475 62.74312
2016.2541|| 34.10518 27.49301 42.30623 24.52838 47.41754
2016.2569|| 35.54743 28.62030 44.14975 25.51742 49.51612
2016.2596|| 45.46761 36.56616 56.53412 32.58241 63.44356
2016.2623|| 41.72907 33.52017 51.94655 29.84972 58.33152
2016.2651|| 40.60631 32.58185 50.60537 28.99699 56.85909
2016.2678||40.88003 32.76501 51.00319 29.14283 57.33981
2016.2706 43.02138 34.44556 53.73044 30.62078 60.43903
2016.2733||32.50043 25.99185 40.63741 23.09164 45.73916
2016.2760 33.93362 27.10818 42.47611 24.06939 47.83653
2016.2788|| 43.48419 34.70294 54.48554 30.79643 61.39408
2016.2815|| 39.98677 31.87798 50.15641 28.27360 56.54775
2016.2843 38.99057 31.05229 48.95645 27.52649 55.22451
2016.2870|| 39.33681 31.29620 49.44140 27.72777 55.80155
что значат вот эти 2514, 2541
Я не понимаю какая дата перед мной
2016.2870 что это за дата.

Сообщение отредактировал scholar - 10.02.2018 - 22:42
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
passant
сообщение 10.02.2018 - 22:01
Сообщение #9





Группа: Пользователи
Сообщений: 231
Регистрация: 27.04.2016
Пользователь №: 28223



Не хотите Вы слушать, что Вам говорят.
Ну тогда взгляните на Рис1. (Правда, я тут намедни инсталлировал новую для себя версию EXCEL и мне было интересно за одно поиграться с ней. Так что не на R, уж не обессудте.)
Вы еще хотите после этого применять чисто линейную регрессионную модель? Ну пожалуйста.
EXCEL в два клика дает значения коэффициентов линейной регрессии (Рис.2).
Получаем, подставляем, строим график (Рис.3). Желтая - регрессия внутри имеющейся серии, красное - прогноз.
Ну уверен, что такой прогноз хоть в чем-то может оказаться полезен, хотя.....

Сообщение отредактировал passant - 10.02.2018 - 22:11
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
scholar
сообщение 10.02.2018 - 22:29
Сообщение #10





Группа: Пользователи
Сообщений: 14
Регистрация: 28.01.2018
Пользователь №: 30897



passant, я сейчас не про линейную регрессию, я решил все-таки использовать ARIMA
и мой результат видите выше
что значит эта дата
2016.2514
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DrgLena
сообщение 11.02.2018 - 02:24
Сообщение #11





Группа: Пользователи
Сообщений: 1325
Регистрация: 27.11.2007
Пользователь №: 4573



Цитата(scholar @ 9.02.2018 - 19:18) *
Прошу простить, что вопрос немного не медицинский.

Да, похоже на продажи. Сильная зависимости от дня недели, это нужно учесть. Это можно делать различными путями. Для суббот и воскресений - совершенно различные линии регрессии. Можно учесть ранг дня недели, например Rang=1,2,3,4,5,6,7 cоответствует дням недели от мин до мах, а именно 7,1,3,4,4,2,5,6 (дни недели с понедельника 1 до 7 ?воскресенье.
Тогда будет:
b Std.Err. - of b t(27) p-value
Intercept -19,6908 21,15699 -0,93070 0,360258
rang 59,6602 3,65482 16,32370 0,000000
Var3 1,9956 0,87900 2,27033 0,031381


R2=0,91

Удалить pdf не могу, он вставляется какой то обрезанный sad.gif

Сообщение отредактировал DrgLena - 11.02.2018 - 02:39
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  Graph.pdf ( 44,2 килобайт ) Кол-во скачиваний: 206
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Олег Кравец
сообщение 11.02.2018 - 11:09
Сообщение #12





Группа: Модераторы
Сообщений: 286
Регистрация: 1.02.2005
Из: Воронеж
Пользователь №: 93



Очевидные "дни недели" наводят на простую идею: строить 7 моделей...


Signature
О.Я.Кравец, д.т.н., проф.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 11.02.2018 - 14:05
Сообщение #13





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Цитата(Олег Кравец @ 11.02.2018 - 11:09) *
Очевидные "дни недели" наводят на простую идею: строить 7 моделей...


/подумав/
Еще более простая идея называется сезонной ARIMA-моделью... А уж про моделирование рядом Фурье я ваще умолчу... А в лохматые времена для избавления от сезонности и вовсе строили регрессии на кучу dummi-переменных...

Сообщение отредактировал 100$ - 11.02.2018 - 14:11
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
passant
сообщение 11.02.2018 - 14:31
Сообщение #14





Группа: Пользователи
Сообщений: 231
Регистрация: 27.04.2016
Пользователь №: 28223



Вообще-то на картинке мы видим совершенно классический случай, который рассматривается на первых страницах любого учебника или сайта по временным рядам. (Например http://statsoft.ru/home/textbook/modules/sttimser.html). Ряды такого типа особенно характерны для эконометрических задач, где и исследуются весьма подробно. (Например - http://eos.ibi.spb.ru/umk/4_5/5/print/5_R1_T6.pdf , http://baguzin.ru/wp/4-3-prognozirovanie-i...nirovanie-v-ra/ ). Называются они - рядами с сезонной составляющей (слово "сезонный" не должно смущать, в данном случае период сезонности может быть и несколько секунд, и неделя, и год, и тысячелетие). Для таких рядов придуманы специальные методы - и для формального обнаружения сезонности и выявления их отличий от просто хаотических колебаний, и для выявления периода сезонности (опят-же, не на глаз, а формально), причем в одном ряду могут быть несколько различных сезонных составляющих, и для прогнозирования поведения ряда, в модели которого присутствуют сезонные компоненты и даже для обнаружения аномалий сезонности.
Естественно и в R доступны средства для работы с сезонностью, например:
http://a-little-book-of-r-for-time-series....timeseries.html
https://shiring.github.io/forecasting/2017/...orcasting_part3
https://petolau.github.io/Regression-trees-...me-series-in-R/
и много много других.
Поэтому, думаю, если автору действительно хочется сделать серьезную работу, а не строить свой велосипед, следует ознакомиться с упомянутым подходом. А если это просто "проходная" задача - то можно, конечно, и "на глазок".

Сообщение отредактировал passant - 11.02.2018 - 14:35
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
scholar
сообщение 11.02.2018 - 15:50
Сообщение #15





Группа: Пользователи
Сообщений: 14
Регистрация: 28.01.2018
Пользователь №: 30897



Спасибо за ваше мнения ,уважаемые участники форума. Но выше я сказал ,что я передумал с идей линейной регрессии и решил углубиться в ARIMA -модель.
Я получил форекаст и там даты в таком формата
2016.2514 что это значит?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

2 страниц V   1 2 >
Добавить ответ в эту темуОткрыть тему