Как стать автором
Обновить

Анализ временных рядов, или как предсказать погоду на завтра

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров13K
Всего голосов 15: ↑11 и ↓4+13
Комментарии33

Комментарии 33

ЗакрепленныеЗакреплённые комментарии

Нет неудовлетворительных методик прогноза, есть лишь дефицит достоверных данных.

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

Ничего не понял... Погода (долгосрочный прогноз) - это же абсолютно "не экстарполируемое" явление. Слишком много вводных. Эдакая "задача трёх тел на максималках"))

Естественно, поведение трех тел - абсолютно непредсказуемое явление. В случае с погодой, из-за того, что мы живем на Земле, которая, в свою очередь, двигается вокруг Солнца, мы можем наблюдать периодизацию и тренды, которые всегда будут присутствовать. Я думаю, когда вам говорят слово зима, вы представляете холод, а когда лето - тепло. Тем не менее, погоду нельзя предсказать без погрешности, но с точностью до нескольких градусов - можно. На данный момент существуют методы прогноза климата, которые делают на несколько лет вперед. Они могут предсказать среднюю погоду с довольно небольшой ошибкой.

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

Давайте я вам для начала на пальцах. Весной Вильфанд Р. М. заявил что лето в моём регионе будет не просто жарким, а рекорды бить начнёт. В итоге весь июль лили дожди. Ну вон там циклон какой-то европейский застрял (почему-то у гидрометцентра хорошо получается давать названия всяким циклонам и объяснять погоду постфактум). На начало августа стали давали прогнозы что всё позальёт. В итоге +34 стоит. Окей, у них там "67% достоверность долгосрочных прогнозов"... Понадобились мне тут краткосрочные прогнозы - я уже не читаю, я карты смотрю с движениями воздушных масс на день-два - всё мимо! Вот просто зла не хватает! Начинаешь сомневаться вообще в целесообразности существования этой службы...

Температура воздуха зависит ведь не только от наклона земной оси)) Она очень сильно зависит от движений воздушных масс (которые могут формироваться и двигаться крайне рандомно - там же всё по цепочке, одно за другое цепляется и выливается в итоге в некую "сингулярность"), а ещё "бонусом" идёт хозяйственная деятельность человека - это вы тоже учитываете?)) Это же не экстраполируется - тут вам и экспоненциальная, и степенная функции.

Ну а то, что вы описали... Ну да, ряды динамики из вузовского курса статистики. Есть аналитический способ экстраполяции рядов динамики. Но в вашем случае у вас же совершенно недостаточно данных! Тут можно вообще ничего не экстраполировать, а просто брать среднюю температуру прошлого года и ориентироваться на неё - в озвученные вами пределы вложимся))

И это я ещё молчу про ряд вообще немоделируемых факторов, как то: https://ru.wikipedia.org/wiki/Год_без_лета

Возьмёт какой-нибудь Йеллостоун бахнет и привет всем прогнозам)) Экстремальный случай? Ну пожалуй. Но тогда мне в голову приходит довольно бородатый анекдот из ТБВ: "У меня есть решение, но это работает только для сферических цыплят в вакууме"

Во-первых, я уже сказал, что данная статья лишь описывает возможные примеры анализа временных рядов.

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

В-третьих, я согласен, что погода зависит от многих факторов, в том числе в данных о температуре всегда присутствует случайность (как и в большинстве других временных рядах, что делает невозможным сделать точный прогноз). Но из-за того, что температура зависит от определенных факторов, большинство из которых несет периодичный характер, мы можем сделать приблизительный прогноз на несколько месяцев вперед за счет разложения данных на гармонические колебания. https://byjus.com/free-ias-prep/ncert-notes-factors-controlling-temperature-distribution/. Факторы места рассматривать бесполезно, ведь с течением времени данное место не меняется. Для того чтобы учесть наибольшее кол-во факторов без потери обобщающей способности модели, мы раскладываем данные на сумму нескольких синусоид. Если бы погода зависела только от положения земли, то нам хватило бы одной.

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

