(function($){"use strict";$.fn.rmarkdownStickyTabs=function(){var context=this;var showStuffFromHash=function(){var hash=window.location.hash;var selector=hash?'a[href="'+hash+'"]':'li.active > a';var $selector=$(selector,context);if($selector.data('toggle')==="tab"){$selector.tab('show');$selector.parents('.section.tabset').each(function(i,elm){var link=$('a[href="#'+$(elm).attr('id')+'"]');if(link.data('toggle')==="tab"){link.tab("show")}})}};
showStuffFromHash(context);
$(window).on('hashchange',function(){showStuffFromHash(context)});
$('a',context).on('click',function(e){history.pushState(null,null,this.href);showStuffFromHash(context)});
return this}}(jQuery));
window.buildTabsets=function(tocID){
function buildTabset(tabset){
var fade=tabset.hasClass("tabset-fade");var pills=tabset.hasClass("tabset-pills");var navClass=pills?"nav-pills":"nav-tabs";
var match=tabset.attr('class').match(/level(\d) /);if(match===null) return;var tabsetLevel=Number(match[1]);var tabLevel=tabsetLevel+1;
var tabs=tabset.find("div.section.level"+tabLevel);if(!tabs.length) return;
var tabList=$('
');$(tabs[0]).before(tabList);var tabContent=$('
');$(tabs[0]).before(tabContent);
var activeTab=0;tabs.each(function(i){
var tab=$(tabs[i]);
var id=tab.attr('id');
if(tab.hasClass('active')) activeTab=i;
$("div#"+tocID+" li a[href='#"+id+"']").parent().remove();
id=id.replace(/[.\/?&!#<>]/g,'').replace(/\s/g,'_');tab.attr('id',id);
var heading=tab.find('h'+tabLevel+':first');var headingText=heading.html();heading.remove();
var a=$(''+headingText+'');a.attr('href','#'+id);a.attr('aria-controls',id);var li=$('
');li.append(a);tabList.append(li);
tab.attr('role','tabpanel');tab.addClass('tab-pane');tab.addClass('tabbed-pane');if(fade) tab.addClass('fade');
tab.detach().appendTo(tabContent)});
$(tabList.children('li')[activeTab]).addClass('active');var active=$(tabContent.children('div.section')[activeTab]);active.addClass('active');if(fade) active.addClass('in');
if(tabset.hasClass("tabset-sticky")) tabset.rmarkdownStickyTabs()}
var tabsets=$("div.section.tabset");tabsets.each(function(i){buildTabset($(tabsets[i]))})};
A existência de um ambiente de desenvolvimento integrado para o software livre R representa um avanço significativo para o trabalho científico, permitindo aumentar a produtividade dos pesquisadores ao reduzir as tarefas de coleta, tratamento, análise e exposição de dados. O RStudio é a interface desse software, facilitando sua utilização. Ambos são gratuitos e open source.
Em diversos sites nacionais e internacionais, podem ser encontradas rotinas para a construção de modelos, bem como explicações sobre testes de verificação relativos à estacionariedade, normalidade, diagnóstico e previsão de modelos ARIMA (p, d, q) para séries temporais. O termo “p” refere-se à ordem autoregressiva do modelo, “d” é relativo à diferenciação, e “q” refere-se às médias móveis.
Neste exercício, usaremos como exemplo a arrecadação do Imposto sobre Circulação de Mercadorias e Serviços (ICMS) no período de janeiro de 2000 a abril de 2024. Apresentaremos um script detalhado para estimação e previsão de uma série temporal, seguindo as melhores práticas estatísticas. Este script é especialmente útil para aqueles interessados em aplicar algoritmos de R para análise de séries temporais univariadas. No Excel, o conjunto de dados, denominado icms_data, deve ser organizado em apenas duas colunas: date e valor. Realizada esta operação, o script realiza as demais tarefas.
# Carregar bibliotecas necessárias
library(tidyverse)
library(ggfortify)
library(xts)
library(tseries)
library(timeSeries)
library(changepoint)
library(readxl)
library(TSstudio)
library(forecast)
library(seasonal)
library(ggplot2)
library(urca)
# Carregar o conjunto de dados "icmsn" do arquivo Excel
icmsn_data <- read_excel("/Users/robertocalazans/icmsn.xlsx")
# Selecionar a coluna relevante para a série temporal
icmsn <- ts(icmsn_data$icmsn, start = c(2000, 1), frequency = 12)
dicmsn <- diff(icmsn)
# Decomposição STL da série temporal
stl_decomp <- stl(icmsn, s.window = "periodic", robust = FALSE)
# Detecção de mudanças na média e variância usando changepoint
cpt_meanvar <- changepoint::cpt.meanvar(icmsn)
# Criar um data frame para visualização
icmsn_df <- data.frame(date = as.Date(time(icmsn)), value = as.numeric(icmsn))
# Visualização dos pontos de mudança da variância
p <- autoplot(cpt_meanvar) +
ggtitle("Detecção de mudanças na variância") +
theme_minimal() +
scale_x_continuous(breaks = seq(2000, end(icmsn)[1], by = 1))
print(p)
# Plotar a decomposição STL separadamente com ggplot2
autoplot(stl_decomp) +
ggtitle("Decomposição STL do ICMS nominal do RS") +
theme_minimal()