<?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/category/ekstrapolyacionnye-metody/ces/feed/" rel="self" type="application/rss+xml" />
	<link>https://openforecast.org/ru/category/ekstrapolyacionnye-metody/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/category/ekstrapolyacionnye-metody/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>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>ISF 2015, Риверсайд, США</title>
		<link>https://openforecast.org/ru/2015/06/25/international-symposium-on-forecasting-2015/</link>
					<comments>https://openforecast.org/ru/2015/06/25/international-symposium-on-forecasting-2015/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Thu, 25 Jun 2015 14:28:29 +0000</pubDate>
				<category><![CDATA[CES]]></category>
		<category><![CDATA[Конференции]]></category>
		<category><![CDATA[ISF]]></category>
		<category><![CDATA[комплексные переменные]]></category>
		<category><![CDATA[конференции]]></category>
		<category><![CDATA[презентация]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=309</guid>

					<description><![CDATA[<p>Закончился междунарнодный симпозиум по прогнозированию, который в этом году проходил в США, городе Риверсайд. Путь до этого места не близкий, разница во времени с Великобританией – восемь часов, а с Санкт-Петербургом – и того больше: десять. Но оно того стоило! Вообще симпозиум был очень плодотворным и интересным. Доклады были на совершенно разные темы: прогнозирование климата, [&#8230;]</p>
<p>Сообщение <a href="https://openforecast.org/ru/2015/06/25/international-symposium-on-forecasting-2015/">ISF 2015, Риверсайд, США</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Закончился <a href="http://forecasters.org/isf/" target="blank">междунарнодный симпозиум по прогнозированию</a>, который в этом году проходил в США, городе Риверсайд. Путь до этого места не близкий, разница во времени с Великобританией – восемь часов, а с Санкт-Петербургом – и того больше: десять. Но оно того стоило!</p>
<p>Вообще симпозиум был очень плодотворным и интересным. Доклады были на совершенно разные темы: прогнозирование климата, электроэнергии, статистические методы, экспертные методы&#8230; Список громадный, на самом деле, и я затрудняюсь рассказать в одном посте обо всём, что было, но когда будут опубликованы презентации с конференции, можно будет взглянуть одним глазком на то, что же там происходило.</p>
<p>Среди выступающих на пленарных секциях был Хал Вэриан (Hal Varian), главный экономист Гугл и автор известного учебника по микроэкономике. Он рассказывал о нескольких сервисах Гугла (Google Trend, Google Correlate, Google Survey), которые позволяют строить любопытные регрессионные модели и собирать кучу полезной информации для маркетологов и практикующих эконометристов. Но вообще об этом ни в сказке сказать, ни пером описать. Было очень интересно!</p>
<p>Попробовал американский виски. Думал, будет фуфло, но оказалось очень прилично. Название не помню, брали что-то наугад, но кажется оно было сделано на основе ржи.</p>
<p>Впрочем, не будем отвлекаться.</p>
<p>Я, конечно же, делал на этом симпозиуме презентацию по прогнозированию с использованием комплексного экспоненциального сглаживания. <a href="/wp-content/uploads/2015/06/2015-06-24_Svetunkov_CES_full.pdf">Вот сама презентация</a>, если кому интересно. Она вызвала живой интерес у ряда исследователей, занимающихся экспоненциальным сглаживанием и статистическими методами, и, кроме того, сумела заинтересовать несколько практикующих прогнозистов (например, из SAP и SAS). Кто знает, может пройдёт какое-то время и моя модель появится в статистичеких программах и будет широко использоваться на практике&#8230; Хотя, конечно, судя по скорости внедрения идей на практике, времени должно пройти немало.</p>
<p>Сообщение <a href="https://openforecast.org/ru/2015/06/25/international-symposium-on-forecasting-2015/">ISF 2015, Риверсайд, США</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/ru/2015/06/25/international-symposium-on-forecasting-2015/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>
		<item>
		<title>Комплексное экспоненциальное сглаживание для R</title>
		<link>https://openforecast.org/ru/2015/03/04/ces-github/</link>
					<comments>https://openforecast.org/ru/2015/03/04/ces-github/#comments</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Wed, 04 Mar 2015 13:05:22 +0000</pubDate>
				<category><![CDATA[CES]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[комплексные переменные]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[статистика]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=48</guid>

					<description><![CDATA[<p>Какое-то время назад я разработал функцию, позволяющую строить прогнозы с использованием модели Комплексного экспоненциального сглаживания (Complex Exponential Smoothing &#8212; CES). Эта функция опубликована на сайте github под лицензией GPL v.3. С помощью этой функции можно давать прогнозы на произвольные промежутки времени как для не сезонных, так и для сезонных временных рядов. Кроме того, функция позволяет [&#8230;]</p>
<p>Сообщение <a href="https://openforecast.org/ru/2015/03/04/ces-github/">Комплексное экспоненциальное сглаживание для R</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Какое-то время назад я разработал функцию, позволяющую строить прогнозы с использованием модели Комплексного экспоненциального сглаживания (Complex Exponential Smoothing &#8212; CES). Эта функция <a title="Страница проекта на guthub" href="https://github.com/config-i1/smooth" target="blank">опубликована на сайте github</a> под лицензией GPL v.3. С помощью этой функции можно давать прогнозы на произвольные промежутки времени как для не сезонных, так и для сезонных временных рядов. Кроме того, функция позволяет включать в модель экзогенные переменные. Давайте рассмотрим пример того, как она работает.</p>
<p>Для того, чтобы установить эту функцию себе на компьютер нужно установить пакет smooth из CRAN:</p>
<pre>install.packages("smooth")</pre>
<p>В качестве альтернативы можно установить пакет из GitHub. Для этого:</p>
<p>1.  Установить пакет &#171;devtools&#187;, если он не установлен:</p>
<pre>if (!require("devtools")){install.packages("devtools")}</pre>
<p>2. Установить пакет &#171;CES&#187; с сайта github:</p>
<pre>devtools::install_github("config-i1/smooth")</pre>
<p>После того, как пакет установился, подключаем его в R:</p>
<pre>library("CES")</pre>
<p>Возьмём для наших примеров временной ряд №387 из базы рядов M3. Для того, чтобы база рядов была доступна, в R надо установить и подключить пакет &#171;Mcomp&#187;:</p>
<pre>install.packages("Mcomp")
library("Mcomp")</pre>
<p>Построим график по ряду:</p>
<pre>plot(M3$N0387$x,ylab="Series N0387")</pre>
<p>Вот он:</p>
<div id="attachment_50" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2015/03/N0387.png"><img decoding="async" aria-describedby="caption-attachment-50" class="size-medium wp-image-50" src="/wp-content/uploads/2015/03/N0387-300x189.png" alt="Ряд 387 из базы рядов M3" width="300" height="189" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N0387-300x189.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N0387.png&amp;nocache=1 859w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-50" class="wp-caption-text">Ряд N0387 из базы рядов M3</p></div>
<p>Этот ряд относится к годовым, для таких рядов в M3 строят прогнозы на срок в 6 лет. Построим CES и дадим точечный и интервальный прогнозы. Делается это с помощью следующей команды:</p>
<pre>ces(M3$N0387$x,h=6,intervals=T) -> test</pre>
<p>Функция выдаёт много информации и возвращает кучу векторов и матриц. Поэтому мы используем &#171;-&gt; test&#187; для сохранения этих данных в отдельный объект. Кроме того, она возвращает нам следующую информацию:</p>
<pre>"Time elapsed: 0.19 seconds"
"Model constructed: Complex Exponential Smoothing"
"a0 + ia1: 1.88365413369954+0.97087980257933i"
"ABS Eigenvalues for stability condition:"
0.9364115 0.1399830
"CF value is: 1574102"
"AIC: 264.846; AICc: 267.922; BIC: 268.407; CIC:260.846"</pre>
<p>Разберём по пунктам, что мы тут получили.</p>
[1] &#8212; нам сообщают, что на построение модели ушло 0,19 секунд, что хорошо. Иногда, когда наблюдений много (например, 100), построение функции может затянуться на десятки секунд. Вызвано это тем, что R достаточно медленная программа. Возможно, я как-нибудь займусь C++ и перепишу код функции, тогда она будет работать значительно эффективней и быстрей. Но это планы на будущее. Сразу же стоит заметить, что скорость вычислений будет меняться от компьютера к компьютеру. Чем мощнее ваш железный конь, тем быстрее будут найдены оптимальные параметры модели.</p>
[2] &#8212; нам сообщили, что построили модель Комплексного экспоненциального сглаживания. Альтернативы &#8212; та же модель, только с сезонностью.</p>
[3] &#8212; мы видим значение комплексной постоянной сглаживания. По ней самой можно сказать, что CES даст прогноз на снижение (так как мнимая часть меньше единицы) и что ряд данных испытывает значительные изменения (так как действительная часть близка к 2).</p>
[4] и [5] &#8212; далее нам выдали значения собственных чисел матрицы дисконтирования. Если все они меньше единицы, то полученная модель стабильна (то есть старые значения не влияют на прогноз). Если бы модель получилась нестабильной, нам бы об этом сообщили.</p>
[6] &#8212; после этого мы видим значение целевой функции (сумма квадратов ошибок), которое само по себе полезной информации несёт немного.</p>
[7] &#8212; и последнее &#8212; значения информационных критериев. Помимо трёх первых стандартных тут ещё рассчитывается комплексный информационный критерий (Complex IC &#8212; CIC), который представляет собой AIC с другим числом степеней свободы (см. <a title="Число степеней свободы в комплекснозначных моделях" href="/2015/03/03/complexdf/">соответствующую заметку</a>).</p>
<p>Функция &#171;ces&#187; так же строит такой график:</p>
<div id="attachment_51" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2015/03/N0387-ces-1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-51" class="size-medium wp-image-51" src="/wp-content/uploads/2015/03/N0387-ces-1-300x189.png" alt="CES и прогноз по ней" width="300" height="189" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N0387-ces-1-300x189.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N0387-ces-1.png&amp;nocache=1 859w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-51" class="wp-caption-text">Ряд N0387 и его прогноз по CES</p></div>
<p>Чтобы использовать прогноз CES, нам достаточно запросить его у R. Точечный прогноз:</p>
<pre>test$forecast</pre>
<p>Интервальный прогноз:</p>
<pre>test$high
test$low</pre>
<p>Если же нас интересует, насколько точно модель дала прогноз, мы можем включить тестовую выборку и немного изменить исходный запрос на:</p>
<pre>x <- ts(c(M3$N0387$x,M3$N0387$xx),frequency=frequency(M3$N0387$x),start=start(M3$N0387$x))
ces(x,h=6,intervals=T,holdout=T) -> test</pre>
<p>Первой строчкой мы объединили обучающую (M3$N0387$x) и тестовую (M3$N0387$xx) выборки в одну и сохранили это всё как объект &#171;x&#187; имеющий тип &#171;ts&#187; &#8212; временной ряд.</p>
<p>Второй строкой мы построили модель CES по обучающей выборке и дали прогноз на тестовую: команда holdout=T сообщает о том, что из всего ряда нужно h=6 последних наблюдений использовать для тестовой выборки. В результате использования этой команды мы получим немного другой вывод в командную строку:</p>
<pre>"Time elapsed: 0.17 seconds"
"Model constructed: Complex Exponential Smoothing"
"a0 + ia1: 1.88365413369954+0.97087980257933i"
"ABS Eigenvalues for stability condition:"
0.9364115 0.1399830
"CF value is: 1574102"
"AIC: 264.846; AICc: 267.922; BIC: 268.407; CIC:260.846"
"MASE: 0.614"
"MASE.lvl: 5.224%"</pre>
<p>Как видим, значения [1] &#8212; [7] идентичны предыдущему выводу, однако к ним добавились [8], сообщающий нам значение <a title="MASE в википедии" href="http://en.wikipedia.org/wiki/Mean_absolute_scaled_error" target="blank">MASE</a> для прогноза и [9] сообщающий нечто похожее только с делением на среднюю величину по исходному ряду данных. Эти значения сами по себе нам ни о чём не говорят, но позволяют сравнивать точность прогнозов разных моделей. MASE здесь используется, так как это наиболее адекватная и наименее смещённая мера точности прогноза. MASE.lvl так же является несмещённой, но при этом имеет некую интерпретацию, аналогичную обычной средней абсолютной процентной ошибки аппроксимации (MAPE).</p>
<p>График всего это выглядит следующим образом:</p>
<div id="attachment_52" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2015/03/N0387-ces-2.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-52" class="size-medium wp-image-52" src="/wp-content/uploads/2015/03/N0387-ces-2-300x189.png" alt="CES и прогноз по ней" width="300" height="189" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N0387-ces-2-300x189.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N0387-ces-2.png&amp;nocache=1 859w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-52" class="wp-caption-text">Ряд N0387 вместе с тестовой выборкой и его прогноз по CES</p></div>
<p>Как видим, прогноз оказался достаточно точным. Впрочем, для какого-то однозначного вывода нужно его сравнить с прогнозами по другим моделям, чего в рамках это статьи мы пока делать не будем.</p>
<p>CES так же умеет строить прогнозы по сезонным временным рядам. Для этого ей нужно передать вектор типа &#171;ts&#187; и задать тип сезонной модели. Например, для сезонного ряда N2568 из M3 команда будет иметь следующий вид:</p>
<pre>ces(M3$N2568$x,h=18,seasonality="F",intervals=T) -> test</pre>
<p>Выбранная сезонность здесь &#8212; &#171;полная&#187; или &#171;комплексная&#187;. Она позволяет моделировать как аддитивную, так  мультипликативную сезонность во временных рядах. В коде так же реализованы частичная (&#171;P&#187;), она же просто аддитивная, сезонность и простая сезонная модель &#171;S&#187;, не имеющая тренда. Подробней обо всём это можно будет почитать в скором времени в статье, которая готовится к выпуску.</p>
<p>А вот вывод нашей команды:</p>
<pre>Non-stable model estimated! Use with care! To avoid that reestimate ces using 'bounds=TRUE'.
"Time elapsed: 4.34 seconds"
"Model constructed: Complex Exponential Smoothing with a full (complex) seasonality"
"a0 + ia1: 1.13652538578959+1.00295810649073i"
"b0 + ib1: 1.66249591228014+1.02106035157178i"
"ABS Eigenvalues for stability condition:"
1.0043258 0.6192850 0.1573755 0.1164405
"CF value is: 36299094"
"AIC: 2079.247; AICc: 2101.13; BIC: 2161.855; CIC:2047.247"</pre>
<p>Как видим, R сообщил нам, что построена нестабильная модель (красная строка). Он нам так же предложил переоценить модель с параметром &#171;bounds=TRUE&#187;, который отвечает за подбор параметров исключительно в области стабильных параметров. Это имеет смысл сделать, так как в противном случае прогноз может быть неадекватным и непредсказуемым (как бы это забавно не звучало), однако скорость вычислений в таком случае снизится.</p>
<p>Из нового в данном выводе &#8212; название модели (с полной сезонностью) и значение сезонной комплексной постоянной сглаживания [5]. Всё остальное аналогично предыдущему примеру. Заметим, что одно из собственных чисел в строке [7] оказалось больше единицы, что как раз и привело к жуткой красной надписи.</p>
<p>Перезапустим функцию с предложенным параметром:</p>
<pre>ces(M3$N2568$x,h=18,seasonality="F",intervals=T,bounds=T) -> test</pre>
<p>Итоговый вывод и прогноз изменятся:</p>
<pre>"Time elapsed: 36.72 seconds"
"Model constructed: Complex Exponential Smoothing with a full (complex) seasonality"
"a0 + ia1: 1.14042311450241+0.99312271083681i"
"b0 + ib1: 1.62771138458957+1.04585709733533i"
"ABS Eigenvalues for stability condition:"
0.9999924 0.5183545 0.2109118 0.1898389
"CF value is: 36209112"
"AIC: 2078.959; AICc: 2100.842; BIC: 2161.567; CIC:2046.959"</pre>
<p>Время на вычисления теперь заняло 36,72 секунды, что почти в 10 раз больше, чем в предыдущий раз. Однако это привело к получению стабильной модели и нахождению коэффициентов, которые гарантируют немного меньшее значение целевой функции. Прогноз по CES в этом случае выглядит так:</p>
<div id="attachment_53" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2015/03/N2568-ces-1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-53" class="size-medium wp-image-53" src="/wp-content/uploads/2015/03/N2568-ces-1-300x189.png" alt="Ряд N2568, CES и прогноз" width="300" height="189" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N2568-ces-1-300x189.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N2568-ces-1.png&amp;nocache=1 859w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-53" class="wp-caption-text">Ряд N2568, CES и прогноз</p></div>
<p>Мы могли бы так же поиграться с тестовой выборкой, но делать этого не будем. Попробуйте проделать это сами ;).</p>
<p>Функция &#171;ces&#187; так же позволяет включать экзогенные переменные. В этом случае нужно ей передать в параметре &#171;xreg&#187; либо вектор (обычный либо &#171;ts&#187;), соответствующей переменной, либо матрицу (или &#171;data.frame&#187;), длинна которой должна либо соответствовать обучающей выборке, либо соответствовать обучающей выборке + горизонту прогнозирования. В первом случае значения экзогенных переменных экстраполируются методом Naïve.</p>
<p>К сожалению, под рукой у меня нет рядов данных, для которых можно было бы использовать экзогенные переменные, так что демонстрацию этой функции оставим на будущее.</p>
<p>Ну, и последнее, что включено в пакет &#171;CES&#187; &#8212; это функция &#171;ces.auto&#187;, которая автоматически выбирает подходящую модель из несезонной / сезонной в зависимости от выбранного ряда данных. Делается это на основе информационного критерия. По умолчанию используется CIC, хотя можно попросить функцию выбрать и другой критерий. Посмотрим, как работает функция для ряда N2568:</p>
<pre>ces.auto(M3$N2568$x,h=18,intervals=T,bounds=T) -> test</pre>
<p>Построения моделей занимает какое-то время, но в конце концов мы получаем следующий вывод:</p>
<pre>"Estimating CES with seasonality = 'N'"
"Estimating CES with seasonality = 'F'"

"The best model is with seasonality = 'F'"
"AIC: 2078.959; AICc: 2100.842; BIC: 2161.567; CIC: 2046.959"</pre>
<p>Информации выводится немного, всё основное содержится в объекте &#171;test&#187;. Самое главное &#8212; это то, что модель точно определила, что перед ней сезонный ряд данных.</p>
<p>Попробуем использовать эту же функцию для какого-нибудь ряда с аддитивной сезонностью и включим модель частичной сезонности. Для примера рассмотрим ряд N1192. Это ряд квартальных данных, период упреждения прогноза в нём обычно берётся равным 8 наблюдений.</p>
<pre>x <- ts(c(M3$N1192$x,M3$N1192$xx),frequency=frequency(M3$N1192$x),start=start(M3$N1192$x))
ces.auto(x,h=8,model.types=c("N","P","F"),holdout=T,bounds=T,intervals=T) -> test</pre>
<p>Параметр &#171;model.types&#187; передаёт функции все названия типов CES, которые нужно проверить по ряду данных. В результате применения этой функции получаем:</p>
<pre>"Estimating CES with seasonality = 'N'"
"Estimating CES with seasonality = 'P'"
"Estimating CES with seasonality = 'F'"

"The best model is with seasonality = 'P'"
"AIC: 204.001; AICc: 234.001; BIC: 210.954; CIC: 197.001"
"MASE: 0.721"
"MASE.lvl: 3.885%"</pre>
<p>Наилучшая модель &#8212; это модель с частичной сезонностью, так как ряд данных имеет аддитивную сезонную компоненту. Выглядит прогноз следующим образом:</p>
<div id="attachment_54" style="width: 310px" class="wp-caption alignnone"><a href="/wp-content/uploads/2015/03/N1192-ces.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-54" class="size-medium wp-image-54" src="/wp-content/uploads/2015/03/N1192-ces-300x189.png" alt="Ряд N1192, CES и прогноз" width="300" height="189" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N1192-ces-300x189.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/03/N1192-ces.png&amp;nocache=1 859w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-54" class="wp-caption-text">Ряд N1192, CES и прогноз</p></div>
<p>Чисто графически видно, что точечный прогноз оказался недостаточно точным. Вызвано это малым количеством данных &#8212; точность CES повышается с ростом числа наблюдений. Тем не менее будущие значения попали в прогнозный интервал, так что не всё потеряно.</p>
<p>Применение той же команды для какого-нибудь другого ряда, только без сезонности, приводит к выбору несезонной модели CES. Можете поверить на слово, а можете сами проверить. Например, на ряде N1041.</p>
<p>По CES пока всё. Как только что-нибудь появится новое, обязательно напишу.</p>
<p>До новых встреч!</p>
<p>Сообщение <a href="https://openforecast.org/ru/2015/03/04/ces-github/">Комплексное экспоненциальное сглаживание для R</a> появились сначала на <a href="https://openforecast.org/ru">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/ru/2015/03/04/ces-github/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