В любом случае, если вы посчитаете ошибку предложенной вами модели ("просто брать среднюю температуру прошлого года и ориентироваться на неё "), то она получится в разы больше чем у модели, предложенной мной.

Предлагаю не акцентировать внимание на сути датасета, а посмотреть на то, как модель способна аппроксимировать данные из него. Все вычисления говорят сами за себя.

Спасибо за ваш комментарий.

Да все уже поняли о чём ваша статья.

Считайте вашу необходимость объяснять это каждому комментирующему - наказанием за кликбейтный заголовок))

Нет неудовлетворительных методик прогноза, есть лишь дефицит достоверных данных.

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

Полностью с Вами согласен, спасибо за комментарий.

На данный момент существуют методы прогноза климата, которые делают на несколько лет вперед. Они могут предсказать среднюю погоду с довольно небольшой ошибкой.

Возможно, и существуют. Всегда хочется верить в чудо. Но при чем тут данная статья? Прогнозирование временнЫх рядов методом суммирования некоторого количества частотных гармоник старо, как мир. Когда встречаю очередную заметку, где с энтузиазмом вот это излагается, всегда ищу одну обязательную оговорку. Это относится к стационарным последовательностям, статпараметры которых либо вовсе не меняются во времени, либо меняются достаточно плавно, "адиабатически". Например, глобальная средняя температура на поверхности земли является параметром стационарным. Как справедливо отмечает ТС, зимой относительно холодно. Летом - относительно тепло. Но мы что, именно это предсказываем с высокой точностью? Локальные климатические параметры существенно нестационарны. Причина тому - глобальная связность и изменчивость климатической системы. То, что Земля за год получает от Солнца одно и то же количество энергии (примерно), локально не значит ничего. Поэтому так провально промахиваются даже относительно короткие и даже качественные прогнозы на данный регион. Например, весной гидрометцентр плохо предсказывает предстоящее лето в Москве даже в терминах "сухое-мокрое" и "жаркое-прохладное", хотя оперируют они далеко не такими примитивными вещами, как суммирование нескольких синусоид.

Да, вот про зиму и лето как раз есть вопросик. Вы нормализуете данные, переводя их в число сигм от среднего. Уместно ли брать среднее по всему датасету, если средняя температура летом и зимой разная?

Только недавно ученные научились хорошо/приемлемо измерять температуру на 10 дней вперёд, а вы говорите о целом климате на несколько лет....

Прочитав статью, вы узнаете, как можно прогнозировать погоду с точностью до двух градусов на 3 месяца вперед <...>

Не верю! (с)

Прогнозы погоды стали намного точнее. Как в метеорологии произошла тихая революция?
ЦИТАТА:

Прогнозировать погоду сложно, прежде всего, из-за того, что земная атмосфера хаотична. Математики вкладывают в это слово не тот смысл, что обыватели. «В хаотической системе растет доля ошибки, если есть неопределенность в начальных данных, а она есть всегда хотя бы потому, что измерения проводятся с некоторой точностью: допустим, температура известна до десятых долей градуса. Насколько бы хорошей ни была погодная модель, она даст ошибку», — объясняет Александр Чернокульский, старший научный сотрудник лаборатории теории климата Института физики атмосферы им. А.М. Обухова РАН.

Раздел математики, изучающий хаотические системы, и появился-то во многом из-за прогнозов погоды. В начале 1960-х годов американский метеоролог Эдвард Лоренц повторно прогнал данные через компьютер и получил совсем не такой результат, как в первый раз. Причина была в том, что сначала вычисления производились с точностью до шестого знака после запятой, а потом — только до третьего. Оказалось, что разница между тысячными и миллионными долями имеет огромное значение.

Настолько разные решения уравнений так удивили Лоренца, что он поэтично заключил: «Единственный взмах крыла чайки способен изменить погоду навсегда». Позже коллеги посоветовали заменить чайку на более изящное животное, и чувствительность хаотической системы к начальным условиям получила название «эффект бабочки».

