<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Архивы CES - Open Forecasting</title>
	<atom:link href="https://openforecast.org/ru/tag/ces/feed/" rel="self" type="application/rss+xml" />
	<link>https://openforecast.org/ru/tag/ces/</link>
	<description>О том как смотреть в будущее</description>
	<lastBuildDate>Tue, 02 Aug 2022 12:27:23 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/08/cropped-usd-05-32x32.png&amp;nocache=1</url>
	<title>Архивы CES - Open Forecasting</title>
	<link>https://openforecast.org/ru/tag/ces/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Комплексное Экспоненциальное Сглаживание</title>
		<link>https://openforecast.org/ru/2022/08/02/kompleksnoe-eksponencialnoe-sglazhivanie/</link>
					<comments>https://openforecast.org/ru/2022/08/02/kompleksnoe-eksponencialnoe-sglazhivanie/#comments</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Tue, 02 Aug 2022 12:23:39 +0000</pubDate>
				<category><![CDATA[CES]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[Пакет smooth для R]]></category>
		<category><![CDATA[Статьи]]></category>
		<category><![CDATA[статьи]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3010</guid>

					<description><![CDATA[<p>Авторы: Ivan Svetunkov, Nikolaos Kourentzes, Keith Ord. Журнал: Naval Research Logistics Аннотация на английском: Exponential smoothing has been one of the most popular forecasting methods used to support various decisions in organisations, in activities such as inventory management, scheduling, revenue management and other areas. Although its relative simplicity and transparency have made it very attractive [&#8230;]</p>
<p>Сообщение <a href="https://openforecast.org/ru/2022/08/02/kompleksnoe-eksponencialnoe-sglazhivanie/">Комплексное Экспоненциальное Сглаживание</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Авторы</strong>: Ivan Svetunkov, Nikolaos Kourentzes, Keith Ord.</p>
<p><strong>Журнал</strong>: Naval Research Logistics</p>
<p><strong>Аннотация на английском</strong>: Exponential smoothing has been one of the most popular forecasting methods used to support various decisions in organisations, in activities such as inventory management, scheduling, revenue management and other areas. Although its relative simplicity and transparency have made it very attractive for research and practice, identifying the underlying trend remains challenging with significant impact on the resulting accuracy. This has resulted in the development of various modifications of trend models, introducing a model selection problem. With the aim of addressing this problem, we propose the Complex Exponential Smoothing (CES), based on the theory of functions of complex variables. The basic CES approach involves only two parameters and does not require a model selection procedure. Despite these simplifications, CES proves to be competitive with, or even superior to existing methods. We show that CES has several advantages over conventional exponential smoothing models: it can model and forecast both stationary and non-stationary processes, and CES can capture both level and trend cases, as defined in the conventional exponential smoothing classification. CES is evaluated on several forecasting competition datasets, demonstrating better performance than established benchmarks. We conclude that CES has desirable features for time series modelling and opens new promising avenues for research.</p>
<p><a href="/wp-content/uploads/2022/07/Svetunkov-et-al.-2022-Complex-Exponential-Smoothing.pdf">Ссылка на черновую версию статьи</a>.</p>
<p>DOI: <a href="https://doi.org/10.1002/nav.22074" targe="blank">10.1002/nav.22074</a></p>
<p><a href="/en/2022/08/02/the-long-and-winding-road-the-story-of-complex-exponential-smoothing/">История статьи на английском</a>.</p>
<h2>Идея Комплексного Экспоненциального Сглаживания</h2>
<p>Одна из фундаментальных идей в прогнозировании &#8212; это декомпозиция временного ряда на несколько ненаблюдаемых компонент (описание этого процесса есть, например, <a href="http://<a href="https://openforecast.org/adam/tsComponents.html">&#171;>в моей монографии</a>). Обычно говорят, что временной ряд содержит компоненты уровня, тренда, сезонности, а так же ошибку. Это популярное разбиение на компоненты и используется, например, при построении <a href="https://openforecast.org/adam/ETSConventional.html">ETS</a>, внутри которой выбор подходящих компонент осуществляется <a href="https://openforecast.org/adam/ETSSelection.html">на основе информационных критериев</a>. Однако, не у всех временных рядов есть такое чёткое разделение на компоненты, да и само разделение можно считать условным. Например, ряд со слабым трендом на практике может быть не отличим от ряда с быстро меняющимся уровнем. Кроме того, в реальности всё немного сложнее, чем нам кажется и взаимодействие компонент может быть нелинейным.</p>
<p>Комплексное Экспоненциальное Сглаживание (КЭС) моделирует нелинейность во временных рядах и позволяет описывать структуру ряда по-другому. Вот как выглядит модель КЭС математически:<br />
\begin{equation} \label{eq:cesalgebraic}<br />
	\hat{y}_{t} + i \hat{e}_{t} = (\alpha_0 + i\alpha_1)(y_{t-1} + i e_{t-1}) + (1 &#8212; \alpha_0 + i &#8212; i\alpha_1)(\hat{y}_{t-1} + i \hat{e}_{t-1}) ,<br />
\end{equation}<br />
где \(y_t\) &#8212; это фактическое значение, \(e_t\) &#8212; это ошибка прогноза, \(\hat{y}_t\) &#8212; прогнозируемое значение на шаг вперёд, \(\hat{e}_t\) &#8212; это прокси прошлых ошибок, \(\alpha_0\) и \(\alpha_1\) &#8212; это постоянные сглаживания, а \(i\) &#8212; это мнимая единица, число удовлетворяющее уравнению \(i^2=-1\). Из-за использования комплексных переменных, модель позволяет распределять веса во времени нелинейным образом. Это становится более понятно, если в правую часть уравнения \eqref{eq:cesalgebraic} включить само же уравнение, затем повторить это и получить:<br />
\begin{equation} \label{eq:cesalgebraicExpanded}<br />
	\begin{aligned}<br />
		\hat{y}_{t} + i \hat{e}_{t} = &#038; (\alpha_0 + i\alpha_1)(y_{t-1} + i e_{t-1}) + \\<br />
					      &#038; (\alpha_0 + i\alpha_1) (1 &#8212; \alpha_0 + i &#8212; i\alpha_1) (y_{t-2} + i e_{t-2}) + \\<br />
					      &#038; (\alpha_0 + i\alpha_1) (1 &#8212; \alpha_0 + i &#8212; i\alpha_1)^2 (y_{t-3} + i e_{t-3}) + \\<br />
					      &#038; &#8230; + \\<br />
					      &#038; (\alpha_0 + i\alpha_1) (1 &#8212; \alpha_0 + i &#8212; i\alpha_1)^{t-2} (y_{1} + i e_{1}) + \\<br />
					      &#038; (1 &#8212; \alpha_0 + i &#8212; i\alpha_1)^{t-1} (\hat{y}_{1} + i \hat{e}_{1}) .<br />
	\end{aligned}<br />
\end{equation}<br />
Возведение комплексного числа \((1 &#8212; \alpha_0 + i &#8212; i\alpha_1)\) в степень в формуле выше позволяет распределять веса между наблюдениями нелинейным образом. Графически это может быть представлено следующим образом (синяя линия &#8212; веса для фактических значений, зелёная &#8212; для прогнозных ошибок):</p>
<div id="attachment_2978" style="width: 650px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2022/07/cspweights.png"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-2978" src="/wp-content/uploads/2022/07/cspweights-1024x410.png" alt="" width="640" height="256" class="size-large wp-image-2978" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cspweights-1024x410.png&amp;nocache=1 1024w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cspweights-300x120.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cspweights-768x307.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cspweights-1536x614.png&amp;nocache=1 1536w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cspweights-2048x819.png&amp;nocache=1 2048w" sizes="(max-width: 640px) 100vw, 640px" /></a><p id="caption-attachment-2978" class="wp-caption-text">Распределение весов между наблюдениями на комплексной и действительной плоскостях. Синяя линия &#8212; веса для фактических значений, зелёная &#8212; для прогнозных ошибок.</p></div>
<p>В зависимости от значение комплексной постоянной сглаживания \(\alpha_0 + i\alpha_1\), распределение весов будет иметь разный вид. Но оно не обязательно должно быть гармоническим как на рисунке выше, оно может и убывать по классической экспоненте (как у простого экспоненциального сглаживания ака метода Брауна). Именно это гибкое распределение весов даёт КЭС особенную гибкость и позволяет ему быть эффективно применимым как к стационарным, так и нестационарным данным без переключения между компонентами временного ряда.</p>
<p>В опубликованной статье, мы также обсуждаем сезонную модификацию КЭС, которая позволяет моделировать как аддитивную, так и мультипликативную сезонность. Я не привожу формулы и детальное объяснение в данной статье, рекомендую всех заинтересованных обратиться к <a href="/wp-content/uploads/2022/07/Svetunkov-et-al.-2022-Complex-Exponential-Smoothing.pdf">первоисточнику</a>.</p>
<h2>Пример в R</h2>
<p>В R, КЭС реализовано в функции <code>ces()</code> пакета <code>smooth</code>. В том же пакете есть функция <code>auto.ces()</code>, позволяющая автоматически выбирать между не сезонными и сезонными моделями КЭС на основе информационных критериев. Синтакс функций похож на синтекс <code>es()</code> и <code>adam()</code>. Вот пример применения функции:</p>
<pre class="decode">cesModel <- smooth::auto.ces(BJsales, holdout=TRUE, h=12)
cesModel</pre>
<pre>Time elapsed: 0.05 seconds
Model estimated: CES(n)
a0 + ia1: 1.9981+1.0034i
Initial values were produced using backcasting.

Loss function type: likelihood; Loss function value: 249.4613
Error standard deviation: 1.4914
Sample size: 138
Number of estimated parameters: 3
Number of degrees of freedom: 135
Information criteria:
     AIC     AICc      BIC     BICc 
504.9227 505.1018 513.7045 514.1457 

Forecast errors:
MPE: 0%; sCE: 0.7%; Asymmetry: -5%; MAPE: 0.4%
MASE: 0.857; sMAE: 0.4%; sMSE: 0%; rMAE: 0.329; rRMSE: 0.338</pre>
<p>Описание выше уже как-то обсуждалось <a href="/2016/11/02/smooth-package-for-r-es-function-part-ii-pure-additive-models-ru/">в одном из прошлых постов</a> на примере функции <code>es()</code>. Главное отличие между тем, что возвращают функции <code>es()</code> и <code>ces()</code> - это параметры. В данном случае, мы видим, что комплексная постоянная сглаживания \(\alpha_0 + i\alpha_1 = 1.9981 + i 1.0034\). Полученную модель можно использовать в прогнозировании, например, так:</p>
<pre class="decode">cesModel |> forecast(h=12, interval="p") |> plot()</pre>
<p>что даст такой график:</p>
<div id="attachment_3007" style="width: 310px" class="wp-caption aligncenter"><a href="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cesForecast.png&amp;nocache=1"><img decoding="async" aria-describedby="caption-attachment-3007" src="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cesForecast-300x210.png&amp;nocache=1" alt="" width="300" height="210" class="size-medium wp-image-3007" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cesForecast-300x210.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cesForecast-768x538.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2022/07/cesForecast.png&amp;nocache=1 1000w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-3007" class="wp-caption-text">Прогноз КЭС для ряда продаж из книги Box & Jenkins.</p></div>
<p>Сама функция <code>ces()</code> не изменилась с момента окончания мною PhD в 2016 году, так что результаты, например, <a href="/en/2018/01/01/smooth-functions-in-2017/">вот этого</a> сравнения всё ещё актуальны. Модель не обязательно даёт самые точные прогнозы во всех случаях, но как, например, было показано в статье <a href="https://doi.org/10.1016/j.ijforecast.2019.01.006">Petropoulos & Svetunkov (2020)</a>, она привносит в комбинации то, чего не привносят другие модели. Всё из-за того, что КЭС позволяет хорошо вылавливать долгосрочные тенденции во временных рядах.</p>
<h2>Послесловие</h2>
<p>В качестве послесловия, я хотел бы выразить свои благодарности нескольким людям. Во-первых, это <a href="http://kourentzes.com/forecasting/">Никос Курентзес</a>, который поверил в мою модель в далёком 2012 году и поддерживал меня все эти годы без колебаний. Во-вторых, это <a href="https://scholar.google.com/citations?user=-0p44ukAAAAJ">Кит Орд</a>, который помог мне в некоторых выкладках и затем оказал серьёзную поддержку статье и помог придать ей ту форму, которая она имеет в конце концов. Ну, и, конечно же, я благодарен своему папе, <a href="https://sergey.svetunkov.ru/">Сергею Геннадьевичу Светунькову</a>, который направлял меня в моей исследовательской деятельности в самом её начале и верил в меня и мои исследования ещё тогда, когда никто о них ничего не подозревал.</p>
<p>Если вы хотите узнать больше про модель, вам придётся прочитать <a href="/wp-content/uploads/2022/07/Svetunkov-et-al.-2022-Complex-Exponential-Smoothing.pdf">статью на английском</a> (она также доступна <a href="https://doi.org/10.1002/nav.22074" targe="blank">онлайн</a> на сайте издателя) или же прочитать на английском <a href="/en/2022/08/02/the-long-and-winding-road-the-story-of-complex-exponential-smoothing/">историю статьи</a>.</p>
<p>Сообщение <a href="https://openforecast.org/ru/2022/08/02/kompleksnoe-eksponencialnoe-sglazhivanie/">Комплексное Экспоненциальное Сглаживание</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/ru/2022/08/02/kompleksnoe-eksponencialnoe-sglazhivanie/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Пакет «smooth» для R. Общие параметры. Часть 1. Прогнозные интервалы</title>
		<link>https://openforecast.org/ru/2017/06/11/prediction-intervals/</link>
					<comments>https://openforecast.org/ru/2017/06/11/prediction-intervals/#comments</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Sun, 11 Jun 2017 13:23:40 +0000</pubDate>
				<category><![CDATA[R]]></category>
		<category><![CDATA[Общая информация]]></category>
		<category><![CDATA[Пакет smooth для R]]></category>
		<category><![CDATA[Прикладное прогнозирование]]></category>
		<category><![CDATA[Экстраполяционные методы]]></category>
		<category><![CDATA[ARIMA]]></category>
		<category><![CDATA[CES]]></category>
		<category><![CDATA[ETS]]></category>
		<category><![CDATA[smooth]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=1266</guid>

					<description><![CDATA[<p>Предыдущие 6 статей мы обсуждали основные свойства функции es(). Пришло время двигаться дальше. Начиная с этой статьи мы обсудим параметры, общие для всех функций, реализованных в пакете smooth. К таким функциям относятся: es(), ssarima(), ces(), ges() и sma(). Однако, беря во внимание, что на данный момент мы обсудили только экспоненциальное сглаживанием, все примеры мы будем [&#8230;]</p>
<p>Сообщение <a href="https://openforecast.org/ru/2017/06/11/prediction-intervals/">Пакет «smooth» для R. Общие параметры. Часть 1. Прогнозные интервалы</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Предыдущие 6 статей мы обсуждали основные свойства функции <code>es()</code>. Пришло время двигаться дальше. Начиная с этой статьи мы обсудим параметры, общие для всех функций, реализованных в пакете <code>smooth</code>. К таким функциям относятся: <code>es()</code>, <code>ssarima()</code>, <code>ces()</code>, <code>ges()</code> и <code>sma()</code>. Однако, беря во внимание, что на данный момент мы обсудили только экспоненциальное сглаживанием, все примеры мы будем рассматривать на основе <code>es()</code>.</p>
<p>Начнём с прогнозных интервалов.</p>
<h3>Прогнозные интервалы функций пакета smooth</h3>
<p>Одна из особенностей пакета <code>smooth</code> &#8212; это возможность конструировать разные типы прогнозных интервалов. Самый простой из них — это параметрические (включаются командой <code>interval="p"</code>, <code>interval="parametric"</code> или <span class="lang:r decode:true  crayon-inline " >interval=TRUE</code>). Эти интервалы выводятся аналитически из свойств аддитивных и мультипликативных моделей. На данный момент (<code>smooth</code> v2.0.0) только в функции <code>es()</code> реализованы мультипликативные компоненты. Все остальные функции используют аддитивную модель. Это делает функцию <code>es()</code> этакой уникальной снежинкой. И если с чистыми аддитивными или мультипликативными моделями особых проблем нет, то со смешанными начинается головная боль.</p>
<p>В случае с моделями ETS с мультипликативной ошибкой, немультипликативными трендом и сезонностью и низкой дисперсией ошибок (ниже 0.1), интервалы аппроксимируются соответствующими моделями с аддитивной ошибкой. Например, интервалы для модели ETS(M,A,N) могут быть успешно аппроксимированы интервалами модели ETS(A,A,N), так как в случае с низкой дисперсией лог-нормальное распределение оказывается очень близким к нормальному. Все остальные смешанные модели используют симуляции для построения интервалов (с помощью функции <code>sim.es()</code>). Данные генерируются с заданными параметрами модели на \(h\) наблюдений. Процесс симуляции повторяется 10000 раз, так что в нашем распоряжении оказывается 10000 возможных дальнейших траекторий фактических значений. После этого вычисляются нужные квантили для каждого шага прогноза (с помощью функции <code>quantile()</code> из пакета <code>stats</code>) и возвращаются прогнозные интервалы. Конечно, такой метод нельзя считать чистым параметрическим, но в случае со смешанными моделями по другому либо просто нельзя, либо крайне сложно.</p>
<p>В функции <code>es()</code> так же доступны полупараметрические (semiparametric) и непараметрические (nonparametric) прогнозные интервалы. Оба типа этих интервалов основаны на <a href="/forecasting_toolbox/estimation-advanced-methods/">траекторных прогнозных ошибках</a>, которые получаются за счёт построения прогнозов на период от 1 до \(h\) шагов вперёд из каждого наблюдения в обучающей выборке. В результате этого в нашем распоряжении оказывается матрица с \(h\) столбцами и  \(T-h\) строками. В случае с полупараметрическими интервалами (вызываются с помощью <code>interval="sp"</code> или <code>interval="semiparametric"</code>) на основе этой матрицы рассчитывается \(h\) дисперсий, которые затем используются при построении интервалов на основе либо нормального, либо лог-нормального распределения (в зависимости от типа модели). Такие интервалы могут быть полезны в случае, если нарушаются базовые предпосылки о гомоскедастичности и не автокоррелированности остатков модели. Тем не менее мы всё ещё предполагаем, что у остатков есть какое-то параметрическое распределение (нормальное / лог-нормальное). </p>
<p>В случае с непараметрическими интервалами (вызываются в R через <code>interval="np"</code> или <span class="lang:r decode:true  crayon-inline " >interval=&#187;nonparametric&#187;</code>) предпосылка о параметрическом распределении может быть опущена. В этом случае мы используем <a href="/forecasting_toolbox/estimation-simple-methods/">квантильные регрессии</a> (аналогично тому, как это было сделано в <a href="https://www.jstor.org/stable/2634872?seq=1#page_scan_tab_contents" target="_blank" rel="noopener noreferrer">Taylor and Bunn, 1999</a>). В основе этих моделей лежит следующая степенная функция:<br />
\begin{equation} \label{eq:ssTaylorPIs}<br />
	\hat{e}_{j} = a_0 j ^ {a_{1}},<br />
\end{equation}<br />
где \(j = 1, .., h\) &#8212; это горизонт прогнозирования. Преимуществом модели \eqref{eq:ssTaylorPIs} является отсутствие экстремумов для любых \(j>0\). Это означает, что прогнозные интервалы будут вести себя монотонно и не поменяют направление (в случае с полиномами мы можем получить очень странные интервалы с расширением, а затем — с сужением). Одновременно с этим, степенные функции позволяют аппроксимировать большой спектр возможных траекторий (в зависимости от параметров \(a_0\) и \(a_1\)), включая рост с замедлением, линейный рост или рост с ускорением.</p>
<p>Главная проблема непараметрических интервалов из пакета <code>smooth</code> заключается в том, что квантильные регрессии, лежащие в их основе, плохо себя ведут на малых выборках. Так для того, чтобы построить регрессию для 0.95 квантиля, нам нужно иметь как минимум 20 наблюдений. А для 0.99 квантиль &#8212; хотя бы 100. В случае, если в нашем распоряжении недостаточно наблюдений, прогнозные интервалы могут быть неточными и не соответствовать указанному номинальному уровню.</p>
<p>Заметим, что если пользователь строит прогноз на один шаг вперёд, то полупараметрические интервалы будут соответствовать параметрическим (так как в этом случае интервалы строятся на основе дисперсии на один шаг вперёд), а непараметрические интервалы конструируются с помощью функции <code>quantile()</code> пакета <code>stats</code>.</p>
<p>Ну, и последнее. Ширина прогнозных интервалов регулируется с помощью параметра <code>level</code>, который может быть задан как дробное число (<code>level=0.95</code>) либо как число в пределах от 0 до 100 (<code>level=95</code>). Я лично предпочитаю первый метод &#8212; второй нужен в основном для того, чтобы сделать функцию совместимой с функциями из пакета <code>forecast</code>. По умолчанию все прогнозные функции пакета <code>smooth</code> конструируют 95% прогнозные интервалы.</p>
<p>Существует ещё ряд особенностей при построении прогнозных интервалов для целочисленных моделей и кумулятивных прогнозов, но их мы пока касаться не будем.</p>
<h3>Примеры в R</h3>
<p>Рассмотрим построение интервалов на примере ряда N1241. Построим модель ETS(A,Ad,N) следующим образом:</p>
<pre class="decode" title="Пример использования">
ourModel1 <- es(M3$N1241$x, "AAdN", h=8, holdout=TRUE, interval="p")
ourModel2 <- es(M3$N1241$x, "AAdN", h=8, holdout=TRUE, interval="sp")
ourModel3 <- es(M3$N1241$x, "AAdN", h=8, holdout=TRUE, interval="np")</pre>
<p>В результате мы должны получить следующие графики:</p>
<div id="attachment_991" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2016/10/N1241-AAdN-PI-parametric.png"><img decoding="async" aria-describedby="caption-attachment-991" src="/wp-content/uploads/2016/10/N1241-AAdN-PI-parametric-300x175.png" alt="" width="300" height="175" class="size-medium wp-image-991" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-parametric-300x175.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-parametric-768x448.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-parametric-1024x597.png&amp;nocache=1 1024w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-parametric.png&amp;nocache=1 1200w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-991" class="wp-caption-text">Ряд N1241 из базы M3, прогноз с помощью es(), фактические значения из проверочной выборки и параметрические прогнозные интервалы</p></div>
<div id="attachment_990" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2016/10/N1241-AAdN-PI-semiparametric.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-990" src="/wp-content/uploads/2016/10/N1241-AAdN-PI-semiparametric-300x175.png" alt="" width="300" height="175" class="size-medium wp-image-990" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-semiparametric-300x175.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-semiparametric-768x448.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-semiparametric-1024x597.png&amp;nocache=1 1024w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-semiparametric.png&amp;nocache=1 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-990" class="wp-caption-text">Ряд N1241 из базы M3, прогноз с помощью es(), фактические значения из проверочной выборки и полупараметрические прогнозные интервалы</p></div>
<div id="attachment_989" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2016/10/N1241-AAdN-PI-nonparametric.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-989" src="/wp-content/uploads/2016/10/N1241-AAdN-PI-nonparametric-300x175.png" alt="" width="300" height="175" class="size-medium wp-image-989" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-nonparametric-300x175.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-nonparametric-768x448.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-nonparametric-1024x597.png&amp;nocache=1 1024w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2016/10/N1241-AAdN-PI-nonparametric.png&amp;nocache=1 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-989" class="wp-caption-text">Ряд N1241 из базы M3, прогноз с помощью es(), фактические значения из проверочной выборки и непараметрические прогнозные интервалы</p></div>
<p>Как видим, во всех случаях интервалы накрыли все фактически значения из тестовой выборки. В первую очередь это из-за того, что были построены широкие интервалы. В этих условиях совершенно непонятно, какому из методов отдать предпочтение. Для получения дополнительной информации об интервалах можно рассчитать их ширину в единицах следующим образом:</p>
<pre class="decode" title="Ширина интервалов">
mean(ourModel1$upper-ourModel1$lower)
mean(ourModel2$upper-ourModel2$lower)
mean(ourModel3$upper-ourModel3$lower)
</pre>
<p>Получим:</p>
<pre>950.4171
955.0831
850.614</pre>
<p>В этом конкретном примере непараметрические интервалы оказались самыми узкими, что в сочетании с покрытием всех фактических значений в тестовой выборке, указывает на то, что это наилучший метод построения интервалов в данном случае. Это, впрочем, не означает, что всегда и везде надо строить непараметрические интервалы. Выбор метода должен быть продиктован тем, какие именно предпосылки нарушены в модели. Если бы мы не знали значения из тестовой выборки, мы могли бы провести элементарный анализ остатков. Например:</p>
<pre class="decode" title="Анализ остатков">
forecast::tsdisplay(ourModel1$residuals)

hist(ourModel1$residuals)

qqnorm(ourModel3$residuals)
qqline(ourModel3$residuals)</pre>
<div id="attachment_1270" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2017/05/N1241-residuals-plot.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1270" src="/wp-content/uploads/2017/05/N1241-residuals-plot-300x175.png" alt="" width="300" height="175" class="size-medium wp-image-1270" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-plot-300x175.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-plot-768x448.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-plot-1024x597.png&amp;nocache=1 1024w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-plot.png&amp;nocache=1 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-1270" class="wp-caption-text">Линейный график и коррелограмма по остаткам модели ETS(A,Ad,N)</p></div>
<div id="attachment_1267" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2017/05/N1241-residuals-histogram.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1267" src="/wp-content/uploads/2017/05/N1241-residuals-histogram-300x175.png" alt="" width="300" height="175" class="size-medium wp-image-1267" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-histogram-300x175.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-histogram-768x448.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-histogram-1024x597.png&amp;nocache=1 1024w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-histogram.png&amp;nocache=1 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-1267" class="wp-caption-text">Гистограмма остатков модели ETS(A,Ad,N)</p></div>
<div id="attachment_1268" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2017/05/N1241-residuals-qqplot.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1268" src="/wp-content/uploads/2017/05/N1241-residuals-qqplot-300x175.png" alt="" width="300" height="175" class="size-medium wp-image-1268" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-qqplot-300x175.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-qqplot-768x448.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-qqplot-1024x597.png&amp;nocache=1 1024w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2017/05/N1241-residuals-qqplot.png&amp;nocache=1 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-1268" class="wp-caption-text">Графи квантиль-квантиль по остаткам модели ETS(A,Ad,N)</p></div>
<p>Первый график показывает, как остатки меняются во времени и что собой представляют коррелограммы остатков. Как видим, никакой очевидной автокорреляции и гетероскедастичности в остатках не наблюдается. Это означает, что мы можем предположить, что эти предпосылки не наршаются. То есть нет никакой надобности в полупараметрических интервалах. Однако второй и третий графики показывают, что остатки не распределены нормально (как предполагает модель ETS(A,Ad,N)). А значит параметрические интервалы могут быт неточными. Это мотивирует построение непараметрических интервалов в случае использования модели ETS(A,Ad,N) по ряду N1241.</p>
<p>На сегодня всё. До новых встреч!</p>
<p>Сообщение <a href="https://openforecast.org/ru/2017/06/11/prediction-intervals/">Пакет «smooth» для R. Общие параметры. Часть 1. Прогнозные интервалы</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/ru/2017/06/11/prediction-intervals/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Complex Exponential Smoothing (working paper)</title>
		<link>https://openforecast.org/ru/2016/02/01/complex-exponential-smoothing-working-paper/</link>
					<comments>https://openforecast.org/ru/2016/02/01/complex-exponential-smoothing-working-paper/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Mon, 01 Feb 2016 14:21:29 +0000</pubDate>
				<category><![CDATA[CES]]></category>
		<category><![CDATA[Комплекснозначные модели]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[комплексные переменные]]></category>
		<category><![CDATA[статистика]]></category>
		<category><![CDATA[статьи]]></category>
		<category><![CDATA[теория]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=644</guid>

					<description><![CDATA[<p>Какое-то время назад на сайте ResearchGate я разметил рабочую версию статьи &#171;Complex Exponential Smoothing&#187;. Статья написана мной в соавторстве с Никосом Курентзесом (Nikolaos Kourentzes), естественно, на английском языке, и нацелена на статистический журнал. Посвящена она новому подходу к моделированию временных рядов и прогнозированию, использующему термин &#171;информационный потенциал&#187;. На основе него предложена модель комплексного экспоненциального сглаживания, [&#8230;]</p>
<p>Сообщение <a href="https://openforecast.org/ru/2016/02/01/complex-exponential-smoothing-working-paper/">Complex Exponential Smoothing (working paper)</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Какое-то время назад на сайте <a href="https://www.researchgate.net/" target="_blank">ResearchGate</a> я разметил рабочую версию статьи &#171;Complex Exponential Smoothing&#187;. Статья написана мной в соавторстве с Никосом Курентзесом (<a href="http://kourentzes.com/forecasting" target="_blank">Nikolaos Kourentzes</a>), естественно, на английском языке, и нацелена на статистический журнал. Посвящена она новому подходу к моделированию временных рядов и прогнозированию, использующему термин &#171;информационный потенциал&#187;. На основе него предложена модель комплексного экспоненциального сглаживания, которая позволяет эффективно прогнозировать разные виды рядов без переключения между моделями (как это происходит с ETS). Ознакомиться со статьёй можно вот <a href="https://www.researchgate.net/publication/283488877_Complex_Exponential_Smoothing" target="_blank">тут</a>. Она отправлена в журнал, но пока что находится на стадии рассмотрения, и ответа по ней ещё нет, а на <a href="https://www.researchgate.net/" target="_blank">ResearchGate</a> её уже успели прочитать 43 человека.</p>
<p>Сообщение <a href="https://openforecast.org/ru/2016/02/01/complex-exponential-smoothing-working-paper/">Complex Exponential Smoothing (working paper)</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/ru/2016/02/01/complex-exponential-smoothing-working-paper/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Smooth &#8212; новый пакет для R</title>
		<link>https://openforecast.org/ru/2016/01/30/smooth/</link>
					<comments>https://openforecast.org/ru/2016/01/30/smooth/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Sat, 30 Jan 2016 17:11:42 +0000</pubDate>
				<category><![CDATA[CES]]></category>
		<category><![CDATA[ETS]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[программирование]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=630</guid>

					<description><![CDATA[<p>Давно ничего не появлялось на страницах этого блога. Пора бы исправить этот пробел. Сегодня, 30 января 2016 года, начинает свою жизнь пакет для R под названием &#171;smooth». Пока что он публикуется только на сайте github.com, но в перспективе он появится и в CRAN, что облегчит многим жизнь и позволит забыть о всяких Rtools и devtools. [&#8230;]</p>
<p>Сообщение <a href="https://openforecast.org/ru/2016/01/30/smooth/">Smooth &#8212; новый пакет для R</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Давно ничего не появлялось на страницах этого блога. Пора бы исправить этот пробел.</p>
<p>Сегодня, 30 января 2016 года, начинает свою жизнь пакет для R под названием &#171;<a href="https://github.com/config-i1/smooth" target="_blank">smooth</a>». Пока что он публикуется только на сайте <a href="https://github.com" target="_blank">github.com</a>, но в перспективе он появится и в <a href="https://cran.r-project.org/web/packages/available_packages_by_name.html" target="_blank">CRAN</a>, что облегчит многим жизнь и позволит забыть о всяких Rtools и devtools. Что же входит сейчас в этот замечательный пакет?</p>
<ol>
<li><span class="lang:r decode:true crayon-inline">es()</span> &#8212; функция по оценке экспоненциального сглаживания и построению прогнозов. Об этой функции я уже писал раньше <a href="/2015/08/11/ets2-for-r/">здесь</a>, <a href="/2015/10/05/es-for-r/">здесь</a> и <a href="/2015/12/05/es-tstools-1-6/">здесь</a>.</li>
<li><span class="lang:r decode:true crayon-inline">ces()</span> &#8212; комплексное экспоненциальное сглаживание. Оценка и прогнозирование. Об этой функции я тоже уже писал <a href="/2015/03/04/ces-github/">здесь</a>.</li>
<li><span class="lang:r decode:true crayon-inline">ges()</span> &#8212; обобщённое экспоненциальное сглаживание. Подробней об этой функции я напишу позже, когда разберусь, что же она такое делает и как.</li>
<li><span class="lang:r decode:true crayon-inline">nus()</span> &#8212; метод неравномерного сглаживания. Он был рассмотрен во втором томе <a href="http://www.urait.ru/izdatelstvo/our_authors/6DAFC8E2-7E98-4632-A3D5-F14A3FF8BF3A" target="_blank">нашего учебника по прогнозированию</a>. Когда-нибудь я напишу о нём и на этом сайте&#8230;</li>
<li><span class="lang:r decode:true crayon-inline">ces.auto()</span> &#8212; функция позволяет выбрать наилучшую модель комплексного экспоненциального сглаживания из двух: сезонной и не сезонной. Скорее всего, эта функция со временем покинет пакет &#171;smooth&#187;, так как этот функционал должен по хорошему быть внедрён в функцию <span class="lang:r decode:true crayon-inline">ces()</span>.</li>
<li><span class="lang:r decode:true crayon-inline">sim.ets()</span> &#8212; функция позволяет генерировать временные ряды на основе модели экспоненциального сглаживания (ETS). Возможно, будет переименована в <span class="lang:r decode:true crayon-inline">simulate.ets()</span>, когда <span class="lang:r decode:true crayon-inline">es()</span> начнёт использовать классы в R.</li>
<li><span class="lang:r decode:true crayon-inline">sim.ces()</span> &#8212; функция позволяет генерировать временные ряды на основе модели комплексного экспоненциального сглаживания (CES). Участь её ждёт такая же, как и <span class="lang:r decode:true crayon-inline">sim.ets()</span>.</li>
</ol>
<p>В пакет входит также несколько вспомогательных функций, таких как <span class="lang:r decode:true crayon-inline">graphmaker()</span> (построение линейных графиков) и коэффициенты для расчёта ошибок прогнозирования (MPE, MAPE, SMAPE, MASE, GMRAE). И конечно же, в пакет входит критически важная функция <span class="lang:r decode:true crayon-inline">sowhat()</span>, которая проверяет произвольные запросы на адекватность.</p>
<p>Чтобы установить пакет, нужно совсем ничего &#8212; только пара строк кода в R:</p>
<pre class="decode" >if (!require("devtools")){install.packages("devtools")}
devtools::install_github("config-i1/smooth")</pre>
<p>Замечу, что с пакетом &#171;TStools&#187; при этом ничего плохого не произойдёт. Я продолжаю его поддерживать, и Ланкастерский Центр Прогнозирования продолжает постепенно добавлять новые функции в пакет. Функция <span class="lang:r decode:true crayon-inline">es()</span> при этом какое-то время будет в нём обновляться, но затем будет оттуда окончательно перенесена в &#171;smooth&#187;.</p>
<p>Сообщение <a href="https://openforecast.org/ru/2016/01/30/smooth/">Smooth &#8212; новый пакет для R</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/ru/2016/01/30/smooth/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Презентация на семинаре департамента &#171;Management Science&#187;</title>
		<link>https://openforecast.org/ru/2015/03/18/phd-presentation-2015-03-18/</link>
					<comments>https://openforecast.org/ru/2015/03/18/phd-presentation-2015-03-18/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Wed, 18 Mar 2015 15:10:30 +0000</pubDate>
				<category><![CDATA[CES]]></category>
		<category><![CDATA[Комплекснозначные модели]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[комплексные переменные]]></category>
		<category><![CDATA[презентация]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=126</guid>

					<description><![CDATA[<p>Сегодня я сделал презентацию своей работы (&#171;Комплексное экспоненциальное сглаживание&#187;) на семинаре в Ланкастерском Университете. Присутствовали преподаватели и PhD-студенты департамента Менеджмент Сайнс (Management Science). Получилось, вроде бы, неплохо. Правда, я утром сообразил, что подготовил презентацию по теме, несколько отличающейся от анонсированной, а уже на месте оказалось, что Dropbox не обновил файл с презентацией до последней версии. В [&#8230;]</p>
<p>Сообщение <a href="https://openforecast.org/ru/2015/03/18/phd-presentation-2015-03-18/">Презентация на семинаре департамента &#171;Management Science&#187;</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Сегодня я сделал презентацию своей работы (&#171;Комплексное экспоненциальное сглаживание&#187;) на семинаре в Ланкастерском Университете. Присутствовали преподаватели и PhD-студенты департамента Менеджмент Сайнс (Management Science). Получилось, вроде бы, неплохо. Правда, я утром сообразил, что подготовил презентацию по теме, несколько отличающейся от анонсированной, а уже на месте оказалось, что Dropbox не обновил файл с презентацией до последней версии. В связи с этим часть выступления я рисовал на доске графики и размахивал руками в воздухе. Но, вроде бы, никто ничего не заметил.</p>
<p>Во время презентации спал только один человек. Считаю это личным достижением.</p>
<p>Кому интересно, <a href="/wp-content/uploads/2015/03/2015-03-18_Svetunkov_CES-full.pdf">вот pdf-файл со слайдами</a>.</p>
<p>Сообщение <a href="https://openforecast.org/ru/2015/03/18/phd-presentation-2015-03-18/">Презентация на семинаре департамента &#171;Management Science&#187;</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/ru/2015/03/18/phd-presentation-2015-03-18/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
