{"id":9,"date":"2020-06-13T20:55:32","date_gmt":"2020-06-13T20:55:32","guid":{"rendered":"https:\/\/eic.cefet-rj.br\/~dal\/?page_id=9"},"modified":"2023-07-13T09:34:04","modified_gmt":"2023-07-13T09:34:04","slug":"sbbd-2020-harbinger","status":"publish","type":"post","link":"https:\/\/eic.cefet-rj.br\/~dal\/sbbd-2020-harbinger\/","title":{"rendered":"SBBD 2020 &#8211; Harbinger"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9\" class=\"elementor elementor-9\">\n\t\t\t\t\n<p><strong>Resumo:<\/strong><br \/>Ao analisar s\u00e9ries temporais \u00e9 poss\u00edvel observar mudan\u00e7as significativas no comportamento das observa\u00e7\u00f5es que frequentemente caracterizam a ocorr\u00eancia de eventos. Eventos se apresentam como anomalias, pontos de mudan\u00e7a, ou padr\u00f5es frequentes. Na literatura existem diversos m\u00e9todos para detec\u00e7\u00e3o de eventos. Entretanto, a busca por um m\u00e9todo adequado para uma s\u00e9rie temporal n\u00e3o \u00e9 uma tarefa simples, principalmente considerando-se que a natureza dos eventos muitas vezes n\u00e3o \u00e9 conhecida. Neste contexto, este trabalho apresenta <em>Harbinger<\/em>, um <em>framework <\/em>para integra\u00e7\u00e3o e an\u00e1lise de m\u00e9todos de detec\u00e7\u00e3o de eventos. O <em>Harbinger <\/em>foi avaliado em dados sint\u00e9ticos e reais, onde foi poss\u00edvel constatar que suas funcionalidades auxiliam na escolha dos m\u00e9todos e na compreens\u00e3o dos eventos detectados.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e7a4602 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"e7a4602\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/sbbd.org.br\/2020\/wp-content\/uploads\/sites\/13\/2020\/09\/Harbinger-ST5.pdf\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-download\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download Pre-print<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-17ae4a7 elementor-widget elementor-widget-text-editor\" data-id=\"17ae4a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p><b>Apresenta\u00e7\u00e3o para o SBBD 2020:<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ff592c elementor-widget elementor-widget-video\" data-id=\"8ff592c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/ErLyo7dMhv8&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-55480f5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"55480f5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6d50f18\" data-id=\"6d50f18\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8b7a416 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8b7a416\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3e63b7b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3e63b7b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a745d82\" data-id=\"a745d82\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-70c1431 elementor-widget elementor-widget-heading\" data-id=\"70c1431\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Estrutura geral de m\u00f3dulos<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ae1d7c elementor-widget elementor-widget-text-editor\" data-id=\"7ae1d7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A estrutura geral do Harbinger \u00e9 ilustrada na Fig. 1, sendo formada por quatro principais m\u00f3dulos de funcionalidade: detec\u00e7\u00e3o de eventos (em azul), avalia\u00e7\u00e3o de qualidade de detec\u00e7\u00f5es (em verde), combina\u00e7\u00e3o de resultados de detec\u00e7\u00e3o (em laranja), e compara\u00e7\u00e3o de desempenhos de detec\u00e7\u00e3o (em roxo). A descri\u00e7\u00e3o dos par\u00e2metros de execu\u00e7\u00e3o do Harbinger, assim como de seus artefatos produzidos \u00e9 apresentada na Fig. 2. Mais informa\u00e7\u00f5es podem ser encontradas no artigo dedicado.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5d8b1a6 elementor-widget elementor-widget-text-editor\" data-id=\"5d8b1a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\">Fig. 1: Diagrama geral dos m\u00f3dulos<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a03d861 elementor-widget elementor-widget-image\" data-id=\"a03d861\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/elementor\/thumbs\/diagrama_harbinger-otmv5jo22sctdd4cobsflj4jp1wks04dau1xtvgb9c.png\" title=\"diagrama_harbinger\" alt=\"diagrama_harbinger\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-810909b elementor-widget elementor-widget-text-editor\" data-id=\"810909b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\">Fig. 2: Par\u00e2metros de execu\u00e7\u00e3o e artefatos produzidos<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-684ef83 elementor-widget elementor-widget-image\" data-id=\"684ef83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-768x432.png\" class=\"attachment-medium_large size-medium_large wp-image-415\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-768x432.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-300x169.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-1024x576.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-1536x864.png 1536w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1.png 1607w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0761995 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0761995\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5e9de39\" data-id=\"5e9de39\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-63de967 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"63de967\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e0b3e2a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e0b3e2a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-884728b\" data-id=\"884728b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0f9e88c elementor-widget elementor-widget-heading\" data-id=\"0f9e88c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Disponibilidade<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-25d827c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"25d827c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1cba43a\" data-id=\"1cba43a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-aaf9770 elementor-widget__width-auto elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"aaf9770\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"https:\/\/github.com\/cefet-rj-dal\/harbinger\" target=\"_blank\">\n\t\t\t<i aria-hidden=\"true\" class=\"fab fa-github\"><\/i>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe269e elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"4fe269e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/github.com\/cefet-rj-dal\/harbinger\" target=\"_blank\">Github<\/a><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-ebdbe3f\" data-id=\"ebdbe3f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5fd6698 elementor-widget elementor-widget-text-editor\" data-id=\"5fd6698\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>O Harbinger est\u00e1 dispon\u00edvel no Github e pode ser baixado e carregado ao ambiente R com o c\u00f3digo a seguir:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-235bd2f elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"235bd2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; source( \"<a href=\"https:\/\/raw.githubusercontent.com\/cefet-rj-dal\/harbinger\/master\/harbinger.R\">https:\/\/raw.githubusercontent.com\/cefet-rj-dal\/harbinger\/master\/harbinger.R<\/a>\" )<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e824ac4 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"e824ac4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Exemplos de utiliza\u00e7\u00e3o dos m\u00e9todos de detec\u00e7\u00e3o de eventos implementados no framework est\u00e3o dispon\u00edveis em:<\/p>\n<ul>\n<li>\u00a0<a href=\"https:\/\/github.com\/cefet-rj-dal\/harbinger\/blob\/master\/usage.r\">usage.r<\/a><\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8f17c76 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8f17c76\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f2dbad4\" data-id=\"f2dbad4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5e8c584 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"5e8c584\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5e02e25 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5e02e25\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-841f980\" data-id=\"841f980\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0dd719e elementor-widget elementor-widget-heading\" data-id=\"0dd719e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Utiliza\u00e7\u00e3o<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b27abd5 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"b27abd5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Para exemplificar a utiliza\u00e7\u00e3o dos m\u00f3dulos do framework Harbinger vamos adotar os seguintes conjuntos de dados:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f95a7d elementor-widget elementor-widget-heading\" data-id=\"8f95a7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Conjuntos de dados<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-03772d6 elementor-widget elementor-widget-heading\" data-id=\"03772d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">S\u00e9rie Temporal Sint\u00e9tica N\u00e3o Estacion\u00e1ria (NE)<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-956a414 elementor-widget elementor-widget-text-editor\" data-id=\"956a414\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Para evidenciar as mudan\u00e7as de comportamento de uma s\u00e9rie temporal, foi desenvolvida uma s\u00e9rie temporal sint\u00e9tica y com propriedades n\u00e3o estacion\u00e1rias (NE) produzida a partir do trabalho de <a href=\"https:\/\/doi.org\/10.1016\/j.knosys.2018.10.041\">Salles et al. [2019]<\/a>. Esta s\u00e9rie \u00e9 composta por 1000 observa\u00e7\u00f5es (yi, i=1,&#8230;,1000) onde a subsequ\u00eancia &lt;y1,&#8230;,y200&gt; representa uma s\u00e9rie estacion\u00e1ria. As demais subsequ\u00eancias ilustram diversas formas de n\u00e3o estacionariedade. Em &lt;y201,&#8230;,y400&gt; observa-se a estacionariedade de tend\u00eancia, em &lt;y401,&#8230;,y600&gt; a estacionariedade de n\u00edvel, em &lt;y601,&#8230;,y800&gt; a heteroscedasticidade, e em &lt;y801,&#8230;,y1000&gt; a estacionariedade por diferencia\u00e7\u00e3o.<\/p>\n<p>Esta s\u00e9rie temporal \u00e9 constru\u00edda utilizando-se o seguinte c\u00f3digo:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b4e749 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"3b4e749\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; source(\"<a href=\"https:\/\/raw.githubusercontent.com\/cefet-rj-dal\/harbinger\/master\/nonstationarity_sym.r\">https:\/\/raw.githubusercontent.com\/cefet-rj-dal\/harbinger\/master\/nonstationarity_sym.r<\/a>\")<br \/>&gt; nonstat_ts &lt;- nonstationarity_sym(ts.len=200,ts.mean=0,ts.var=1)<br \/>&gt; plot<span class=\"p\">(<\/span>ts<span class=\"p\">(<\/span>nonstat_ts<span class=\"p\">),<\/span>type<span class=\"o\">=<\/span><span class=\"s\">\"l\"<\/span><span class=\"p\">,<\/span>xlab<span class=\"o\">=<\/span><span class=\"s\">\"time\"<\/span><span class=\"p\">)<\/span><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69f7c4a elementor-widget elementor-widget-image\" data-id=\"69f7c4a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"746\" height=\"297\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/serie_non.png\" class=\"attachment-medium_large size-medium_large wp-image-463\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/serie_non.png 746w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/serie_non-300x119.png 300w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0aa19f elementor-widget elementor-widget-heading\" data-id=\"e0aa19f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Conjunto de Dados GECCO Challenge (GECCO)<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a77a8ad elementor-widget elementor-widget-text-editor\" data-id=\"a77a8ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Foi tamb\u00e9m utilizado para an\u00e1lise o conjunto de dados criado para o GECCO Challenge 2018 <a href=\"http:\/\/www.spotseven.de\/wp-content\/uploads\/2018\/03\/rulesGeccoIc2018.pdf\">[Rehbach et al., 2018]<\/a>. Para compor este conjunto, foram se-lecionadas 1500 observa\u00e7\u00f5es coletadas a cada minuto contendo 72 eventos identificados. Foram coletadas 9 vari\u00e1veis relacionadas \u00e0 qualidade da \u00e1gua, das quais 5 foram selecionadas por apresentar maior variabilidade em suas observa\u00e7\u00f5es. S\u00e3o elas Tp, pH, Redox, Leit e Trueb, representando a temperatura, PH, potencial Redox, condutividade el\u00e9trica e turva\u00e7\u00e3o, respectivamente.<\/p>\n<p>Este conjunto de dados \u00e9 disponibilizado pelo pacote-R\u00a0EventDetectR e pode ser utilizado com o seguinte c\u00f3digo:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a4d5ac elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"1a4d5ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; library(EventDetectR)<br \/>&gt; gecco &lt;- geccoIC2018Train[16500:18000,]<br \/>&gt; plot(ts(gecco$Redox),type=\"l\",xlab=\"time\")<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dee70e0 elementor-widget elementor-widget-image\" data-id=\"dee70e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"623\" height=\"279\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/redox.jpg\" class=\"attachment-medium_large size-medium_large wp-image-464\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/redox.jpg 623w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/redox-300x134.jpg 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/redox-604x270.jpg 604w\" sizes=\"(max-width: 623px) 100vw, 623px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd5b100 elementor-widget elementor-widget-heading\" data-id=\"dd5b100\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">1. M\u00f3dulos de detec\u00e7\u00e3o e combina\u00e7\u00e3o<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eddfaec elementor-widget elementor-widget-text-editor\" data-id=\"eddfaec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A funcionalidade de detec\u00e7\u00e3o de eventos \u00e9 responsabilidade da fun\u00e7\u00e3o chamada\u00a0<strong>evtdet<\/strong>.<\/p>\n<p>Esta fun\u00e7\u00e3o recebe como entrada os par\u00e2metros:<\/p>\n<ul>\n<li><strong>Y<\/strong>: um data.frame contendo uma ou mais vari\u00e1veis (s\u00e9ries temporais) onde a primeira vari\u00e1vel se refere ao tempo (data ou \u00edndice sequencial).<\/li>\n<li><strong>\u0192<\/strong>: fun\u00e7\u00e3o para detec\u00e7\u00e3o de eventos tendo <strong>Y<\/strong> como entrada e um data.frame com tr\u00eas vari\u00e1veis (<em>time<\/em> (instante\/ \u00edndice de eventos), <em>serie<\/em> (nome da s\u00e9rie correspondente) e <em>type<\/em> (tipo do evento)) como sa\u00edda.<\/li>\n<li><strong>par<\/strong>: lista de par\u00e2metros para <strong>\u0192<\/strong>.<\/li>\n<\/ul>\n<p>A sa\u00edda da fun\u00e7\u00e3o \u00e9:<\/p>\n<ul>\n<li>um data.frame com tr\u00eas vari\u00e1veis: <em>time<\/em> (instante\/ \u00edndice de eventos), <em>serie<\/em> (nome da s\u00e9rie correspondente) e <em>type<\/em> (tipo do evento).<\/li>\n<\/ul>\n<p>Deste modo, a implementa\u00e7\u00e3o da fun\u00e7\u00e3o\u00a0<strong>evtdet\u00a0<\/strong>segue o seguinte padr\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7282550 elementor-widget elementor-widget-text-editor\" data-id=\"7282550\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>evtdet <span class=\"o\">&lt;-<\/span> <span class=\"kr\">function<\/span><span class=\"p\">(<\/span>data<span class=\"p\">,<\/span>func<span class=\"p\">,<\/span><span class=\"kc\">...<\/span><span class=\"p\">){<br \/><\/span>\n  events <span class=\"o\">&lt;-<\/span> <span class=\"kp\">do.call<\/span><span class=\"p\">(<\/span>func<span class=\"p\">,<\/span><span class=\"kt\">c<\/span><span class=\"p\">(<\/span><span class=\"kt\">list<\/span><span class=\"p\">(<\/span>data<span class=\"p\">),<\/span><span class=\"kt\">list<\/span><span class=\"p\">(<\/span><span class=\"kc\">...<\/span><span class=\"p\">)))<br \/><\/span>\n  <span class=\"kr\">return<\/span><span class=\"p\">(<\/span>events<span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8fffae elementor-widget elementor-widget-text-editor\" data-id=\"b8fffae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Principais m\u00e9todos de detec\u00e7\u00e3o pr\u00e9-implementados:<\/strong><\/p>\n<p>O framework permite ao usu\u00e1rio a defini\u00e7\u00e3o de m\u00e9todos de detec\u00e7\u00e3o de eventos personalizados. Mesmo assim, Harbinger tamb\u00e9m conta com a implementa\u00e7\u00e3o de diversos m\u00e9todos de detec\u00e7\u00e3o de eventos. Os principais m\u00e9todos implementados s\u00e3o descritos em seu artigo dedicado [].<\/p>\n<p>Fixando as implementa\u00e7\u00f5es dos m\u00e9todos mencionados como o par\u00e2metro \u0192 da fun\u00e7\u00e3o evtdet definimos fun\u00e7\u00f5es auxiliares para detec\u00e7\u00e3o de eventos. Alguns exemplos s\u00e3o mostrados a seguir:<\/p>\n<ul>\n<li><strong>M\u00e9todo AN<\/strong>: evtdet.an_outliers(Y,&#8230;)<\/li>\n<li><strong>M\u00e9todo CF<\/strong>: evtdet.changeFinder(Y,&#8230;)<\/li>\n<li><strong>M\u00e9todo GARCH<\/strong>: evtdet.garch_volatility_outlier(Y,&#8230;)<\/li>\n<li><strong>M\u00e9todo SCP<\/strong>: evtdet.seminalChangePoint(Y,&#8230;)<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d2a99b elementor-widget elementor-widget-heading\" data-id=\"1d2a99b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplos de uso - Detec\u00e7\u00e3o de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-df0132e elementor-widget elementor-widget-text-editor\" data-id=\"df0132e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Adaptando dados do conjunto NE para estrutura padr\u00e3o do Harbinger:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ec98aa elementor-widget elementor-widget-text-editor\" data-id=\"7ec98aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; test &lt;- data.frame(time=1:length(nonstat_ts), x=nonstat_ts)<br><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c8a229c elementor-widget elementor-widget-text-editor\" data-id=\"c8a229c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o com o m\u00e9todo AN:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d67e21 elementor-widget elementor-widget-text-editor\" data-id=\"7d67e21\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== Adaptive Normalization Outliers ======<br \/>#Detect<br \/>&gt; events_an &lt;- evtdet.an_outliers(test,w=20,alpha=1.5)<br \/>#Plot<br \/>&gt; print(evtplot(test,events_an,reference))<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-319effd elementor-widget elementor-widget-image\" data-id=\"319effd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"310\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an-768x310.png\" class=\"attachment-medium_large size-medium_large wp-image-473\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an-768x310.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an-300x121.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an-1024x413.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an.png 1504w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f46513e elementor-widget elementor-widget-text-editor\" data-id=\"f46513e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o com o m\u00e9todo CF:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08ff655 elementor-widget elementor-widget-text-editor\" data-id=\"08ff655\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== ChangeFinder (2005) ======<br \/>#Auxiliary model definition<br \/>ARIMA &lt;- function(data) forecast::auto.arima(data)<br \/>#Detect<br \/>&gt; events_cf &lt;- evtdet.changeFinder(test,mdl=ARIMA,m=5)<br \/>#Plot<br \/>&gt; print(evtplot(test,events_cf, reference, mark.cp=TRUE))<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ff7c7d elementor-widget elementor-widget-image\" data-id=\"7ff7c7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"312\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3-768x312.png\" class=\"attachment-medium_large size-medium_large wp-image-474\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3-768x312.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3-300x122.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3-1024x416.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3.png 1503w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1097b2 elementor-widget elementor-widget-text-editor\" data-id=\"e1097b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o com o m\u00e9todo GARCH:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3abe751 elementor-widget elementor-widget-text-editor\" data-id=\"3abe751\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== Garch Volatility Outliers ======<br \/>#Garch specs<br \/>&gt; garch11 &lt;- <br \/>  rugarch::ugarchspec(<br \/> \u00a0 \u00a0 variance.model = list(model = \"sGARCH\", garchOrder = c(1, 1)), \u00a0 \u00a0 \u00a0 \u00a0mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), \u00a0 \u00a0 \u00a0 \u00a0 \u00a0distribution.model = \"norm\")<br \/>#Detect<br \/>&gt; events_garch &lt;-evtdet.garch_volatility_outlier(test,spec=garch11,alpha=1.5)<br \/>#Plot<br \/>&gt; print(evtplot(test,events_garch, reference))<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9045f45 elementor-widget elementor-widget-image\" data-id=\"9045f45\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"315\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch-768x315.png\" class=\"attachment-medium_large size-medium_large wp-image-475\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch-768x315.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch-300x123.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch-1024x419.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch.png 1504w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca1a27a elementor-widget elementor-widget-heading\" data-id=\"ca1a27a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplo de uso - Combina\u00e7\u00e3o de M\u00e9todos de Detec\u00e7\u00e3o de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e73f586 elementor-widget elementor-widget-text-editor\" data-id=\"e73f586\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o de eventos a partir da combina\u00e7\u00e3o dos m\u00e9todos AN, CF e GARCH:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-807f04c elementor-widget elementor-widget-text-editor\" data-id=\"807f04c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== Combining detected events ======<br \/>#Combining detections<br \/>&gt; an_cf_garch &lt;- rbind(events_an, events_cf, events_garch)<br \/>#Plot<br \/>&gt; print( evtplot( test, an_cf_garch, mark.cp=TRUE ) )<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42c95dd elementor-widget elementor-widget-image\" data-id=\"42c95dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"307\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination-768x307.png\" class=\"attachment-medium_large size-medium_large wp-image-476\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination-768x307.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination-300x120.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination-1024x410.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination.png 1505w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2f6576 elementor-widget elementor-widget-heading\" data-id=\"e2f6576\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">2. M\u00f3dulos de avalia\u00e7\u00e3o e compara\u00e7\u00e3o<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1436c56 elementor-widget elementor-widget-text-editor\" data-id=\"1436c56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Uma vez tendo detectado eventos em uma s\u00e9rie temporal, \u00e9 necess\u00e1rio avaliar a qualidade desta detec\u00e7\u00e3o e o desempenho do m\u00e9todo escolhido. Esta avalia\u00e7\u00e3o \u00e9 de responsabilidade da fun\u00e7\u00e3o\u00a0<strong>evaluate<\/strong>.<\/p>\n<p>Esta fun\u00e7\u00e3o recebe como entrada os par\u00e2metros:<\/p>\n<ul>\n<li><strong>E<\/strong>: retorno da fun\u00e7\u00e3o\u00a0<strong>evtdet\u00a0<\/strong>relativo a uma s\u00e9rie temporal particular.<\/li>\n<li><em><strong>g<\/strong><\/em>: fun\u00e7\u00e3o para c\u00e1lculo de m\u00e9trica de qualidade da detec\u00e7\u00e3o de eventos.<\/li>\n<li><strong>E_ref<\/strong>: data.frame com o mesmo comprimento de X contendo duas vari\u00e1veis: <em>time<\/em> (tempo (data ou \u00edndice sequencial)) e <em>event<\/em> (valores booleanos indicativos da real ocorr\u00eancia de eventos em X)<\/li>\n<\/ul>\n<p>A sa\u00edda da fun\u00e7\u00e3o \u00e9:<\/p>\n<ul>\n<li>Valor da m\u00e9trica de qualidade calculada.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e00829d elementor-widget elementor-widget-text-editor\" data-id=\"e00829d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Principais m\u00e9tricas de qualidade pr\u00e9-implementadas:<\/strong><\/p>\n<p>Com o objetivo de facilitar o processo de avalia\u00e7\u00e3o, Harbinger conta com a implementa\u00e7\u00e3o das principais m\u00e9tricas utilizadas para se avaliar a qualidade da detec\u00e7\u00e3o de eventos.\u00a0Deste modo, a chamada \u00e0 fun\u00e7\u00e3o <strong>evaluate<\/strong> segue o seguinte padr\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a4439c elementor-widget elementor-widget-text-editor\" data-id=\"4a4439c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(E, E_ref, metric=\"confusion_matrix\")<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e5556d elementor-widget elementor-widget-text-editor\" data-id=\"2e5556d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Neste caso, para se defnir o par\u00e2metro <em><strong>g<\/strong><\/em> basta especificar o nome da m\u00e9trica dentre as seguintes op\u00e7\u00f5es:<\/p>\n<ul>\n<li>Matriz de confus\u00e3o: &#8220;confusion_matrix&#8221;<\/li>\n<li>Acur\u00e1cia: &#8220;accuracy&#8221;<\/li>\n<li>Sensitividade: &#8220;sensitivity&#8221;<\/li>\n<li>Especificidade: &#8220;specificity&#8221;<\/li>\n<li>Valor preditivo positivo: &#8220;pos_pred_value&#8221;<\/li>\n<li>Valor preditivo negativo: &#8220;neg_pred_value&#8221;<\/li>\n<li>Precis\u00e3o: &#8220;precision&#8221;<\/li>\n<li>Revoca\u00e7\u00e3o: &#8220;recall&#8221;<\/li>\n<li>F1: &#8220;F1&#8221;<\/li>\n<li>Preval\u00eancia: &#8220;prevalence&#8221;<\/li>\n<li>Taxa de detec\u00e7\u00e3o: &#8220;detection_rate&#8221;<\/li>\n<li>Preval\u00eancia de detec\u00e7\u00e3o: &#8220;detection_prevalence&#8221;<\/li>\n<li>Acur\u00e1cia equilibrada: &#8220;balanced_accuracy&#8221;<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f457e1 elementor-widget elementor-widget-heading\" data-id=\"8f457e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplos de uso - Avalia\u00e7\u00e3o da Detec\u00e7\u00e3o de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ba2d7c elementor-widget elementor-widget-text-editor\" data-id=\"8ba2d7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Adaptando dados do conjunto GECCO para estrutura padr\u00e3o do Harbinger:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-043fc63 elementor-widget elementor-widget-text-editor\" data-id=\"043fc63\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; test &lt;- subset(gecco, select=c(Time, Trueb))<br \/>&gt; reference <span class=\"o\">&lt;-<\/span> <span class=\"kp\">subset<\/span><span class=\"p\">(<\/span>train<span class=\"p\">,<\/span> select<span class=\"o\">=<\/span><span class=\"kt\">c<\/span><span class=\"p\">(<\/span>Time<span class=\"p\">,<\/span> EVENT<span class=\"p\">))<br \/><\/span><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b2f2b5c elementor-widget elementor-widget-text-editor\" data-id=\"b2f2b5c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o com o m\u00e9todo SCP:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53ccfbb elementor-widget elementor-widget-text-editor\" data-id=\"53ccfbb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== Seminal Change Point (1999) ======\u00a0<br \/>#Detect\u00a0<br \/>&gt; events_scp &lt;- evtdet.seminalChangePoint(test,w=100) <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c56fb80 elementor-widget elementor-widget-text-editor\" data-id=\"c56fb80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avalia\u00e7\u00e3o por matriz de confus\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c99aa75 elementor-widget elementor-widget-text-editor\" data-id=\"c99aa75\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(events_scp, reference, metric=\"confusion_matrix\")<br \/><br \/>         Events <br \/>Detected TRUE FALSE<br \/>TRUE     72   114 <br \/>FALSE    0    1315 <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c8d2ab elementor-widget elementor-widget-text-editor\" data-id=\"5c8d2ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avalia\u00e7\u00e3o por F1:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-10b4dc6 elementor-widget elementor-widget-text-editor\" data-id=\"10b4dc6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(events_scp, reference, metric=\"F1\")<br \/><br \/>       F1 <br \/>0.5581395 <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-14071d3 elementor-widget elementor-widget-text-editor\" data-id=\"14071d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avalia\u00e7\u00e3o por precis\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9af9aae elementor-widget elementor-widget-text-editor\" data-id=\"9af9aae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(events_scp, reference, metric=\"precision\")<br \/><br \/>Precision <br \/>0.3870968 <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8effe50 elementor-widget elementor-widget-text-editor\" data-id=\"8effe50\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avalia\u00e7\u00e3o por revoca\u00e7\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5abc610 elementor-widget elementor-widget-text-editor\" data-id=\"5abc610\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(events_scp, reference, metric=\"recall\")<br \/><br \/>\u00a0  Recall <br \/>        1<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-af9a616 elementor-widget elementor-widget-heading\" data-id=\"af9a616\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplo de uso - Avalia\u00e7\u00e3o Visual de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d807056 elementor-widget elementor-widget-text-editor\" data-id=\"d807056\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A avalia\u00e7\u00e3o visual dos eventos detectados \u00e9 de responsabilidade da fun\u00e7\u00e3o <strong>evtplot<\/strong>.<\/p>\n<p>Esta fun\u00e7\u00e3o recebe como entrada os par\u00e2metros:<\/p>\n<ul>\n<li><strong>Y<\/strong>: mesmo utlizado em <strong>evtdet<\/strong>.<\/li>\n<li><strong>E<\/strong>: retorno da fun\u00e7\u00e3o\u00a0<strong>evtdet<\/strong>.<\/li>\n<li><strong>E_ref<\/strong>: mesmo utilizado em <strong>evaluate<\/strong>.<\/li>\n<\/ul>\n<p>A sa\u00edda da fun\u00e7\u00e3o \u00e9:<\/p>\n<ul>\n<li>Gr\u00e1fico com as observa\u00e7\u00f5es da s\u00e9rie temporal, assim como marca\u00e7\u00f5es referentes aos resultados da detec\u00e7\u00e3o de eventos. Marca\u00e7\u00f5es vermelhas indicam eventos detectados. Al\u00e9m disso, s\u00e3o marcados em azul os eventos reais em E_ref, e em verde a coincid\u00eancia entre o evento detectado e o evento real.<\/li>\n<\/ul>\n<div>Um exemplo de sua utiliza\u00e7\u00e3o e sa\u00edda \u00e9 apresentado a seguir:<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8afb27a elementor-widget elementor-widget-text-editor\" data-id=\"8afb27a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#Plot <br \/>&gt; print(evtplot(test,events_scp, reference)) <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a7fa52 elementor-widget elementor-widget-image\" data-id=\"3a7fa52\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"313\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal-768x313.png\" class=\"attachment-medium_large size-medium_large wp-image-479\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal-768x313.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal-300x122.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal-1024x417.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal.png 1504w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d2c3ce1 elementor-widget elementor-widget-heading\" data-id=\"d2c3ce1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplo de uso - Compara\u00e7\u00e3o de M\u00e9todos de Detec\u00e7\u00e3o de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f6bba7e elementor-widget elementor-widget-text-editor\" data-id=\"f6bba7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Podemos comparar o desempenho de detec\u00e7\u00e3o de diversos m\u00e9todos de maneira a avaliar a sua adequabilidade aos dados assim como observar oportunidades de combina\u00e7\u00e3o de m\u00e9todos:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77dd344 elementor-widget elementor-widget-text-editor\" data-id=\"77dd344\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#Detect<br \/>&gt; events_an &lt;- evtdet.an_outliers(test,w=100,alpha=1.5)<br \/>&gt; events_cf &lt;- evtdet.changeFinder(test,mdl=ARIMA,m=5)<br \/>&gt; events_garch &lt;- evtdet.garch_volatility_outlier(test,spec=garch11,alpha=1.5)<br \/>&gt; events_scp &lt;- evtdet.seminalChangePoint(test, w=50)<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c60411 elementor-widget elementor-widget-text-editor\" data-id=\"7c60411\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#Evaluate<br \/>&gt; sapply(list(events_an,events_cf,events_garch,events_scp), <br \/>         evaluate, reference, metric=\"F1\")<br \/><br \/>       F1        F1        F1        F1 <br \/>0.5088339 0.1904762 0.1438356 0.4298507 <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-af99624 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"af99624\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f3c35e7\" data-id=\"f3c35e7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2d8688e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"2d8688e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-18e7cac elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"18e7cac\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e710266\" data-id=\"e710266\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a164ccb elementor-widget elementor-widget-heading\" data-id=\"a164ccb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">M\u00e9todos de detec\u00e7\u00e3o personalizados<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0fbcb22 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"0fbcb22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>O framework permite ao usu\u00e1rio a defini\u00e7\u00e3o de m\u00e9todos de detec\u00e7\u00e3o de eventos personalizados.<\/p>\n<p>Para isso, basta implementar o m\u00e9todo em uma fun\u00e7\u00e3o (<strong>\u0192<\/strong>) para detec\u00e7\u00e3o de eventos tendo <strong>Y<\/strong> como entrada e um data.frame com tr\u00eas vari\u00e1veis (<em>time<\/em> (instante\/ \u00edndice de eventos), <em>serie<\/em> (nome da s\u00e9rie correspondente) e <em>type<\/em> (tipo do evento)) como sa\u00edda.<\/p>\n<p>Um exemplo da implementa\u00e7\u00e3o de tal fun\u00e7\u00e3o \u00e9 dado a seguir. O c\u00f3digo define uma fun\u00e7\u00e3o que identifica outliers nas observa\u00e7\u00f5es de uma s\u00e9rie temporal com base no primeiro e terceiro quartis e a dist\u00e2ncia interquartil:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6cc0b2e elementor-widget elementor-widget-text-editor\" data-id=\"6cc0b2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; outliers &lt;- function(data, alpha=1.5){<br \/>  <br \/>  serie_name &lt;- names(data)[-1]<br \/>  names(data) &lt;- c(\"time\",\"serie\")  <br \/>  serie &lt;- data$serie<br \/>  <br \/>  #===== Boxplot analysis of data ======<br \/>  outliers.index &lt;- function(data, alpha = 1.5){<br \/>    org = length(data)    <br \/>    if (org &gt;= 30) {<br \/>      q = quantile(data)      <br \/>      IQR = q[4] - q[2]<br \/>      lq1 = q[2] - alpha*IQR<br \/>      hq3 = q[4] + alpha*IQR<br \/>      cond = data &lt; lq1 | data &gt; hq3<br \/>      index.out = which(cond)#data[cond,]<br \/>    }<br \/>    return (index.out)<br \/>  }<br \/>  <br \/>  #Returns index of outlier observations<br \/>  index.out &lt;- outliers.index(serie,alpha)<br \/>  <br \/>  anomalies &lt;- cbind.data.frame(time=data[index.out,\"time\"],<br \/>                                serie=serie_name,<br \/>                                type=\"anomaly\")<br \/>  names(anomalies) &lt;- c(\"time\",\"serie\",\"type\")<br \/>  <br \/>  return(anomalies)<br \/>}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f8db3d0 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"f8db3d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Uma vez implementado, o m\u00e9todo pode ser integrado ao Harbinger da seguinte maneira:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb58169 elementor-widget elementor-widget-text-editor\" data-id=\"fb58169\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; events &lt;- evtdet(data, outliers, alpha=1.5)<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d21bb7 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"9d21bb7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Outra alternativa \u00e9 criar uma fun\u00e7\u00e3o wrapper do m\u00e9todo implementado como feito a seguir:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1fac3c1 elementor-widget elementor-widget-text-editor\" data-id=\"1fac3c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evtdet.outliers &lt;- function(data,...){<br \/>  <br \/>  events &lt;- evtdet(data, outlier , ...)<br \/>  <br \/>  return(events)<br \/>}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-75ad11c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"75ad11c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d22a389\" data-id=\"d22a389\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7e690bb elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"7e690bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dc2beb9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dc2beb9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c1f4521\" data-id=\"c1f4521\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-db6ec98 elementor-widget elementor-widget-heading\" data-id=\"db6ec98\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"> Integra\u00e7\u00e3o com sistemas de gerenciamento do ciclo de vida de modelos<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a79a8c elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"3a79a8c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>No contexto de aprendizado de m\u00e1quina, frequentemente usu\u00e1rios precisam lidar com o fardo de gerenciar um grande conjunto de artefatos produzidos durante o ciclo de vida de um modelo, como configura\u00e7\u00f5es de algoritmos, dados de entrada\/sa\u00edda e arquivos dos experimentos. Com isso, recentemente foram desenvolvidos sistemas para o gerenciamento do ciclo de vida dos modelos, como o ModelDB, Mistique e MLflow <a href=\"http:\/\/ceur-ws.org\/Vol-2469\/ERForum2.pdf\">[Silva et al., 2019]<\/a>. Harbinger se beneficia de tais sistemas para o gerenciamento de suas inst\u00e2ncias e registro de par\u00e2metros de execu\u00e7\u00e3o, m\u00e9tricas e artefatos produzidos. Este gerenciamento garante a proveni\u00eancia e a reprodutibilidade das detec\u00e7\u00f5es de eventos. Al\u00e9m disso, o registro das aplica\u00e7\u00f5es de detec\u00e7\u00e3o e suas m\u00e9tricas computadas auxiliam a consulta e an\u00e1lise comparativa de desempenho dos m\u00e9todos de detec\u00e7\u00e3o aplicados. Com esse objetivo, Harbinger se integra ao sistema MLflow <a href=\"https:\/\/cs.stanford.edu\/~matei\/papers\/2018\/ieee_mlflow.pdf\">[Zaharia et al., 2019]<\/a> atrav\u00e9s da API de seu componente Tracking. As estruturas de dados dos par\u00e2metros de execu\u00e7\u00e3o e artefatos produzidos pelo Harbinger s\u00e3o uniformizadas com o objetivo de sistematizar o processo de execu\u00e7\u00e3o de diferentes m\u00e9todos, assim como facilitar o seu registro e busca no sistema.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67619fb elementor-widget elementor-widget-heading\" data-id=\"67619fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplo de uso - Integra\u00e7\u00e3o com o MLFlow<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ed0b6da elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"ed0b6da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Iremos utilizar a <a href=\"https:\/\/www.mlflow.org\/docs\/latest\/R-api.html\">MLflow Tracking API<\/a> para gerenciar as execu\u00e7\u00f5es de inst\u00e2ncias do Harbinger e registrar par\u00e2metros, m\u00e9tricas, e artefatos (arquivos).<\/p>\n<p>Para isso \u00e9 preciso importar a API e executar a script de instala\u00e7\u00e3o com o seguinte c\u00f3digo:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3287c41 elementor-widget elementor-widget-text-editor\" data-id=\"3287c41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>library(mlflow)<br \/>install_mlflow()<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6499855 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"6499855\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Com o c\u00f3digo a seguir podemos detectar eventos utilizando o m\u00e9todo AN e avaliar a qualidade da sua detec\u00e7\u00e3o. A execu\u00e7\u00e3o do m\u00e9todo e o registro de seus par\u00e2metros, m\u00e9tricas de qualidade e artefatos podem ser feitos da seguinte forma:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0ff55df elementor-widget elementor-widget-text-editor\" data-id=\"0ff55df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== MLFlow run - Event detection ======<br \/><br \/>#Start run<br \/>&gt; mlflow_start_run()<br \/><br \/>#Detect with Adaptive Normalization Outliers<br \/>&gt; events_an &lt;- evtdet.an_outliers(test, w=20, alpha=1.5)<br \/><br \/>#Log parameters<br \/>&gt; mlflow_log_param(\"w\", 20)<br \/>&gt; mlflow_log_param(\"alpha\", 1.5)<br \/><br \/>#Evaluate<br \/>&gt; confusion_matrix &lt;- evaluate(events_an, reference, metric=\"confusion_matrix\")<br \/>&gt; sensitivity &lt;- evaluate(events_an, reference, metric=\"sensitivity\")<br \/>&gt; specificity &lt;- evaluate(events_an, reference, metric=\"specificity\")<br \/><br \/>#Log metrics<br \/>&gt; mlflow_log_metric(\"sensitivity\", sensitivity)<br \/>&gt; mlflow_log_metric(\"specificity\", specificity)<br \/><br \/>#Log artefacts<br \/>&gt; write(confusion_matrix, file = \"confusion_matrix.txt\")<br \/>&gt; mlflow_log_artifact(\"confusion_matrix.txt\")<br \/>&gt; write.csv(events_a, file = \"events_a.csv\")<br \/>&gt; mlflow_log_artifact(\"events_a.csv\")<br \/><br \/>#End run<br \/>&gt; mlflow_end_run()<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-45a2eb3f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"45a2eb3f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3b4f2da7\" data-id=\"3b4f2da7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-13cb25f elementor-widget elementor-widget-heading\" data-id=\"13cb25f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Um framework para integra\u00e7\u00e3o e an\u00e1lise de m\u00e9todos de detec\u00e7\u00e3o de eventos em s\u00e9ries temporais<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7bdb3a45 elementor-widget elementor-widget-text-editor\" data-id=\"7bdb3a45\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Rebecca Salles, Luciana Escobar, Lais Baroni, Roccio Zorrilla, Artur Ziviani, Vinicius Kreischer, Flavia C. Delicato, Paulo F. Pires, Luciano Maia, Rafaelli Coutinho, Laura Assis, Eduardo Ogasawara<br \/><br \/>CEFET\/RJ &#8211; Centro Federal de Educa\u00e7\u00e3o Tecnol\u00f3gica Celso Suckow da Fonseca <br \/>LNCC &#8211; Laborat\u00f3rio Nacional de Computa\u00e7\u00e3o Cient\u00edfica<br \/>UFF &#8211; Universidade Federal Fluminense<br \/>Petrobras<\/p>\n<p>Emails: <br \/>{rebecca.salles,luciana.vignoli,lais.baroni}@eic.cefet-rj.br<br \/>{ziviani,roccio.zorrilla,vinicius.kreischer}@lncc.br<br \/>{fdelicato,paulo.pires}@ic.uff.br, luciano.maia@petrobras.com.br<br \/>{rafaelli.coutinho,laura.assis}@cefet-rj.br, eogasawara@ieee.org<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f9d1c3d elementor-widget elementor-widget-text-editor\" data-id=\"f9d1c3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p><strong>Resumo:<\/strong><br \/>Ao analisar s\u00e9ries temporais \u00e9 poss\u00edvel observar mudan\u00e7as significativas no comportamento das observa\u00e7\u00f5es que frequentemente caracterizam a ocorr\u00eancia de eventos. Eventos se apresentam como anomalias, pontos de mudan\u00e7a, ou padr\u00f5es frequentes. Na literatura existem diversos m\u00e9todos para detec\u00e7\u00e3o de eventos. Entretanto, a busca por um m\u00e9todo adequado para uma s\u00e9rie temporal n\u00e3o \u00e9 uma tarefa simples, principalmente considerando-se que a natureza dos eventos muitas vezes n\u00e3o \u00e9 conhecida. Neste contexto, este trabalho apresenta <em>Harbinger<\/em>, um <em>framework <\/em>para integra\u00e7\u00e3o e an\u00e1lise de m\u00e9todos de detec\u00e7\u00e3o de eventos. O <em>Harbinger <\/em>foi avaliado em dados sint\u00e9ticos e reais, onde foi poss\u00edvel constatar que suas funcionalidades auxiliam na escolha dos m\u00e9todos e na compreens\u00e3o dos eventos detectados.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e7a4602 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"e7a4602\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/sbbd.org.br\/2020\/wp-content\/uploads\/sites\/13\/2020\/09\/Harbinger-ST5.pdf\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-download\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download Pre-print<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-17ae4a7 elementor-widget elementor-widget-text-editor\" data-id=\"17ae4a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<!-- wp:paragraph -->\n<p><b>Apresenta\u00e7\u00e3o para o SBBD 2020:<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ff592c elementor-widget elementor-widget-video\" data-id=\"8ff592c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/ErLyo7dMhv8&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-55480f5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"55480f5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6d50f18\" data-id=\"6d50f18\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8b7a416 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8b7a416\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3e63b7b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3e63b7b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a745d82\" data-id=\"a745d82\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-70c1431 elementor-widget elementor-widget-heading\" data-id=\"70c1431\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Estrutura geral de m\u00f3dulos<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ae1d7c elementor-widget elementor-widget-text-editor\" data-id=\"7ae1d7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A estrutura geral do Harbinger \u00e9 ilustrada na Fig. 1, sendo formada por quatro principais m\u00f3dulos de funcionalidade: detec\u00e7\u00e3o de eventos (em azul), avalia\u00e7\u00e3o de qualidade de detec\u00e7\u00f5es (em verde), combina\u00e7\u00e3o de resultados de detec\u00e7\u00e3o (em laranja), e compara\u00e7\u00e3o de desempenhos de detec\u00e7\u00e3o (em roxo). A descri\u00e7\u00e3o dos par\u00e2metros de execu\u00e7\u00e3o do Harbinger, assim como de seus artefatos produzidos \u00e9 apresentada na Fig. 2. Mais informa\u00e7\u00f5es podem ser encontradas no artigo dedicado.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5d8b1a6 elementor-widget elementor-widget-text-editor\" data-id=\"5d8b1a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\">Fig. 1: Diagrama geral dos m\u00f3dulos<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a03d861 elementor-widget elementor-widget-image\" data-id=\"a03d861\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/elementor\/thumbs\/diagrama_harbinger-otmv5jo22sctdd4cobsflj4jp1wks04dau1xtvgb9c.png\" title=\"diagrama_harbinger\" alt=\"diagrama_harbinger\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-810909b elementor-widget elementor-widget-text-editor\" data-id=\"810909b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\">Fig. 2: Par\u00e2metros de execu\u00e7\u00e3o e artefatos produzidos<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-684ef83 elementor-widget elementor-widget-image\" data-id=\"684ef83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"768\" height=\"432\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-768x432.png\" class=\"attachment-medium_large size-medium_large wp-image-415\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-768x432.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-300x169.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-1024x576.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1-1536x864.png 1536w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/tab1.png 1607w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0761995 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0761995\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5e9de39\" data-id=\"5e9de39\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-63de967 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"63de967\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e0b3e2a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e0b3e2a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-884728b\" data-id=\"884728b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0f9e88c elementor-widget elementor-widget-heading\" data-id=\"0f9e88c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Disponibilidade<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-25d827c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"25d827c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1cba43a\" data-id=\"1cba43a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-aaf9770 elementor-widget__width-auto elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"aaf9770\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"https:\/\/github.com\/cefet-rj-dal\/harbinger\" target=\"_blank\">\n\t\t\t<i aria-hidden=\"true\" class=\"fab fa-github\"><\/i>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe269e elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"4fe269e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/github.com\/cefet-rj-dal\/harbinger\" target=\"_blank\">Github<\/a><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-ebdbe3f\" data-id=\"ebdbe3f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5fd6698 elementor-widget elementor-widget-text-editor\" data-id=\"5fd6698\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>O Harbinger est\u00e1 dispon\u00edvel no Github e pode ser baixado e carregado ao ambiente R com o c\u00f3digo a seguir:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-235bd2f elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"235bd2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; source( \"<a href=\"https:\/\/raw.githubusercontent.com\/cefet-rj-dal\/harbinger\/master\/harbinger.R\">https:\/\/raw.githubusercontent.com\/cefet-rj-dal\/harbinger\/master\/harbinger.R<\/a>\" )<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e824ac4 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"e824ac4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Exemplos de utiliza\u00e7\u00e3o dos m\u00e9todos de detec\u00e7\u00e3o de eventos implementados no framework est\u00e3o dispon\u00edveis em:<\/p>\n<ul>\n<li>\u00a0<a href=\"https:\/\/github.com\/cefet-rj-dal\/harbinger\/blob\/master\/usage.r\">usage.r<\/a><\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8f17c76 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8f17c76\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f2dbad4\" data-id=\"f2dbad4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5e8c584 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"5e8c584\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5e02e25 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5e02e25\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-841f980\" data-id=\"841f980\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0dd719e elementor-widget elementor-widget-heading\" data-id=\"0dd719e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Utiliza\u00e7\u00e3o<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b27abd5 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"b27abd5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Para exemplificar a utiliza\u00e7\u00e3o dos m\u00f3dulos do framework Harbinger vamos adotar os seguintes conjuntos de dados:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f95a7d elementor-widget elementor-widget-heading\" data-id=\"8f95a7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Conjuntos de dados<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-03772d6 elementor-widget elementor-widget-heading\" data-id=\"03772d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">S\u00e9rie Temporal Sint\u00e9tica N\u00e3o Estacion\u00e1ria (NE)<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-956a414 elementor-widget elementor-widget-text-editor\" data-id=\"956a414\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Para evidenciar as mudan\u00e7as de comportamento de uma s\u00e9rie temporal, foi desenvolvida uma s\u00e9rie temporal sint\u00e9tica y com propriedades n\u00e3o estacion\u00e1rias (NE) produzida a partir do trabalho de <a href=\"https:\/\/doi.org\/10.1016\/j.knosys.2018.10.041\">Salles et al. [2019]<\/a>. Esta s\u00e9rie \u00e9 composta por 1000 observa\u00e7\u00f5es (yi, i=1,&#8230;,1000) onde a subsequ\u00eancia &lt;y1,&#8230;,y200&gt; representa uma s\u00e9rie estacion\u00e1ria. As demais subsequ\u00eancias ilustram diversas formas de n\u00e3o estacionariedade. Em &lt;y201,&#8230;,y400&gt; observa-se a estacionariedade de tend\u00eancia, em &lt;y401,&#8230;,y600&gt; a estacionariedade de n\u00edvel, em &lt;y601,&#8230;,y800&gt; a heteroscedasticidade, e em &lt;y801,&#8230;,y1000&gt; a estacionariedade por diferencia\u00e7\u00e3o.<\/p>\n<p>Esta s\u00e9rie temporal \u00e9 constru\u00edda utilizando-se o seguinte c\u00f3digo:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b4e749 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"3b4e749\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; source(\"<a href=\"https:\/\/raw.githubusercontent.com\/cefet-rj-dal\/harbinger\/master\/nonstationarity_sym.r\">https:\/\/raw.githubusercontent.com\/cefet-rj-dal\/harbinger\/master\/nonstationarity_sym.r<\/a>\")<br \/>&gt; nonstat_ts &lt;- nonstationarity_sym(ts.len=200,ts.mean=0,ts.var=1)<br \/>&gt; plot<span class=\"p\">(<\/span>ts<span class=\"p\">(<\/span>nonstat_ts<span class=\"p\">),<\/span>type<span class=\"o\">=<\/span><span class=\"s\">\"l\"<\/span><span class=\"p\">,<\/span>xlab<span class=\"o\">=<\/span><span class=\"s\">\"time\"<\/span><span class=\"p\">)<\/span><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69f7c4a elementor-widget elementor-widget-image\" data-id=\"69f7c4a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"746\" height=\"297\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/serie_non.png\" class=\"attachment-medium_large size-medium_large wp-image-463\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/serie_non.png 746w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/serie_non-300x119.png 300w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0aa19f elementor-widget elementor-widget-heading\" data-id=\"e0aa19f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Conjunto de Dados GECCO Challenge (GECCO)<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a77a8ad elementor-widget elementor-widget-text-editor\" data-id=\"a77a8ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Foi tamb\u00e9m utilizado para an\u00e1lise o conjunto de dados criado para o GECCO Challenge 2018 <a href=\"http:\/\/www.spotseven.de\/wp-content\/uploads\/2018\/03\/rulesGeccoIc2018.pdf\">[Rehbach et al., 2018]<\/a>. Para compor este conjunto, foram se-lecionadas 1500 observa\u00e7\u00f5es coletadas a cada minuto contendo 72 eventos identificados. Foram coletadas 9 vari\u00e1veis relacionadas \u00e0 qualidade da \u00e1gua, das quais 5 foram selecionadas por apresentar maior variabilidade em suas observa\u00e7\u00f5es. S\u00e3o elas Tp, pH, Redox, Leit e Trueb, representando a temperatura, PH, potencial Redox, condutividade el\u00e9trica e turva\u00e7\u00e3o, respectivamente.<\/p>\n<p>Este conjunto de dados \u00e9 disponibilizado pelo pacote-R\u00a0EventDetectR e pode ser utilizado com o seguinte c\u00f3digo:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a4d5ac elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"1a4d5ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; library(EventDetectR)<br \/>&gt; gecco &lt;- geccoIC2018Train[16500:18000,]<br \/>&gt; plot(ts(gecco$Redox),type=\"l\",xlab=\"time\")<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dee70e0 elementor-widget elementor-widget-image\" data-id=\"dee70e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"623\" height=\"279\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/redox.jpg\" class=\"attachment-medium_large size-medium_large wp-image-464\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/redox.jpg 623w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/redox-300x134.jpg 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/redox-604x270.jpg 604w\" sizes=\"(max-width: 623px) 100vw, 623px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd5b100 elementor-widget elementor-widget-heading\" data-id=\"dd5b100\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">1. M\u00f3dulos de detec\u00e7\u00e3o e combina\u00e7\u00e3o<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eddfaec elementor-widget elementor-widget-text-editor\" data-id=\"eddfaec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A funcionalidade de detec\u00e7\u00e3o de eventos \u00e9 responsabilidade da fun\u00e7\u00e3o chamada\u00a0<strong>evtdet<\/strong>.<\/p>\n<p>Esta fun\u00e7\u00e3o recebe como entrada os par\u00e2metros:<\/p>\n<ul>\n<li><strong>Y<\/strong>: um data.frame contendo uma ou mais vari\u00e1veis (s\u00e9ries temporais) onde a primeira vari\u00e1vel se refere ao tempo (data ou \u00edndice sequencial).<\/li>\n<li><strong>\u0192<\/strong>: fun\u00e7\u00e3o para detec\u00e7\u00e3o de eventos tendo <strong>Y<\/strong> como entrada e um data.frame com tr\u00eas vari\u00e1veis (<em>time<\/em> (instante\/ \u00edndice de eventos), <em>serie<\/em> (nome da s\u00e9rie correspondente) e <em>type<\/em> (tipo do evento)) como sa\u00edda.<\/li>\n<li><strong>par<\/strong>: lista de par\u00e2metros para <strong>\u0192<\/strong>.<\/li>\n<\/ul>\n<p>A sa\u00edda da fun\u00e7\u00e3o \u00e9:<\/p>\n<ul>\n<li>um data.frame com tr\u00eas vari\u00e1veis: <em>time<\/em> (instante\/ \u00edndice de eventos), <em>serie<\/em> (nome da s\u00e9rie correspondente) e <em>type<\/em> (tipo do evento).<\/li>\n<\/ul>\n<p>Deste modo, a implementa\u00e7\u00e3o da fun\u00e7\u00e3o\u00a0<strong>evtdet\u00a0<\/strong>segue o seguinte padr\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7282550 elementor-widget elementor-widget-text-editor\" data-id=\"7282550\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>evtdet <span class=\"o\">&lt;-<\/span> <span class=\"kr\">function<\/span><span class=\"p\">(<\/span>data<span class=\"p\">,<\/span>func<span class=\"p\">,<\/span><span class=\"kc\">...<\/span><span class=\"p\">){<br \/><\/span>\n  events <span class=\"o\">&lt;-<\/span> <span class=\"kp\">do.call<\/span><span class=\"p\">(<\/span>func<span class=\"p\">,<\/span><span class=\"kt\">c<\/span><span class=\"p\">(<\/span><span class=\"kt\">list<\/span><span class=\"p\">(<\/span>data<span class=\"p\">),<\/span><span class=\"kt\">list<\/span><span class=\"p\">(<\/span><span class=\"kc\">...<\/span><span class=\"p\">)))<br \/><\/span>\n  <span class=\"kr\">return<\/span><span class=\"p\">(<\/span>events<span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8fffae elementor-widget elementor-widget-text-editor\" data-id=\"b8fffae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Principais m\u00e9todos de detec\u00e7\u00e3o pr\u00e9-implementados:<\/strong><\/p>\n<p>O framework permite ao usu\u00e1rio a defini\u00e7\u00e3o de m\u00e9todos de detec\u00e7\u00e3o de eventos personalizados. Mesmo assim, Harbinger tamb\u00e9m conta com a implementa\u00e7\u00e3o de diversos m\u00e9todos de detec\u00e7\u00e3o de eventos. Os principais m\u00e9todos implementados s\u00e3o descritos em seu artigo dedicado [].<\/p>\n<p>Fixando as implementa\u00e7\u00f5es dos m\u00e9todos mencionados como o par\u00e2metro \u0192 da fun\u00e7\u00e3o evtdet definimos fun\u00e7\u00f5es auxiliares para detec\u00e7\u00e3o de eventos. Alguns exemplos s\u00e3o mostrados a seguir:<\/p>\n<ul>\n<li><strong>M\u00e9todo AN<\/strong>: evtdet.an_outliers(Y,&#8230;)<\/li>\n<li><strong>M\u00e9todo CF<\/strong>: evtdet.changeFinder(Y,&#8230;)<\/li>\n<li><strong>M\u00e9todo GARCH<\/strong>: evtdet.garch_volatility_outlier(Y,&#8230;)<\/li>\n<li><strong>M\u00e9todo SCP<\/strong>: evtdet.seminalChangePoint(Y,&#8230;)<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d2a99b elementor-widget elementor-widget-heading\" data-id=\"1d2a99b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplos de uso - Detec\u00e7\u00e3o de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-df0132e elementor-widget elementor-widget-text-editor\" data-id=\"df0132e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Adaptando dados do conjunto NE para estrutura padr\u00e3o do Harbinger:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ec98aa elementor-widget elementor-widget-text-editor\" data-id=\"7ec98aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; test &lt;- data.frame(time=1:length(nonstat_ts), x=nonstat_ts)<br><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c8a229c elementor-widget elementor-widget-text-editor\" data-id=\"c8a229c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o com o m\u00e9todo AN:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d67e21 elementor-widget elementor-widget-text-editor\" data-id=\"7d67e21\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== Adaptive Normalization Outliers ======<br \/>#Detect<br \/>&gt; events_an &lt;- evtdet.an_outliers(test,w=20,alpha=1.5)<br \/>#Plot<br \/>&gt; print(evtplot(test,events_an,reference))<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-319effd elementor-widget elementor-widget-image\" data-id=\"319effd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"310\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an-768x310.png\" class=\"attachment-medium_large size-medium_large wp-image-473\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an-768x310.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an-300x121.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an-1024x413.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_an.png 1504w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f46513e elementor-widget elementor-widget-text-editor\" data-id=\"f46513e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o com o m\u00e9todo CF:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08ff655 elementor-widget elementor-widget-text-editor\" data-id=\"08ff655\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== ChangeFinder (2005) ======<br \/>#Auxiliary model definition<br \/>ARIMA &lt;- function(data) forecast::auto.arima(data)<br \/>#Detect<br \/>&gt; events_cf &lt;- evtdet.changeFinder(test,mdl=ARIMA,m=5)<br \/>#Plot<br \/>&gt; print(evtplot(test,events_cf, reference, mark.cp=TRUE))<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ff7c7d elementor-widget elementor-widget-image\" data-id=\"7ff7c7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"312\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3-768x312.png\" class=\"attachment-medium_large size-medium_large wp-image-474\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3-768x312.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3-300x122.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3-1024x416.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_v3.png 1503w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1097b2 elementor-widget elementor-widget-text-editor\" data-id=\"e1097b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o com o m\u00e9todo GARCH:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3abe751 elementor-widget elementor-widget-text-editor\" data-id=\"3abe751\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== Garch Volatility Outliers ======<br \/>#Garch specs<br \/>&gt; garch11 &lt;- <br \/>  rugarch::ugarchspec(<br \/> \u00a0 \u00a0 variance.model = list(model = \"sGARCH\", garchOrder = c(1, 1)), \u00a0 \u00a0 \u00a0 \u00a0mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), \u00a0 \u00a0 \u00a0 \u00a0 \u00a0distribution.model = \"norm\")<br \/>#Detect<br \/>&gt; events_garch &lt;-evtdet.garch_volatility_outlier(test,spec=garch11,alpha=1.5)<br \/>#Plot<br \/>&gt; print(evtplot(test,events_garch, reference))<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9045f45 elementor-widget elementor-widget-image\" data-id=\"9045f45\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"315\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch-768x315.png\" class=\"attachment-medium_large size-medium_large wp-image-475\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch-768x315.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch-300x123.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch-1024x419.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_garch.png 1504w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca1a27a elementor-widget elementor-widget-heading\" data-id=\"ca1a27a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplo de uso - Combina\u00e7\u00e3o de M\u00e9todos de Detec\u00e7\u00e3o de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e73f586 elementor-widget elementor-widget-text-editor\" data-id=\"e73f586\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o de eventos a partir da combina\u00e7\u00e3o dos m\u00e9todos AN, CF e GARCH:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-807f04c elementor-widget elementor-widget-text-editor\" data-id=\"807f04c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== Combining detected events ======<br \/>#Combining detections<br \/>&gt; an_cf_garch &lt;- rbind(events_an, events_cf, events_garch)<br \/>#Plot<br \/>&gt; print( evtplot( test, an_cf_garch, mark.cp=TRUE ) )<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42c95dd elementor-widget elementor-widget-image\" data-id=\"42c95dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"307\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination-768x307.png\" class=\"attachment-medium_large size-medium_large wp-image-476\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination-768x307.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination-300x120.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination-1024x410.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/plot_combination.png 1505w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2f6576 elementor-widget elementor-widget-heading\" data-id=\"e2f6576\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">2. M\u00f3dulos de avalia\u00e7\u00e3o e compara\u00e7\u00e3o<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1436c56 elementor-widget elementor-widget-text-editor\" data-id=\"1436c56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Uma vez tendo detectado eventos em uma s\u00e9rie temporal, \u00e9 necess\u00e1rio avaliar a qualidade desta detec\u00e7\u00e3o e o desempenho do m\u00e9todo escolhido. Esta avalia\u00e7\u00e3o \u00e9 de responsabilidade da fun\u00e7\u00e3o\u00a0<strong>evaluate<\/strong>.<\/p>\n<p>Esta fun\u00e7\u00e3o recebe como entrada os par\u00e2metros:<\/p>\n<ul>\n<li><strong>E<\/strong>: retorno da fun\u00e7\u00e3o\u00a0<strong>evtdet\u00a0<\/strong>relativo a uma s\u00e9rie temporal particular.<\/li>\n<li><em><strong>g<\/strong><\/em>: fun\u00e7\u00e3o para c\u00e1lculo de m\u00e9trica de qualidade da detec\u00e7\u00e3o de eventos.<\/li>\n<li><strong>E_ref<\/strong>: data.frame com o mesmo comprimento de X contendo duas vari\u00e1veis: <em>time<\/em> (tempo (data ou \u00edndice sequencial)) e <em>event<\/em> (valores booleanos indicativos da real ocorr\u00eancia de eventos em X)<\/li>\n<\/ul>\n<p>A sa\u00edda da fun\u00e7\u00e3o \u00e9:<\/p>\n<ul>\n<li>Valor da m\u00e9trica de qualidade calculada.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e00829d elementor-widget elementor-widget-text-editor\" data-id=\"e00829d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Principais m\u00e9tricas de qualidade pr\u00e9-implementadas:<\/strong><\/p>\n<p>Com o objetivo de facilitar o processo de avalia\u00e7\u00e3o, Harbinger conta com a implementa\u00e7\u00e3o das principais m\u00e9tricas utilizadas para se avaliar a qualidade da detec\u00e7\u00e3o de eventos.\u00a0Deste modo, a chamada \u00e0 fun\u00e7\u00e3o <strong>evaluate<\/strong> segue o seguinte padr\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a4439c elementor-widget elementor-widget-text-editor\" data-id=\"4a4439c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(E, E_ref, metric=\"confusion_matrix\")<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e5556d elementor-widget elementor-widget-text-editor\" data-id=\"2e5556d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Neste caso, para se defnir o par\u00e2metro <em><strong>g<\/strong><\/em> basta especificar o nome da m\u00e9trica dentre as seguintes op\u00e7\u00f5es:<\/p>\n<ul>\n<li>Matriz de confus\u00e3o: &#8220;confusion_matrix&#8221;<\/li>\n<li>Acur\u00e1cia: &#8220;accuracy&#8221;<\/li>\n<li>Sensitividade: &#8220;sensitivity&#8221;<\/li>\n<li>Especificidade: &#8220;specificity&#8221;<\/li>\n<li>Valor preditivo positivo: &#8220;pos_pred_value&#8221;<\/li>\n<li>Valor preditivo negativo: &#8220;neg_pred_value&#8221;<\/li>\n<li>Precis\u00e3o: &#8220;precision&#8221;<\/li>\n<li>Revoca\u00e7\u00e3o: &#8220;recall&#8221;<\/li>\n<li>F1: &#8220;F1&#8221;<\/li>\n<li>Preval\u00eancia: &#8220;prevalence&#8221;<\/li>\n<li>Taxa de detec\u00e7\u00e3o: &#8220;detection_rate&#8221;<\/li>\n<li>Preval\u00eancia de detec\u00e7\u00e3o: &#8220;detection_prevalence&#8221;<\/li>\n<li>Acur\u00e1cia equilibrada: &#8220;balanced_accuracy&#8221;<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f457e1 elementor-widget elementor-widget-heading\" data-id=\"8f457e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplos de uso - Avalia\u00e7\u00e3o da Detec\u00e7\u00e3o de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ba2d7c elementor-widget elementor-widget-text-editor\" data-id=\"8ba2d7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Adaptando dados do conjunto GECCO para estrutura padr\u00e3o do Harbinger:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-043fc63 elementor-widget elementor-widget-text-editor\" data-id=\"043fc63\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; test &lt;- subset(gecco, select=c(Time, Trueb))<br \/>&gt; reference <span class=\"o\">&lt;-<\/span> <span class=\"kp\">subset<\/span><span class=\"p\">(<\/span>train<span class=\"p\">,<\/span> select<span class=\"o\">=<\/span><span class=\"kt\">c<\/span><span class=\"p\">(<\/span>Time<span class=\"p\">,<\/span> EVENT<span class=\"p\">))<br \/><\/span><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b2f2b5c elementor-widget elementor-widget-text-editor\" data-id=\"b2f2b5c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Detec\u00e7\u00e3o com o m\u00e9todo SCP:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53ccfbb elementor-widget elementor-widget-text-editor\" data-id=\"53ccfbb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== Seminal Change Point (1999) ======\u00a0<br \/>#Detect\u00a0<br \/>&gt; events_scp &lt;- evtdet.seminalChangePoint(test,w=100) <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c56fb80 elementor-widget elementor-widget-text-editor\" data-id=\"c56fb80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avalia\u00e7\u00e3o por matriz de confus\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c99aa75 elementor-widget elementor-widget-text-editor\" data-id=\"c99aa75\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(events_scp, reference, metric=\"confusion_matrix\")<br \/><br \/>         Events <br \/>Detected TRUE FALSE<br \/>TRUE     72   114 <br \/>FALSE    0    1315 <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c8d2ab elementor-widget elementor-widget-text-editor\" data-id=\"5c8d2ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avalia\u00e7\u00e3o por F1:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-10b4dc6 elementor-widget elementor-widget-text-editor\" data-id=\"10b4dc6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(events_scp, reference, metric=\"F1\")<br \/><br \/>       F1 <br \/>0.5581395 <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-14071d3 elementor-widget elementor-widget-text-editor\" data-id=\"14071d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avalia\u00e7\u00e3o por precis\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9af9aae elementor-widget elementor-widget-text-editor\" data-id=\"9af9aae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(events_scp, reference, metric=\"precision\")<br \/><br \/>Precision <br \/>0.3870968 <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8effe50 elementor-widget elementor-widget-text-editor\" data-id=\"8effe50\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avalia\u00e7\u00e3o por revoca\u00e7\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5abc610 elementor-widget elementor-widget-text-editor\" data-id=\"5abc610\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evaluate(events_scp, reference, metric=\"recall\")<br \/><br \/>\u00a0  Recall <br \/>        1<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-af9a616 elementor-widget elementor-widget-heading\" data-id=\"af9a616\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplo de uso - Avalia\u00e7\u00e3o Visual de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d807056 elementor-widget elementor-widget-text-editor\" data-id=\"d807056\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A avalia\u00e7\u00e3o visual dos eventos detectados \u00e9 de responsabilidade da fun\u00e7\u00e3o <strong>evtplot<\/strong>.<\/p>\n<p>Esta fun\u00e7\u00e3o recebe como entrada os par\u00e2metros:<\/p>\n<ul>\n<li><strong>Y<\/strong>: mesmo utlizado em <strong>evtdet<\/strong>.<\/li>\n<li><strong>E<\/strong>: retorno da fun\u00e7\u00e3o\u00a0<strong>evtdet<\/strong>.<\/li>\n<li><strong>E_ref<\/strong>: mesmo utilizado em <strong>evaluate<\/strong>.<\/li>\n<\/ul>\n<p>A sa\u00edda da fun\u00e7\u00e3o \u00e9:<\/p>\n<ul>\n<li>Gr\u00e1fico com as observa\u00e7\u00f5es da s\u00e9rie temporal, assim como marca\u00e7\u00f5es referentes aos resultados da detec\u00e7\u00e3o de eventos. Marca\u00e7\u00f5es vermelhas indicam eventos detectados. Al\u00e9m disso, s\u00e3o marcados em azul os eventos reais em E_ref, e em verde a coincid\u00eancia entre o evento detectado e o evento real.<\/li>\n<\/ul>\n<div>Um exemplo de sua utiliza\u00e7\u00e3o e sa\u00edda \u00e9 apresentado a seguir:<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8afb27a elementor-widget elementor-widget-text-editor\" data-id=\"8afb27a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#Plot <br \/>&gt; print(evtplot(test,events_scp, reference)) <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a7fa52 elementor-widget elementor-widget-image\" data-id=\"3a7fa52\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"313\" src=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal-768x313.png\" class=\"attachment-medium_large size-medium_large wp-image-479\" alt=\"\" srcset=\"https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal-768x313.png 768w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal-300x122.png 300w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal-1024x417.png 1024w, https:\/\/eic.cefet-rj.br\/~dal\/wp-content\/uploads\/2020\/08\/trueb_normal.png 1504w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d2c3ce1 elementor-widget elementor-widget-heading\" data-id=\"d2c3ce1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplo de uso - Compara\u00e7\u00e3o de M\u00e9todos de Detec\u00e7\u00e3o de Eventos<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f6bba7e elementor-widget elementor-widget-text-editor\" data-id=\"f6bba7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Podemos comparar o desempenho de detec\u00e7\u00e3o de diversos m\u00e9todos de maneira a avaliar a sua adequabilidade aos dados assim como observar oportunidades de combina\u00e7\u00e3o de m\u00e9todos:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77dd344 elementor-widget elementor-widget-text-editor\" data-id=\"77dd344\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#Detect<br \/>&gt; events_an &lt;- evtdet.an_outliers(test,w=100,alpha=1.5)<br \/>&gt; events_cf &lt;- evtdet.changeFinder(test,mdl=ARIMA,m=5)<br \/>&gt; events_garch &lt;- evtdet.garch_volatility_outlier(test,spec=garch11,alpha=1.5)<br \/>&gt; events_scp &lt;- evtdet.seminalChangePoint(test, w=50)<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c60411 elementor-widget elementor-widget-text-editor\" data-id=\"7c60411\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#Evaluate<br \/>&gt; sapply(list(events_an,events_cf,events_garch,events_scp), <br \/>         evaluate, reference, metric=\"F1\")<br \/><br \/>       F1        F1        F1        F1 <br \/>0.5088339 0.1904762 0.1438356 0.4298507 <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-af99624 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"af99624\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f3c35e7\" data-id=\"f3c35e7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2d8688e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"2d8688e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-18e7cac elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"18e7cac\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e710266\" data-id=\"e710266\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a164ccb elementor-widget elementor-widget-heading\" data-id=\"a164ccb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">M\u00e9todos de detec\u00e7\u00e3o personalizados<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0fbcb22 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"0fbcb22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>O framework permite ao usu\u00e1rio a defini\u00e7\u00e3o de m\u00e9todos de detec\u00e7\u00e3o de eventos personalizados.<\/p>\n<p>Para isso, basta implementar o m\u00e9todo em uma fun\u00e7\u00e3o (<strong>\u0192<\/strong>) para detec\u00e7\u00e3o de eventos tendo <strong>Y<\/strong> como entrada e um data.frame com tr\u00eas vari\u00e1veis (<em>time<\/em> (instante\/ \u00edndice de eventos), <em>serie<\/em> (nome da s\u00e9rie correspondente) e <em>type<\/em> (tipo do evento)) como sa\u00edda.<\/p>\n<p>Um exemplo da implementa\u00e7\u00e3o de tal fun\u00e7\u00e3o \u00e9 dado a seguir. O c\u00f3digo define uma fun\u00e7\u00e3o que identifica outliers nas observa\u00e7\u00f5es de uma s\u00e9rie temporal com base no primeiro e terceiro quartis e a dist\u00e2ncia interquartil:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6cc0b2e elementor-widget elementor-widget-text-editor\" data-id=\"6cc0b2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; outliers &lt;- function(data, alpha=1.5){<br \/>  <br \/>  serie_name &lt;- names(data)[-1]<br \/>  names(data) &lt;- c(\"time\",\"serie\")  <br \/>  serie &lt;- data$serie<br \/>  <br \/>  #===== Boxplot analysis of data ======<br \/>  outliers.index &lt;- function(data, alpha = 1.5){<br \/>    org = length(data)    <br \/>    if (org &gt;= 30) {<br \/>      q = quantile(data)      <br \/>      IQR = q[4] - q[2]<br \/>      lq1 = q[2] - alpha*IQR<br \/>      hq3 = q[4] + alpha*IQR<br \/>      cond = data &lt; lq1 | data &gt; hq3<br \/>      index.out = which(cond)#data[cond,]<br \/>    }<br \/>    return (index.out)<br \/>  }<br \/>  <br \/>  #Returns index of outlier observations<br \/>  index.out &lt;- outliers.index(serie,alpha)<br \/>  <br \/>  anomalies &lt;- cbind.data.frame(time=data[index.out,\"time\"],<br \/>                                serie=serie_name,<br \/>                                type=\"anomaly\")<br \/>  names(anomalies) &lt;- c(\"time\",\"serie\",\"type\")<br \/>  <br \/>  return(anomalies)<br \/>}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f8db3d0 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"f8db3d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Uma vez implementado, o m\u00e9todo pode ser integrado ao Harbinger da seguinte maneira:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb58169 elementor-widget elementor-widget-text-editor\" data-id=\"fb58169\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; events &lt;- evtdet(data, outliers, alpha=1.5)<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d21bb7 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"9d21bb7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Outra alternativa \u00e9 criar uma fun\u00e7\u00e3o wrapper do m\u00e9todo implementado como feito a seguir:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1fac3c1 elementor-widget elementor-widget-text-editor\" data-id=\"1fac3c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>&gt; evtdet.outliers &lt;- function(data,...){<br \/>  <br \/>  events &lt;- evtdet(data, outlier , ...)<br \/>  <br \/>  return(events)<br \/>}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-75ad11c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"75ad11c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d22a389\" data-id=\"d22a389\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7e690bb elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"7e690bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dc2beb9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dc2beb9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c1f4521\" data-id=\"c1f4521\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-db6ec98 elementor-widget elementor-widget-heading\" data-id=\"db6ec98\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\"> Integra\u00e7\u00e3o com sistemas de gerenciamento do ciclo de vida de modelos<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a79a8c elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"3a79a8c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>No contexto de aprendizado de m\u00e1quina, frequentemente usu\u00e1rios precisam lidar com o fardo de gerenciar um grande conjunto de artefatos produzidos durante o ciclo de vida de um modelo, como configura\u00e7\u00f5es de algoritmos, dados de entrada\/sa\u00edda e arquivos dos experimentos. Com isso, recentemente foram desenvolvidos sistemas para o gerenciamento do ciclo de vida dos modelos, como o ModelDB, Mistique e MLflow <a href=\"http:\/\/ceur-ws.org\/Vol-2469\/ERForum2.pdf\">[Silva et al., 2019]<\/a>. Harbinger se beneficia de tais sistemas para o gerenciamento de suas inst\u00e2ncias e registro de par\u00e2metros de execu\u00e7\u00e3o, m\u00e9tricas e artefatos produzidos. Este gerenciamento garante a proveni\u00eancia e a reprodutibilidade das detec\u00e7\u00f5es de eventos. Al\u00e9m disso, o registro das aplica\u00e7\u00f5es de detec\u00e7\u00e3o e suas m\u00e9tricas computadas auxiliam a consulta e an\u00e1lise comparativa de desempenho dos m\u00e9todos de detec\u00e7\u00e3o aplicados. Com esse objetivo, Harbinger se integra ao sistema MLflow <a href=\"https:\/\/cs.stanford.edu\/~matei\/papers\/2018\/ieee_mlflow.pdf\">[Zaharia et al., 2019]<\/a> atrav\u00e9s da API de seu componente Tracking. As estruturas de dados dos par\u00e2metros de execu\u00e7\u00e3o e artefatos produzidos pelo Harbinger s\u00e3o uniformizadas com o objetivo de sistematizar o processo de execu\u00e7\u00e3o de diferentes m\u00e9todos, assim como facilitar o seu registro e busca no sistema.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67619fb elementor-widget elementor-widget-heading\" data-id=\"67619fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Exemplo de uso - Integra\u00e7\u00e3o com o MLFlow<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ed0b6da elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"ed0b6da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Iremos utilizar a <a href=\"https:\/\/www.mlflow.org\/docs\/latest\/R-api.html\">MLflow Tracking API<\/a> para gerenciar as execu\u00e7\u00f5es de inst\u00e2ncias do Harbinger e registrar par\u00e2metros, m\u00e9tricas, e artefatos (arquivos).<\/p>\n<p>Para isso \u00e9 preciso importar a API e executar a script de instala\u00e7\u00e3o com o seguinte c\u00f3digo:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3287c41 elementor-widget elementor-widget-text-editor\" data-id=\"3287c41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>library(mlflow)<br \/>install_mlflow()<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6499855 elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"6499855\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Com o c\u00f3digo a seguir podemos detectar eventos utilizando o m\u00e9todo AN e avaliar a qualidade da sua detec\u00e7\u00e3o. A execu\u00e7\u00e3o do m\u00e9todo e o registro de seus par\u00e2metros, m\u00e9tricas de qualidade e artefatos podem ser feitos da seguinte forma:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0ff55df elementor-widget elementor-widget-text-editor\" data-id=\"0ff55df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>#====== MLFlow run - Event detection ======<br \/><br \/>#Start run<br \/>&gt; mlflow_start_run()<br \/><br \/>#Detect with Adaptive Normalization Outliers<br \/>&gt; events_an &lt;- evtdet.an_outliers(test, w=20, alpha=1.5)<br \/><br \/>#Log parameters<br \/>&gt; mlflow_log_param(\"w\", 20)<br \/>&gt; mlflow_log_param(\"alpha\", 1.5)<br \/><br \/>#Evaluate<br \/>&gt; confusion_matrix &lt;- evaluate(events_an, reference, metric=\"confusion_matrix\")<br \/>&gt; sensitivity &lt;- evaluate(events_an, reference, metric=\"sensitivity\")<br \/>&gt; specificity &lt;- evaluate(events_an, reference, metric=\"specificity\")<br \/><br \/>#Log metrics<br \/>&gt; mlflow_log_metric(\"sensitivity\", sensitivity)<br \/>&gt; mlflow_log_metric(\"specificity\", specificity)<br \/><br \/>#Log artefacts<br \/>&gt; write(confusion_matrix, file = \"confusion_matrix.txt\")<br \/>&gt; mlflow_log_artifact(\"confusion_matrix.txt\")<br \/>&gt; write.csv(events_a, file = \"events_a.csv\")<br \/>&gt; mlflow_log_artifact(\"events_a.csv\")<br \/><br \/>#End run<br \/>&gt; mlflow_end_run()<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Resumo:Ao analisar s\u00e9ries temporais \u00e9 poss\u00edvel observar mudan\u00e7as significativas no comportamento das observa\u00e7\u00f5es que frequentemente caracterizam a ocorr\u00eancia de eventos. Eventos se apresentam como anomalias, pontos de mudan\u00e7a, ou padr\u00f5es frequentes. Na literatura existem diversos m\u00e9todos para detec\u00e7\u00e3o de eventos. Entretanto, a busca por um m\u00e9todo adequado para uma s\u00e9rie temporal n\u00e3o \u00e9 uma tarefa [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-experimentos","entry"],"_links":{"self":[{"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":25,"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"predecessor-version":[{"id":1119,"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/posts\/9\/revisions\/1119"}],"wp:attachment":[{"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eic.cefet-rj.br\/~dal\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}