Ошибки при расчетах будущих состояний атмосферы и других хаотических систем со временем накапливаются, поэтому прогноз погоды на сутки вперед значительно лучше, чем на месяц. Тем не менее точность постепенно растет: современные пятидневные прогнозы так же хороши, как сорок лет назад — однодневные. Полезный прогноз можно сделать и на девять-десять дней. А предел предсказуемости классическими моделями, по словам Александра Чернокульского, составляет две недели.

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

Также важно заметить, что ошибка вычислялась путем усреднения. То есть моя модель может сказать, что завтра будет 15 градусов, а на самом деле окажется 30. Но из-за большого кол-ва измерений ошибка усредняется и оказывается небольшой. Так что вы абсолютно правы в том, что такую модель использовать (в реальных целях) будет некорректно. Пример с температурой был приведен скорее в целях указать на возможные способы поиска периодизации в данных. Точно так же делают и эксперты из команды tensorflow, если это Вам о чем-то говорит.

В данной статье будут рассмотрены способы анализа временных рядов и применение их на практике. <...>

Насколько я понимаю, описанные вам прогнозы погоды (точнее, температуры) практической пользы не имеют?

Ответ на этот вопрос не был целью исследования. Тем не менее, советую полагаться на предсказания метеорологов. Опять же, пример с температурой был приведен скорее в целях указать на возможные способы поиска периодизации в данных. То есть, если у вас есть структурированные данные, не такие сложные как погода, то описанный в статье метод может оказаться более чем эффективным.

Наверное, в качестве примера актуальнее было использовать курс доллара или евро...

Спасибо за отзыв.

Нет, потому что курс доллара и евро напрямую зависит от новостей в мире, которые нельзя предсказать дальше, чем на пару дней. Пожалуйста, посмотрите на курс любой валюты и убедитесь в этом сами.

Угу. На языке статистики, повторюсь, эта "зависимость от новостей" приводит к нестационарности соответствующих временнЫх рядов. С погодой в данном регионе в этом смысле всё гораздо хуже.

Курсы валют и акций зависят от макроэкономических новостей на достаточно длительных отрезках времени - месяцы и годы. На средних сроках вполне нормально работает технический анализ, потому что в процессе участвуют трейдеры - простые люди. Только колебания совсем не периодические, поэтому никаких синусов там не найти. Кстати, если хотите предсказать динамику фондового рынка на десятилетия, то это совсем просто - будет устойчиво расти.

Всё так. Но есть области более хаотичные чем другие и менее хаотичные в плане расчета погоды на несколько дней вперёд. Регионы у моря относительно предсказуемы, т.к. большая масса воды работает как термостат к тому же ветра ведут себя более предсказуемо - дуют с моря либо на море в зависимости от времени суток. Т.е. атмосферные условия ветер, температура, давление и влажность меняются в течении суток достаточно сильно, но меняются они относительно предсказуемо, и моделирование погоды получается более менее точным. А вот в великой степи средней полосы России ветра гуляют как хотят и прогнозировать погоду тут очень сложно.

В моем дилетантском понимании, автор статьи прогнозирует пресловутую среднюю температуру по больнице. Точнее, даже не саму температуру, а скользящее среднее или что-то вроде этого. Хотя, возможно, оно кому-то надо...

Вообще-то вся эта периодичность определяется вращением Земли вокруг Солнца и своей оси.

Вот там да, Фурье очень хорошо описывает такие системы. ( потому что они периодичные)

Но вот

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

Этот пассаж конечно же так себе, простоват.

Вы не погоду предсказываете ( если не называть предсказаниями, что в январе в России зима), а положение Земли на орбите.

Вы правы, но зная точное положение Земли на орбите (и располагая только этими данными), вы не предскажете температуру. Положение Земли лишь определяет температуру. Так что данная модель скорее находит связь значения температуры и положения нашей планеты в космосе. В любом случае, пример с температурой был приведен скорее в целях указать на возможные способы поиска периодизации в данных. Точно так же делают и эксперты из команды tensorflow, если это Вам о чем-то говорит.

Ответить

"Прошла зима, настало лето. Спасибо партии за это!" (с)

Интересный факт, что предсказания цыганок сбываются чаще, чем предсказания синоптиков.

Когда речь идёт о российских синоптиках — да. Потому что они окончательно оптимизировались и вместо того, чтоб строить прогнозы, попросту покупают чужие (иностранные) данные без малейших попыток их как-то осмыслить и скорректировать под местные реалии.
Когда для какой-либо местности прогноз можно улучшить банальной корректировкой на константу — это явный признак профнепригодности прогнозистов…
Вообще, изобретение динамических моделей — это худшее, что случалось с российской метеорологией. После этого точность прогнозов упала катастрофически, потому что собственных российских моделей нету, а иностранные оптимизированы в первую очередь для западной Европы, и для российской территории работают по остаточному принципу с весьма низкой точностью.
А ещё в России очень любят всё секретить на ровном месте. Так, для этих территорий вам будет крайне сложно получать оперативные данные с доплеровских радаров или "живые" снимки с российских метеоспутников, потому как всё засекречено.

Я всё лето внимательно слежу за прогнозами на Гисметео и Яндекс.погода по тому, что летом люблю купаться и хочу заранее спланировать в какие дни поеду купаться. Так вот претензий к точности прогнозов а пределах недели почти не было.

Так что иногда надо меньше заниматься логическими построениями, а чаще смотреть в окно.

А можно это факт где-то увидеть в виде конкретных данных? Что-то я подозреваю, что как только мы увидим данные, сразу увидим, что это никакой не факт.

Не читал всю статью, но глаза случайно зацепились за график со скользящей средней

Выше в статье

Скользящая средняя может выглядеть так, как у вас на графике только если у вас есть "заглядывание в будущее" окном усреднения. Что, очевидно, грубейшая ошибка.

Видите, как оранжевая линия (скользящая средняя), как бы, "обгоняет" синию? Так и должно быть, если всё правильно сделано.

Сидишь довольный, пишешь себе свой прогноз погоды, смотришь: "О, отлично, завтра должно быть градусов 28, можно поехать купаться". Выезжаешь утром на велосипеде на речку, а тебя накрывает ураган с градом...
Я это не в претензию автору поста ни в коем случае, просто вспомнилось, как неделю назад у меня дома приключился подобный сюрприз (можете загуглить "ураган в Казани" и посмотреть), о котором нас не предупреждал ни яндекс, ни кто либо другой, наверняка умеющий в умные алгоритмы предсказания погоды)

Неточность прогнозов погоды в последний месяц полтора - пятно на солнце размером с 10 земель и последовавшая магнитная буря от этого, которая покоцала спутники в том числе погодные

Как и многие другие комментаторы здесь, я считаю, что ваша модель способна предсказать только то, что летом будет жарко, а зимой холодно. Уже довольно давно известно, что адекватно описать изменения погоды линейные модели не в состоянии, вы же предлагаете складывать синусоиды (а сложение допускается только для линейных моделей). Хоть 5, хоть 50 синусоид здесь не помогут. Интереснее было бы, зная, что годовая температура изменяется примерно периодически, добавить к одной или нескольким (небольшому числу) синусоид нелинейное возмущение. Вот график такой зависимости, на котором третья компонента решения системы Лоренца подмешана к простой синусоиде (параметры подобраны так, чтобы температура была примерно реалистичной для Европы).
Годовое изменение температуры с нелинейным возмущением
image

Но у такой модели будет тот же недостаток для прогнозирования, что и у самой системы Лоренца, а именно — неустойчивость, и этот недостаток не преодолеть нейросетью, обучением и прочим. Пока единственный путь для улучшения прогноза погоды — увеличение точности измерения параметров атмосферы при сохранении краткосрочности прогноза
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории