<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>R-projetos | Rafael de Acypreste</title><link>https://rafaeldeacypreste.netlify.app/r-projetos/</link><atom:link href="https://rafaeldeacypreste.netlify.app/r-projetos/index.xml" rel="self" type="application/rss+xml"/><description>R-projetos</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><image><url>https://rafaeldeacypreste.netlify.app/media/icon_hu079f5f191f910f3be9bbdec4dba5765d_88394_512x512_fill_lanczos_center_2.png</url><title>R-projetos</title><link>https://rafaeldeacypreste.netlify.app/r-projetos/</link></image><item><title>Manipulação de dados, gráficos e segunda lista de exercícios</title><link>https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/</link><pubDate>Fri, 03 Sep 2021 00:00:00 +0000</pubDate><guid>https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/</guid><description>
&lt;script src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/header-attrs/header-attrs.js">&lt;/script>
&lt;script src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/kePrint/kePrint.js">&lt;/script>
&lt;link href="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/lightable/lightable.css" rel="stylesheet" />
&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#introdução">Introdução&lt;/a>&lt;/li>
&lt;li>&lt;a href="#manipulação-e-exportação-de-dados">&lt;span class="toc-section-number">1&lt;/span> Manipulação e exportação de dados&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#apresentação-típica">&lt;span class="toc-section-number">1.1&lt;/span> Apresentação típica&lt;/a>&lt;/li>
&lt;li>&lt;a href="#transposta-da-apresentação-típica">&lt;span class="toc-section-number">1.2&lt;/span> Transposta da apresentação típica&lt;/a>&lt;/li>
&lt;li>&lt;a href="#tidy-data">&lt;span class="toc-section-number">1.3&lt;/span> Tidy data&lt;/a>&lt;/li>
&lt;li>&lt;a href="#resumo-para-dados-organizados">&lt;span class="toc-section-number">1.4&lt;/span> Resumo para dados organizados&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#elaboração-de-gráficos">&lt;span class="toc-section-number">2&lt;/span> Elaboração de gráficos&lt;/a>&lt;/li>
&lt;li>&lt;a href="#compontentes-básicos-dos-gráficos">&lt;span class="toc-section-number">3&lt;/span> Compontentes básicos dos gráficos&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#mapeamentos-estéticos-variáveis">&lt;span class="toc-section-number">3.1&lt;/span> Mapeamentos estéticos (variáveis)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#geometrias-geoms">&lt;span class="toc-section-number">3.2&lt;/span> Geometrias (geoms)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#eixos-e-escalas">&lt;span class="toc-section-number">3.3&lt;/span> Eixos e escalas&lt;/a>&lt;/li>
&lt;li>&lt;a href="#temas">&lt;span class="toc-section-number">3.4&lt;/span> Temas&lt;/a>&lt;/li>
&lt;li>&lt;a href="#séries-de-tempo-e-casos-mais-avançados">&lt;span class="toc-section-number">3.5&lt;/span> Séries de tempo e casos mais avançados&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#exercícios-parte-ii">&lt;span class="toc-section-number">4&lt;/span> Exercícios parte II&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#manipulação-de-dados">&lt;span class="toc-section-number">4.1&lt;/span> Manipulação de dados&lt;/a>&lt;/li>
&lt;li>&lt;a href="#exportação-de-dados">&lt;span class="toc-section-number">4.2&lt;/span> Exportação de dados&lt;/a>&lt;/li>
&lt;li>&lt;a href="#elaboração-de-gráficos-1">&lt;span class="toc-section-number">4.3&lt;/span> Elaboração de gráficos&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#referências">Referências&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>
&lt;div id="introdução" class="section level1 unnumbered">
&lt;h1>Introdução&lt;/h1>
&lt;p>Esta nota tem por objetivo exercitar o ferramental básico para manipular tabelas e elaborar gráficos para uma análise exploratória dos dados. São duas ações que devem caminhar juntas, especialmente porque dados efetivamente organizadas tornam a elaboração de gráficos um procedimento mais direto e simples.&lt;/p>
&lt;p>Vale lembrar que tabelas devem ser sucintas e gráficos devem contar uma história da maneira mais simples possível. Portanto, a preocupação não deve ser com uma completude, certamente inalcançável.&lt;/p>
&lt;p>Suas tabelas, gráficos e textos terão atingido a melhor versão quando não há mais nada que lhes possa ser retirado.&lt;/p>
&lt;!-- Conteúdo para a segunda lista -->
&lt;/div>
&lt;div id="manipulação-e-exportação-de-dados" class="section level1" number="1">
&lt;h1>&lt;span class="header-section-number">1&lt;/span> Manipulação e exportação de dados&lt;/h1>
&lt;p>Nem sempre os dados importados ao &lt;code>R&lt;/code> vêm no formato ideal. Enquanto os pacotes &lt;code>sidrar&lt;/code> e &lt;code>wid&lt;/code> fornecem tabelas no formato convencionalmente denominado de &lt;em>tidy data&lt;/em>&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a> &lt;span class="citation">(&lt;a href="#ref-WickhamRStudio2014" role="doc-biblioref">Wickham 2014&lt;/a>)&lt;/span>, outras fontes de dados ou tabelas baixadas manualmente costumam não apresentar a devida consistência.&lt;/p>
&lt;p>Em síntese, cada &lt;strong>valor&lt;/strong> (cada célula numa tabela do &lt;em>Excel&lt;/em>, por exemplo) pertence a uma &lt;span style="color: red;"> variável &lt;/span> e a uma &lt;span style="color: blue;"> observação&lt;/span>.&lt;/p>
&lt;p>&lt;span style="color: red;"> Variável&lt;/span> contém valores que se referem a uma mesma característica ou atributo — em dados sobre mercado de trabalho, pode-se citar como exemplos região, data, taxa de desocupação. Nesse caso, cada variável deve ser representada por uma única coluna.&lt;/p>
&lt;p>Cada &lt;span style="color: blue;"> observação&lt;/span> (linha) contém todos os valores medidos sobre uma mesma unidade, configurando um único item entre os atributos (ou colunas) — um exemplo poderia ser a taxa de desocupação no Centro-Oeste no 1&lt;sup>o&lt;/sup> trimestre de 2020.&lt;/p>
&lt;p>Os erros mais comuns são aqueles em que uma variável está espalhada em várias colunas. Ajustar esses dados passa a ser o primeiro passo para a análise exploratória.&lt;/p>
&lt;div id="apresentação-típica" class="section level2" number="1.1">
&lt;h2>&lt;span class="header-section-number">1.1&lt;/span> Apresentação típica&lt;/h2>
&lt;p>Uma forma de apresentação típica de dados econômicos, mas que não estão no formato ideal é representada por&lt;/p>
&lt;table style="NAborder-bottom: 0; margin-left: auto; margin-right: auto;" class="table">
&lt;thead>
&lt;tr>
&lt;th style="text-align:left;">
Grande Região
&lt;/th>
&lt;th style="text-align:right;">
1º trimestre 2016
&lt;/th>
&lt;th style="text-align:right;">
1º trimestre 2020
&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left;">
Nordeste
&lt;/td>
&lt;td style="text-align:right;">
12.8
&lt;/td>
&lt;td style="text-align:right;">
15.6
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left;">
Sul
&lt;/td>
&lt;td style="text-align:right;">
7.3
&lt;/td>
&lt;td style="text-align:right;">
7.5
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left;">
Centro-Oeste
&lt;/td>
&lt;td style="text-align:right;">
9.7
&lt;/td>
&lt;td style="text-align:right;">
10.6
&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;tfoot>
&lt;tr>
&lt;td style="padding: 0; " colspan="100%">
&lt;span style="font-style: italic;">Note: &lt;/span> &lt;sup>&lt;/sup> Taxa de Desocupação (PNADC/T - IBGE)
&lt;/td>
&lt;/tr>
&lt;/tfoot>
&lt;/table>
&lt;p>em que se pode notar que há três variáveis (região, período e taxa de desocupação), mas que não estão divididos em colunas separadas.&lt;/p>
&lt;p>No exemplo, o período deve constituir uma variável e, portanto, uma coluna. Entretanto, os dados para o período são utilizados erroneamente como nomes de colunas.&lt;/p>
&lt;/div>
&lt;div id="transposta-da-apresentação-típica" class="section level2" number="1.2">
&lt;h2>&lt;span class="header-section-number">1.2&lt;/span> Transposta da apresentação típica&lt;/h2>
&lt;p>Não é incomum utilizar-se a versão transposta da tabela apresentada acima.&lt;/p>
&lt;table style="NAborder-bottom: 0; margin-left: auto; margin-right: auto;" class="table">
&lt;thead>
&lt;tr>
&lt;th style="text-align:left;">
Trimestre
&lt;/th>
&lt;th style="text-align:right;">
Nordeste
&lt;/th>
&lt;th style="text-align:right;">
Sul
&lt;/th>
&lt;th style="text-align:right;">
Centro-Oeste
&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left;">
1º trimestre 2016
&lt;/td>
&lt;td style="text-align:right;">
12.8
&lt;/td>
&lt;td style="text-align:right;">
7.3
&lt;/td>
&lt;td style="text-align:right;">
9.7
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left;">
1º trimestre 2020
&lt;/td>
&lt;td style="text-align:right;">
15.6
&lt;/td>
&lt;td style="text-align:right;">
7.5
&lt;/td>
&lt;td style="text-align:right;">
10.6
&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;tfoot>
&lt;tr>
&lt;td style="padding: 0; " colspan="100%">
&lt;span style="font-style: italic;">Note: &lt;/span> &lt;sup>&lt;/sup> Taxa de Desocupação (PNADC/T - IBGE)
&lt;/td>
&lt;/tr>
&lt;/tfoot>
&lt;/table>
&lt;p>Nesse caso, as regiões estão erroneamente utilizadas como nomes das colunas.&lt;/p>
&lt;/div>
&lt;div id="tidy-data" class="section level2" number="1.3">
&lt;h2>&lt;span class="header-section-number">1.3&lt;/span> Tidy data&lt;/h2>
&lt;p>O formato mais adequado para organização dos dados e elaboração de gráficos também é conhecido como formato &lt;span style="color: green;"> longer&lt;/span>, em que se pode usar a função &lt;code>pivot_longer&lt;/code> do pacote &lt;code>tidyverse&lt;/code>. Para os dados apresentados acima, a organização é dada por&lt;/p>
&lt;table style="NAborder-bottom: 0; margin-left: auto; margin-right: auto;" class="table">
&lt;thead>
&lt;tr>
&lt;th style="text-align:left;">
Trimestre
&lt;/th>
&lt;th style="text-align:left;">
Grande Região
&lt;/th>
&lt;th style="text-align:right;">
Desocupação (%)
&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left;">
1º trimestre 2016
&lt;/td>
&lt;td style="text-align:left;">
Nordeste
&lt;/td>
&lt;td style="text-align:right;">
12.8
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left;">
1º trimestre 2016
&lt;/td>
&lt;td style="text-align:left;">
Sul
&lt;/td>
&lt;td style="text-align:right;">
7.3
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left;">
1º trimestre 2016
&lt;/td>
&lt;td style="text-align:left;">
Centro-Oeste
&lt;/td>
&lt;td style="text-align:right;">
9.7
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left;">
1º trimestre 2020
&lt;/td>
&lt;td style="text-align:left;">
Nordeste
&lt;/td>
&lt;td style="text-align:right;">
15.6
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left;">
1º trimestre 2020
&lt;/td>
&lt;td style="text-align:left;">
Sul
&lt;/td>
&lt;td style="text-align:right;">
7.5
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left;">
1º trimestre 2020
&lt;/td>
&lt;td style="text-align:left;">
Centro-Oeste
&lt;/td>
&lt;td style="text-align:right;">
10.6
&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;tfoot>
&lt;tr>
&lt;td style="padding: 0; " colspan="100%">
&lt;span style="font-style: italic;">Note: &lt;/span> &lt;sup>&lt;/sup> Taxa de Desocupação (PNADC/T - IBGE)
&lt;/td>
&lt;/tr>
&lt;/tfoot>
&lt;/table>
&lt;p>Mesmo que pareça estranho, há duas boas razões para organizar os dados assim:&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Pode-se descrever relações funcionais entre &lt;span style="color: red;"> variáveis&lt;/span>.&lt;/p>
&lt;ul>
&lt;li>Ex.: evolução da taxa de desocupação no tempo.&lt;/li>
&lt;li>Melhor fazer entre colunas.&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;p>Pode-se fazer comparações entre grupos de &lt;span style="color: blue;"> observações&lt;/span>:&lt;/p>
&lt;ul>
&lt;li>Ex.: como está o desemprego entre regiões?&lt;/li>
&lt;li>Melhor fazer entre linhas.&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ol>
&lt;/div>
&lt;div id="resumo-para-dados-organizados" class="section level2" number="1.4">
&lt;h2>&lt;span class="header-section-number">1.4&lt;/span> Resumo para dados organizados&lt;/h2>
&lt;p>Para dados organizados, vale a seguinte regra de bolso:&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Cada &lt;strong>variável&lt;/strong> forma uma coluna;&lt;/p>&lt;/li>
&lt;li>&lt;p>Cada &lt;strong>observação&lt;/strong> forma uma linha; e&lt;/p>&lt;/li>
&lt;li>&lt;p>Cada unidade observacional forma uma &lt;strong>tabela&lt;/strong>.&lt;/p>&lt;/li>
&lt;/ol>
&lt;p>Se quiser mais detalhes sobre o tema, é interessante consultar &lt;span class="citation">&lt;a href="#ref-WickhamRStudio2014" role="doc-biblioref">Wickham&lt;/a> (&lt;a href="#ref-WickhamRStudio2014" role="doc-biblioref">2014&lt;/a>)&lt;/span>. Com os dados organizados, pode-se elaborar tabelas e gráficos de maneira correta e mais intuitiva.&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="elaboração-de-gráficos" class="section level1" number="2">
&lt;h1>&lt;span class="header-section-number">2&lt;/span> Elaboração de gráficos&lt;/h1>
&lt;p>Apresentar informações estatísticas por meio de gráficos pode ser uma ferramenta importante para melhorar o entendimento de informações complexas. Para isso, deve-se elaborar um gráfico eficiente.&lt;/p>
&lt;p>Um gráfico é mais eficiente que o outro se sua informação pode ser decodificada pela maioria dos leitores de forma mais rápida ou mais fácil de acordo com &lt;span class="citation">&lt;a href="#ref-Robbins2004" role="doc-biblioref">Robbins&lt;/a> (&lt;a href="#ref-Robbins2004" role="doc-biblioref">2004&lt;/a>)&lt;/span>.&lt;/p>
&lt;p>Portanto, cuidados são necessários para que os gráficos não sejam ineficientes, confusos ou transmitam informações erradas. De maneira sintética, os gráficos podem seguir as seguintes diretrizes:&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>Chamar a atenção para o que é importante nos seus dados (as pessoas procuram os destaques e diferenças em primeiro lugar);&lt;/li>
&lt;li>Simplificar e reduzir as informações periféricas; e&lt;/li>
&lt;li>Identificar as hierarquias dos dados e refleti-las nos gráficos.&lt;/li>
&lt;/ol>
&lt;p>Todos esses passos devem ser disponibilizados ao público leitor demandando o mínimo de esforço para decodificação. Por isso, é também importante usar a linguagem mais simples possível.&lt;/p>
&lt;p>Portanto, de maneira geral, busca-se remover informações redundantes, como cores, textos, elementos decorativos e etc. que não dizem respeito diretamente às suas informações. Em resumo, &lt;strong>use o mínimo de tinta&lt;/strong>.&lt;/p>
&lt;p>Feitas essas considerações inciais, seguem algumas rotinas realizadas para a apresentação de dados estatísticos econômicos com o pacote &lt;a href="https://ggplot2.tidyverse.org/">&lt;code>ggplot2&lt;/code>&lt;/a>.&lt;/p>
&lt;p>Esse pacote permite apresentar dados seguindo uma “gramática de gráficos” , que “&lt;em>makes ggplot2 very powerful because you are not limited to a set of pre-specified graphics, but you can create new graphics that are precisely tailored for your problem&lt;/em>” &lt;span class="citation">(&lt;a href="#ref-Wickham2015" role="doc-biblioref">Wickham 2015&lt;/a>)&lt;/span>.&lt;/p>
&lt;p>Em síntese, &lt;span class="citation">&lt;a href="#ref-Wickham2015" role="doc-biblioref">Wickham&lt;/a> (&lt;a href="#ref-Wickham2015" role="doc-biblioref">2015&lt;/a>)&lt;/span> explica essa gramática de gráficos como uma representação estatística que mapeia informações em atributos estéticos (cores, formatos, tamanhos) de objetos geométricos (pontos, linhas, barras) em um sistema específico de coordenadas.&lt;/p>
&lt;p>Diferentes facetas podem ser usadas para representar, numa única imagem, diferentes subconjuntos de uma tabela. E é a combinação desses elementos que forma um gráfico.&lt;/p>
&lt;p>Do ponto de vista mais concreto, em primeiro lugar, é necessário instalar (uma única vez) e carregar os pacotes abaixo para realizar as rotinas no &lt;code>R&lt;/code>&lt;a href="#fn2" class="footnote-ref" id="fnref2">&lt;sup>2&lt;/sup>&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code># install.packages(&amp;quot;tidyverse&amp;quot;) Instala o pacote tidyverse, por exemplo
library(tidyverse) # Organização das tabelas e elaboração de gráficos
library(RColorBrewer) # Paletas de cores para os gráficos
library(viridis) # Paletas de cores para os gráficos
library(ggthemes) # Interfaces gráficas adicionais
library(scales) # Ajuste de escala dos gráficos
library(lubridate) # Ferramenta para ajuste de datas
library(zoo) # Ferramenta também para ajuste de datas
library(sidrar) # Acessar dados do IBGE
options(scipen = 999)&lt;/code>&lt;/pre>
&lt;p>Por fim, lembre-se de que um bom processo de elaboração de gráficos exige que sua matéria prima esteja no formato ideal, com as tabelas devidamente organizadas.&lt;/p>
&lt;/div>
&lt;div id="compontentes-básicos-dos-gráficos" class="section level1" number="3">
&lt;h1>&lt;span class="header-section-number">3&lt;/span> Compontentes básicos dos gráficos&lt;/h1>
&lt;p>Todos os gráficos feitos com o &lt;code>ggplot2&lt;/code> têm seis componentes básicos:&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>Informações (tabela);&lt;/li>
&lt;li>Mapeamentos estéticos (variáveis e outras propriedades visuais);&lt;/li>
&lt;li>Camadas (formato que as informações serão apresentadas, transformações estatísticas e ajustes de posicionamentos);&lt;/li>
&lt;li>Escalas para cada mapeamento estético (guias para ler os valores, normalmente explicados nas legendas);&lt;/li>
&lt;li>Sistema de coordenadas; e&lt;/li>
&lt;li>Especificação de facetas ou subconjuntos.&lt;/li>
&lt;/ol>
&lt;p>Os três primeiros elementos são normalmente suficientes para análises exploratórias dos dados, em que o objetivo é conhecer melhor os dados que foram coletados. Tratam-se de gráficos usados apenas pelo(a) pesquisador(a) e, em geral, são insuficientes para apresentação dos resultados.&lt;/p>
&lt;p>Para fins desta nota, serão utilizados em quase todos os gráficos as informações relativas à taxa de desocupação da força de trabalho (Tabela 6397), ao rendimento médio real (Tabela 5437) e à média de horas habitualmente trabalhadas por semana (Tabela 6372) por grupos de idade entre o 1&lt;sup>o&lt;/sup> trimestre de 2016 e o 1&lt;sup>o&lt;/sup> trimestre de 2020. Todas as informações foram coletadas na Pesquisa Nacional por Amostra de Domicílios Contínua Trimestral (PNADC/T), realizada pelo &lt;a href="https://sidra.ibge.gov.br/pesquisa/pnadct/tabelas">IBGE&lt;/a>.&lt;/p>
&lt;p>Os dados são baixados por meio do pacote &lt;code>sidrar&lt;/code>. Nesse caso, as tabelas são baixadas individualmente e, ao final, juntadas pelas categorias em comum. As informações para identificar os elementos das tabelas que queremos podem ser acessadas pela função &lt;code>info_sidra()&lt;/code>.&lt;/p>
&lt;pre class="r">&lt;code>## Tabela 6397 - Taxas de desocupação e de subutilização da força de trabalho,
## na semana de referência, das pessoas de 14 anos ou mais de idade,
## por grupos de idade
# info_sidra(6397,wb = T)
desocupacao &amp;lt;- get_sidra(
6397,
period = &amp;quot;201601-202001&amp;quot;, # Seleciona trimestres
geo = &amp;quot;Region&amp;quot;, # 5 Regiões Brasileiras
variable = c(4099),
format = 2
)
tabela1 &amp;lt;- desocupacao %&amp;gt;%
rename(&amp;quot;Desocupacao&amp;quot; = Valor) %&amp;gt;% # Renomeia a variável de interesse
select(`Grande Região`, Trimestre, `Grupo de idade`, Desocupacao)
head(tabela1, n = 3) # Mostra as três primeiras linhas&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## Grande Região Trimestre Grupo de idade Desocupacao
## 2 Norte 1º trimestre 2016 Total 10.5
## 3 Norte 1º trimestre 2016 14 a 17 anos 24.4
## 4 Norte 1º trimestre 2016 18 a 24 anos 23.2&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code>## Tabela 5437 - Rendimento médio real, habitualmente recebido por mês e
## efetivamente recebido no mês de referência, do trabalho principal e
## de todos os trabalhos, por grupos de idade
# info_sidra(5437,wb = T)
rendimento &amp;lt;- get_sidra(
5437,
period = &amp;quot;201601-202001&amp;quot;,
geo = &amp;quot;Region&amp;quot;,
variable = c(5932),
format = 2
)
tabela2 &amp;lt;- rendimento %&amp;gt;%
rename(&amp;quot;Rendimento&amp;quot; = Valor) %&amp;gt;%
select(`Grande Região`, Trimestre, `Grupo de idade`, Rendimento)
head(tabela2, n = 3)&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## Grande Região Trimestre Grupo de idade Rendimento
## 2 Norte 1º trimestre 2016 Total 1799
## 3 Norte 1º trimestre 2016 14 a 17 anos 534
## 4 Norte 1º trimestre 2016 18 a 24 anos 1127&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code>## Tabela 6372 - Média de horas habitualmente trabalhadas por semana e
## efetivamente trabalhadas na semana de referência, no trabalho principal
## e em todos os trabalhos, das pessoas de 14 anos ou mais de idade,
## por grupos de idade
#info_sidra(6372,wb = T)
horas &amp;lt;- get_sidra(
6372,
period = &amp;quot;201601-202001&amp;quot;,
geo = c(&amp;quot;Region&amp;quot;),
variable = c(8186),
format = 2
)
tabela3 &amp;lt;- horas %&amp;gt;%
rename(&amp;quot;Horas&amp;quot; = Valor) %&amp;gt;%
select(`Grande Região`, Trimestre, `Grupo de idade`, Horas)
head(tabela3, n = 3)&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## Grande Região Trimestre Grupo de idade Horas
## 2 Norte 1º trimestre 2016 Total 37.6
## 3 Norte 1º trimestre 2016 14 a 17 anos 25.9
## 4 Norte 1º trimestre 2016 18 a 24 anos 37.0&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code>## Tabela com todos os dados agrupados por `Grande Região`,
## `Trimestre` e `Grupo de Idade`
emprego &amp;lt;- tabela1 %&amp;gt;%
left_join(tabela2) %&amp;gt;%
left_join(tabela3)
head(emprego, n = 2)&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## Grande Região Trimestre Grupo de idade Desocupacao Rendimento Horas
## 1 Norte 1º trimestre 2016 Total 10.5 1799 37.6
## 2 Norte 1º trimestre 2016 14 a 17 anos 24.4 534 25.9&lt;/code>&lt;/pre>
&lt;p>Portanto, a tabela chamada ``emprego’’ será a principal base para os gráficos.&lt;/p>
&lt;p>Um gráfico simples e muito comum é o de &lt;em>disperção&lt;/em>, que é útil para relações entre duas variáveis quantitativas, como a relação entre horas trabalhadas e rendimento:&lt;/p>
&lt;pre class="r">&lt;code> # Gráfico de pontos
ggplot(emprego,
aes(x = Horas,
y = Rendimento)) +
geom_point()&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-6">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-6-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 3.1: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Note que o sinal de &lt;code>+&lt;/code> é usado para adicionar camadas ao gráfico como padrão do pacote. Uma elaboração mais completa dos gráficos envolve, normalmente, os seis componentes básicos e serão detalhados abaixo.&lt;/p>
&lt;div id="mapeamentos-estéticos-variáveis" class="section level2" number="3.1">
&lt;h2>&lt;span class="header-section-number">3.1&lt;/span> Mapeamentos estéticos (variáveis)&lt;/h2>
&lt;p>Pode-se adicionar variáveis ao gráfico com a atribuição de cores (&lt;em>colour&lt;/em>) e formato (&lt;em>shape&lt;/em>) para variáveis categóricas e tamanho (&lt;em>size&lt;/em>) para variáveis contínuas, que serão acompanhados de legenda.&lt;/p>
&lt;p>Estes elementos também podem ser utilizados de maneira cumulativa, contribuindo para uma visualização mais rápida.&lt;/p>
&lt;p>Note-se que é interessante maximizar a densidade de dados no gráfico. Se você tem poucos dados, utilize pontos, formatos ou linhas maiores. Vá reduzindo as geometrias à medida que seu conjunto de dados aumente, como o exemplo abaixo.&lt;/p>
&lt;p>Vale notar que as estéticas passadas para o termo &lt;code>ggplot()&lt;/code> valem para todas as camadas. As informações passadas como estéticas dos &lt;code>geoms&lt;/code> valem apenas para a geometria específica.&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = Horas,
y = Rendimento,
shape = `Grupo de idade`)) + # Diferencia elementos pelo formato
geom_point(size = 2.3) # Amplia a representação dos pontos &lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-7">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-7-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 3.2: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Se a intenção é dar uma cor fixa para um determinado valor, usa-se o argumento fora do padrão &lt;code>aes()&lt;/code> e na geometria de interesse.&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = Horas,
y = Rendimento,
shape = `Grupo de idade`)) +
geom_point(color = &amp;quot;red&amp;quot;, # Adiciona uma cor a todas as informações
size = 2.3)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-8">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-8-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 3.3: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Por outro lado, se seus dados começarem a representar muitas observações distintas, deve-se espalhar as informações em distintos gráficos comparáveis.&lt;/p>
&lt;p>Nesse caso, pode-se adicionar variáveis categóricas por meio de facetas, que dividem o gráfico em subconjuntos. A forma mais simples é de modo &lt;em>wrapped&lt;/em>, com o nome da variável precedido de um &lt;code>~&lt;/code>:&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = Horas,
y = Rendimento,
color = `Grupo de idade`)) + # Diferencia elementos pelas cores
geom_point(shape = 1, # Formato fixo de círculo
size = 3)+
facet_wrap(~`Grande Região`)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-9">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-9-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 3.4: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="geometrias-geoms" class="section level2" number="3.2">
&lt;h2>&lt;span class="header-section-number">3.2&lt;/span> Geometrias (geoms)&lt;/h2>
&lt;p>O pacote também fornece algumas geometrias diferentes que podem ser adaptadas às características dos dados a serem apresentados. Elas representam o “tipo” de gráfico que se quer apresentar. Note que é possível usar mais de uma geometria.&lt;/p>
&lt;p>Cada tipo de dado tem sua geometria mais adequada e a página &lt;a href="https://www.data-to-viz.com/">&lt;em>from data to vis&lt;/em>&lt;/a> apresenta um organograma didático sobre as melhores geometrias para sua necessidade.&lt;/p>
&lt;p>Um primeiro exemplo sobre o uso múltiplo de geometrias consiste em adicionar uma linha de regressão linear com o respectivo intervalo de confiança para os dados:&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = Horas,
y = Rendimento)) +
geom_point(size = 2.5,
alpha = 0.4)+ # Alpha indica transparência dos pontos
geom_smooth(method = &amp;quot;lm&amp;quot;) # Adicion linha de regressão &lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-10">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-10-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 3.5: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Histogramas e polígonos de frequência podem ser interessantes para mostrar a distribuição de uma única variável numérica. O temanho dos intervalos pode ser estabelecido com o argumento &lt;code>binwidth&lt;/code>:&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = Rendimento)) +
geom_histogram(fill = &amp;quot;blue&amp;quot;,
binwidth = 200) # Tamanho do intervalo
ggplot(emprego,
aes(x = Rendimento)) +
geom_freqpoly(color = &amp;quot;red&amp;quot;,
size = 2)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-11">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-11-1.png" alt="Elaboração própria." width="50%" />&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-11-2.png" alt="Elaboração própria." width="50%" />
&lt;p class="caption">
Figure 3.6: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Variáveis categóricas são automaticamente dispostas em ordem alfabética, mas podem ser reorganizadas conforme alguma variável quantitativa de referência com a função &lt;code>reorder()&lt;/code>. Abaixo, um exemplo dessa alteração num &lt;em>boxplot&lt;/em>.&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = reorder(`Grupo de idade`,
Desocupacao), # Critério para reordenar
y = Desocupacao)) +
geom_boxplot()&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-12">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-12-1.png" alt="Elaboração própria." width="576" />
&lt;p class="caption">
Figure 3.7: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="eixos-e-escalas" class="section level2" number="3.3">
&lt;h2>&lt;span class="header-section-number">3.3&lt;/span> Eixos e escalas&lt;/h2>
&lt;p>Os eixos podem ser customizados com alterações dos nomes (&lt;em>labels&lt;/em>) e de seus tamanhos&lt;a href="#fn3" class="footnote-ref" id="fnref3">&lt;sup>3&lt;/sup>&lt;/a> de modo a ficaram mais intuitivos e explicativos ao leitor.&lt;/p>
&lt;p>Para alterar nomes das regiões, pode-se usar a função &lt;code>labs()&lt;/code>.&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = Horas,
y = Rendimento)) +
geom_point(size = 2)+
labs(x = &amp;quot;Horas de Trabalho&amp;quot;,
y = &amp;quot;Renda habitual&amp;quot;)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-13">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-13-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 3.8: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>A área de exibição dos eixos pode ser ajustada pelas funções &lt;code>xlim()&lt;/code> e &lt;code>ylim()&lt;/code>.&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = `Grande Região`,
y = Rendimento,
colour = `Grupo de idade`)) +
geom_jitter(width = 0.3) + # Acrescenta variações para reduzir sobreposições
labs(
x = NULL,
y = NULL,
title = &amp;quot;Renda por Região (R$)&amp;quot;,
colour = &amp;quot;Idade&amp;quot; # Título da legenda
) +
ylim(c(700, 3100)) # Limite ao eixo y&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## Warning: Removed 106 rows containing missing values (geom_point).&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-14">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-14-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 3.9: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>As escalas também podem ser alteradas para padrões distintos de cores. Lembre-se de que a escolha de cores deve sempre ser feita de maneira intencional.&lt;/p>
&lt;p>Pode-se usar as cores para distinguir variáveis &lt;em>categóricas&lt;/em>, cujos valores não podem ser manipulados algebricamente.&lt;/p>
&lt;p>Nesse caso, deve-se utilizar uma escala de cores qualitativa, em que não existe relação de ordem ou destaque de uma cor em relação às demais. Um exemplo está em &lt;a href="https://colorbrewer2.org/#type=qualitative&amp;amp;scheme=Accent&amp;amp;n=3">&lt;em>Color Brewer&lt;/em>&lt;/a>. Há algumas escalas também disponíveis no ggplot2 como a apresentada na figura &lt;a href="#fig:paleta">3.10&lt;/a>.&lt;/p>
&lt;p>Também é possível usar cores para &lt;em>destacar&lt;/em>, em que alguns poucos elementos realçados podem contribuir para a história que se quer representar. Isso pode ser feito com escalas de destaque está no livro de &lt;a href="https://clauswilke.com/dataviz/color-basics.html#color-as-a-tool-to-highlight">Claus O. Wilke&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = Horas,
y = Rendimento)) +
geom_point(aes(colour = `Grupo de idade`)) +
scale_y_log10() + # Escala do eixo y na base log_10
scale_colour_brewer(palette = &amp;quot;Set1&amp;quot;) # Paleta de cores&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:paleta">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/paleta-1.png" alt="Elaboração própria." width="576" />
&lt;p class="caption">
Figure 3.10: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Pode-se também fazer uma mudança de coordenadas para melhorar a visualização ou adaptar nomes mais longos de variáveis:&lt;/p>
&lt;pre class="r">&lt;code> # Horas de trabalho no eixo horizontal
ggplot(emprego,
aes(x = Horas,
y = Rendimento)) +
geom_point(size = 2) +
labs(x = &amp;quot;Horas de Trabalho&amp;quot;,
y = &amp;quot;Renda habitual&amp;quot;)
# Horas de trabalho no eixo vertical
ggplot(emprego,
aes(x = Horas,
y = Rendimento)) +
geom_point(size = 2) +
labs(x = &amp;quot;Horas de Trabalho&amp;quot;,
y = &amp;quot;Renda habitual&amp;quot;) +
coord_flip() # Altera os eixos&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-15">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-15-1.png" alt="Elaboração própria." width="50%" />&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-15-2.png" alt="Elaboração própria." width="50%" />
&lt;p class="caption">
Figure 3.11: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Por fim, o pacote também permite a visualização de mapas. A parte mais sensível é encontrar as coordenadas. Aqui, a apresentação será restrita a um mapa disponibilizado pelo pacote &lt;strong>maps&lt;/strong>:&lt;/p>
&lt;pre class="r">&lt;code> # Download das coordenadas para formar o mapa do Brasil
brasil &amp;lt;- map_data(&amp;quot;world&amp;quot;, &amp;quot;brazil&amp;quot;) %&amp;gt;%
select(lon = long, lat, group, id = subregion)
ggplot(brasil,
aes(lon, lat)) +
geom_polygon(aes(group = group),
fill = NA, # Mapa sem preenchimento
colour = &amp;quot;black&amp;quot;) + # Cor das bordas
coord_quickmap()&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-16">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-16-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 3.12: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="temas" class="section level2" number="3.4">
&lt;h2>&lt;span class="header-section-number">3.4&lt;/span> Temas&lt;/h2>
&lt;p>Temas alteram as propriedades estéticas dos gráficos sem que sejam alteradas as formas como as informações são apresentadas em geometrias ou como os eixos são escalonados. Há alguns temas já prontos, tanto do pacote &lt;code>ggplot2&lt;/code>, quanto de extensões como o &lt;a href="https://yutannihilation.github.io/allYourFigureAreBelongToUs/ggthemes/">&lt;code>ggthemes&lt;/code>&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code>ggplot(emprego,
aes(x = Horas,
y = Rendimento)) +
geom_point(size = 2,
alpha = 0.4)+
geom_smooth(method = &amp;quot;lm&amp;quot;)+
theme_stata() # Escolhe um tema pré-organizado
ggplot(emprego,
aes(x = Rendimento)) +
geom_freqpoly(color = &amp;quot;red&amp;quot;)+
theme_excel() # Escolhe um tema pré-organizado&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-17">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-17-1.png" alt="Elaboração própria." width="50%" />&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-17-2.png" alt="Elaboração própria." width="50%" />
&lt;p class="caption">
Figure 3.13: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="séries-de-tempo-e-casos-mais-avançados" class="section level2" number="3.5">
&lt;h2>&lt;span class="header-section-number">3.5&lt;/span> Séries de tempo e casos mais avançados&lt;/h2>
&lt;p>Para séries de tempo, é interessante o uso de gráficos de linha, que ligam os pontos da esquerda para a direita, ou gráfico de trajeto, que liga os pontos conforme a ordem que aparecem na tabela.&lt;/p>
&lt;p>A forma como o SIDRA disponibiliza as tabelas oferece datas em formato de caracteres, o que prejudica a representação contínua em um dos eixos. Para isso, precisa-se transformar a informação para formato de data. Como os dados são trimestrais, faremos a transformação usando os pacotes &lt;code>tidyverse&lt;/code> e &lt;a href="https://cran.r-project.org/web/packages/zoo/vignettes/zoo-quickref.pdf">&lt;code>zoo&lt;/code>&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code> # Ajuste para o formato de datas
emprego_data &amp;lt;- emprego %&amp;gt;%
mutate(
Trimestre = str_replace(Trimestre, &amp;quot;º trimestre &amp;quot;, &amp;quot;-&amp;quot;), # Ajuste da escrita
Trimestre = as.yearqtr(Trimestre, format = &amp;quot;%q-%Y&amp;quot;) # Conversão para o formato de data trimestral
)
head(emprego_data, n = 3)&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## Grande Região Trimestre Grupo de idade Desocupacao Rendimento Horas
## 1 Norte 2016 Q1 Total 10.5 1799 37.6
## 2 Norte 2016 Q1 14 a 17 anos 24.4 534 25.9
## 3 Norte 2016 Q1 18 a 24 anos 23.2 1127 37.0&lt;/code>&lt;/pre>
&lt;p>Por fim, desejam-se apenas os dados de desocupados agregados para o Brasil em ordem cronológica como exemplo. Isso pode ser feito por:&lt;/p>
&lt;pre class="r">&lt;code>emprego_data %&amp;gt;%
filter(`Grupo de idade` == &amp;quot;Total&amp;quot;) %&amp;gt;% # Seleciona Total
ggplot(aes(x = Trimestre,
y = Desocupacao,
color = `Grande Região`)) +
geom_line(size = 1.25)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:unnamed-chunk-19">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/2a-lista/index.en_files/figure-html/unnamed-chunk-19-1.png" alt="Elaboração própria." width="576" />
&lt;p class="caption">
Figure 3.14: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div id="exercícios-parte-ii" class="section level1" number="4">
&lt;h1>&lt;span class="header-section-number">4&lt;/span> Exercícios parte II&lt;/h1>
&lt;p>Com base no explicado acima e nas referências &lt;span class="citation">&lt;a href="#ref-Vale2021" role="doc-biblioref">Vale&lt;/a> (&lt;a href="#ref-Vale2021" role="doc-biblioref">2021&lt;/a>, seções 12, 14 e 15)&lt;/span> e &lt;span class="citation">&lt;a href="#ref-SauloGuerra2021" role="doc-biblioref">Saulo Guerra et al.&lt;/a> (&lt;a href="#ref-SauloGuerra2021" role="doc-biblioref">2021&lt;/a>, seções 4-6)&lt;/span>, resolva os seguintes exercícios usando as funções do pacote &lt;code>tidyverse&lt;/code>.&lt;/p>
&lt;div id="manipulação-de-dados" class="section level2" number="4.1">
&lt;h2>&lt;span class="header-section-number">4.1&lt;/span> Manipulação de dados&lt;/h2>
&lt;p>Utilize a tabela baixada do IBGE na &lt;a href="https://rafaeldeacypreste.netlify.app/r-projetos/1a-lista/">lista anterior&lt;/a> para as manipulações a seguir.&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Impute a tabela baixada para outro objeto, excluindo as colunas menos importantes na análise, tais como a de “Unidade de Medida,” “Nível Territorial,” “Variável” e etc.&lt;/p>&lt;/li>
&lt;li>&lt;p>Renomeie a coluna de valores para um que seja mais intuitivo a respeito dos dados escolhidos. Não use expressões ou caracteres especiais.&lt;/p>&lt;/li>
&lt;li>&lt;p>Faça ao menos uma operação com a coluna dos dados baixados para alterar a unidade de medida e manter intuição econômica ao mesmo tempo.&lt;/p>&lt;/li>
&lt;li>&lt;p>Por meio das funções &lt;code>group_by&lt;/code> e &lt;code>summarise&lt;/code>, faça alguns cálculos com a variável numérica baixada agrupando por, pelo menos, outra coluna da tabela. Pode ser o cálculo da média, valores mínimos e máximos, desvio padrão e etc. Não é necessário atribuir a um novo objeto.&lt;/p>&lt;/li>
&lt;li>&lt;p>Filtre os dados relacionados apenas aos últimos dois períodos — ano, trimestre e etc. — disponíveis. Também não é necessário imputar a um novo objeto.&lt;/p>&lt;/li>
&lt;li>&lt;p>&lt;strong>Desafio 1&lt;/strong>: Use a função &lt;code>pivot_wider&lt;/code> para distribuir as informações da variável numérica em colunas de acordo com os distintos períodos de tempo filtrados na questão anterior.&lt;/p>&lt;/li>
&lt;li>&lt;p>&lt;strong>Desafio 2&lt;/strong>: A partir da tabela no formato &lt;em>wider&lt;/em>, retorne-a ao formato &lt;em>longer&lt;/em>, utilizando a função &lt;code>pivot_longer&lt;/code>.&lt;/p>&lt;/li>
&lt;li>&lt;p>Baixe outra tabela do IBGE com dados que apresentem atributos compatíveis com a tabela baixada na questão &lt;code>3&lt;/code> da lista anterior. Depois disso, use a função &lt;code>left_join&lt;/code> para juntar as duas tabelas. Certifique-se de que todas as colunas compatíveis foram lidas e devidamente acopladas.&lt;/p>&lt;/li>
&lt;/ol>
&lt;p>9.&lt;em>Desafio 3&lt;/em>: A partir das funções &lt;code>str_replace&lt;/code> e &lt;code>as.yearqtr&lt;/code> (pacote &lt;code>zoo&lt;/code>), transforme a coluna de data no formato de &lt;code>Date&lt;/code> ou equivalente.&lt;/p>
&lt;/div>
&lt;div id="exportação-de-dados" class="section level2" number="4.2">
&lt;h2>&lt;span class="header-section-number">4.2&lt;/span> Exportação de dados&lt;/h2>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Exporte todos as tabelas geradas nos exercícios anteriores para o formato &lt;code>.csv&lt;/code>.&lt;/p>&lt;/li>
&lt;li>&lt;p>Exporte todos as tabelas geradas nos exercícios anteriores para o formato &lt;code>.xlsx&lt;/code>.&lt;/p>&lt;/li>
&lt;/ol>
&lt;/div>
&lt;div id="elaboração-de-gráficos-1" class="section level2" number="4.3">
&lt;h2>&lt;span class="header-section-number">4.3&lt;/span> Elaboração de gráficos&lt;/h2>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Elabore um gráfico de pontos com os dados da tabela elaborada na questão &lt;code>8&lt;/code> acima.&lt;/p>&lt;/li>
&lt;li>&lt;p>Altere o formato dos pontos gráfico elaborado na questão acima para representar uma terceira variável.&lt;/p>&lt;/li>
&lt;li>&lt;p>Utilize as facetas para separar as informações por uma quarta variável. Se o formato (&lt;em>shape&lt;/em>) não se adaptar a uma variável contínua, mude o argumento de &lt;em>shape&lt;/em> para &lt;em>colour&lt;/em>.&lt;/p>&lt;/li>
&lt;li>&lt;p>Dê nome aos eixos e à legenda, título e informações extras (&lt;em>caption&lt;/em>) ao gráfico da questão anterior.&lt;/p>&lt;/li>
&lt;/ol>
&lt;p>&lt;span style="color: green;"> Parabéns por ter chegado até aqui! &lt;/span> Espero que esses contatos inciais te motivem a continuar usando essa ferramenta potente para análise concreta da realidade concreta.&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="referências" class="section level1 unnumbered">
&lt;h1>Referências&lt;/h1>
&lt;div id="refs" class="references csl-bib-body hanging-indent">
&lt;div id="ref-Robbins2004" class="csl-entry">
Robbins, Naomi B. 2004. &lt;em>&lt;span>Creating More Effective Graphs&lt;/span>&lt;/em>. New Jersey - USA: Wiley-Interscience. &lt;a href="http://library1.nida.ac.th/termpaper6/sd/2554/19755.pdf">http://library1.nida.ac.th/termpaper6/sd/2554/19755.pdf&lt;/a>.
&lt;/div>
&lt;div id="ref-SauloGuerra2021" class="csl-entry">
Saulo Guerra, Paulo Felipe de Oliveira, Robert McDonnell, and Sillas Gonzaga. 2021. &lt;em>&lt;span class="nocase">Ci&lt;span class="nocase">ê&lt;/span>ncia de Dados com R - Introdu&lt;span class="nocase">ç&lt;/span>&lt;span class="nocase">ã&lt;/span>o&lt;/span>&lt;/em>. Instituto Brasileiro de Pesquisa e An&lt;span>á&lt;/span>lise de Dados. &lt;a href="http://sillasgonzaga.com/material/cdr/">http://sillasgonzaga.com/material/cdr/&lt;/a>.
&lt;/div>
&lt;div id="ref-Vale2021" class="csl-entry">
Vale, Vinícius A. 2021. &lt;span>“&lt;span class="nocase">Introdu&lt;span class="nocase">ç&lt;/span>&lt;span class="nocase">ã&lt;/span>o ao R&lt;/span>.”&lt;/span> &lt;a href="https://viniciusavale.com/IntroR/Intro-R.html">https://viniciusavale.com/IntroR/Intro-R.html&lt;/a>.
&lt;/div>
&lt;div id="ref-WickhamRStudio2014" class="csl-entry">
Wickham, Hadley. 2014. &lt;span>“&lt;span>Tidy Data&lt;/span>.”&lt;/span> &lt;em>Journal of Statistical Software&lt;/em> 59 (10): 1–23. &lt;a href="http://www.jstatsoft.org/">http://www.jstatsoft.org/&lt;/a>.
&lt;/div>
&lt;div id="ref-Wickham2015" class="csl-entry">
———. 2015. &lt;em>&lt;span class="nocase">Elegant Graphics for Data Analysis&lt;/span>&lt;/em>. &lt;a href="http://had.co.nz/ggplot2/book">http://had.co.nz/ggplot2/book&lt;/a>.
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="footnotes">
&lt;hr />
&lt;ol>
&lt;li id="fn1">&lt;p>Em tradução livre, “informação organizada.”&lt;a href="#fnref1" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn2">&lt;p>Ainda que nem todos sejam utilizados nesta nota, sugere-se a consulta de informações adicionais dos pacotes para conhecer melhor suas respectivas funcionalidades.&lt;a href="#fnref2" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn3">&lt;p>A opção apresentada exclui as informações fora do intervalo. Para apenas aplicar um &lt;em>zoom&lt;/em> sem que dados sejam eliminados, deve-se usar a opção &lt;code>coord_cartesian()&lt;/code>.&lt;a href="#fnref3" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Aulas iniciais e primeira lista de exercícios</title><link>https://rafaeldeacypreste.netlify.app/r-projetos/1a-lista/</link><pubDate>Sun, 04 Jul 2021 00:00:00 +0000</pubDate><guid>https://rafaeldeacypreste.netlify.app/r-projetos/1a-lista/</guid><description>
&lt;script src="https://rafaeldeacypreste.netlify.app/r-projetos/1a-lista/index.en_files/header-attrs/header-attrs.js">&lt;/script>
&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#introdução">Introdução&lt;/a>&lt;/li>
&lt;li>&lt;a href="#por-que-usar-o-r">&lt;span class="toc-section-number">1&lt;/span> Por que usar o &lt;code>R&lt;/code>?&lt;/a>&lt;/li>
&lt;li>&lt;a href="#download-e-instalação">&lt;span class="toc-section-number">2&lt;/span> Download e Instalação&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#R">&lt;span class="toc-section-number">2.1&lt;/span> &lt;code>R&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#rstudio">&lt;span class="toc-section-number">2.2&lt;/span> &lt;code>RStudio&lt;/code>&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#primeiros-comandos">&lt;span class="toc-section-number">3&lt;/span> Primeiros comandos&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#ajuda-do-programa">&lt;span class="toc-section-number">3.1&lt;/span> Ajuda do programa&lt;/a>&lt;/li>
&lt;li>&lt;a href="#começando-um-novo-projeto">&lt;span class="toc-section-number">3.2&lt;/span> Começando um novo projeto&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#exercícios-parte-i">&lt;span class="toc-section-number">4&lt;/span> Exercícios parte I&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#noções-básicas-de-programação">&lt;span class="toc-section-number">4.1&lt;/span> Noções básicas de programação&lt;/a>&lt;/li>
&lt;li>&lt;a href="#importacao">&lt;span class="toc-section-number">4.2&lt;/span> Importação de dados&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#referências">Referências&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>
&lt;div id="introdução" class="section level1 unnumbered">
&lt;h1>Introdução&lt;/h1>
&lt;p>Esta nota tem por objetivo exercitar o ferramental básico para entender comandos que serão necessários nas próximas aulas&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>. A maior parte dos conteúdos serão relacionados às funcionalidades do &lt;code>R&lt;/code> que são úteis para cientistas sociais. &lt;strong>O curso não supõe conhecimento prévio de R&lt;/strong>, ainda que contatos anteriores permitirão um avanço mais rápido e concreto no curso.&lt;/p>
&lt;p>Trata-se de um trabalho experimental e inicial, que foi desenvolvido a partir de minha experiência concreta. Por favor, me indique eventuais erros e incongruências. Além disso, há trabalhos mais bem qualificados e em que me baseio para elaborar esses exercícios, como &lt;span class="citation">&lt;a href="#ref-Wickham2016" role="doc-biblioref">Wickham and Grolemund&lt;/a> (&lt;a href="#ref-Wickham2016" role="doc-biblioref">2016&lt;/a>)&lt;/span>, &lt;span class="citation">&lt;a href="#ref-Wickham2015" role="doc-biblioref">Wickham&lt;/a> (&lt;a href="#ref-Wickham2015" role="doc-biblioref">2015&lt;/a>)&lt;/span> e &lt;span class="citation">&lt;a href="#ref-WickhamRStudio2014" role="doc-biblioref">Wickham&lt;/a> (&lt;a href="#ref-WickhamRStudio2014" role="doc-biblioref">2014&lt;/a>)&lt;/span>, cuja leitura é recomendada. Os textos em português de &lt;span class="citation">&lt;a href="#ref-Vale2021" role="doc-biblioref">Vale&lt;/a> (&lt;a href="#ref-Vale2021" role="doc-biblioref">2021&lt;/a>)&lt;/span> e &lt;span class="citation">&lt;a href="#ref-SauloGuerra2021" role="doc-biblioref">Saulo Guerra et al.&lt;/a> (&lt;a href="#ref-SauloGuerra2021" role="doc-biblioref">2021&lt;/a>)&lt;/span> também são fontes recomendadas de consulta.&lt;/p>
&lt;/div>
&lt;div id="por-que-usar-o-r" class="section level1" number="1">
&lt;h1>&lt;span class="header-section-number">1&lt;/span> Por que usar o &lt;code>R&lt;/code>?&lt;/h1>
&lt;p>Para quem nunca teve contato com alguma linguagem de programação, este início costuma ser pouco amigável. Entretanto, há algumas vantagens em relação a editores de planilha como &lt;em>Excel&lt;/em> ou &lt;em>Calc&lt;/em> para acesso e manipulação de dados e elaboração de gráficos e apresentações:&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Os passos são descritos e registrados sequencialmente;&lt;/p>&lt;/li>
&lt;li>&lt;p>A estrutura incremental (linha por linha) ajuda na identificação de erros;&lt;/p>&lt;/li>
&lt;li>&lt;p>A discriminação dos passos auxilia na memória da pesquisa; e&lt;/p>&lt;/li>
&lt;li>&lt;p>O script permite reprodutibilidade em outras pesquisas, contribuindo para o avanço da ciência.&lt;/p>&lt;/li>
&lt;/ol>
&lt;p>Portanto, todo o esforço inical e prática constante&lt;a href="#fn2" class="footnote-ref" id="fnref2">&lt;sup>2&lt;/sup>&lt;/a> permitem uma adaptação rápida à linguagem e o acesso a dados estatísticos nacionais e internacionais que auxiliam na aprendizagem dos temas tratados na disciplina. Essas habilidades também podem ajudar para trabalhos de outras disciplinas ou de conclusão de curso.&lt;/p>
&lt;/div>
&lt;div id="download-e-instalação" class="section level1" number="2">
&lt;h1>&lt;span class="header-section-number">2&lt;/span> Download e Instalação&lt;/h1>
&lt;div id="R" class="section level2" number="2.1">
&lt;h2>&lt;span class="header-section-number">2.1&lt;/span> &lt;code>R&lt;/code>&lt;/h2>
&lt;p>O primeiro passo é baixar e instalar o &lt;code>R&lt;/code> em seu computador a partir de &lt;a href="https://cran.r-project.org/" class="uri">https://cran.r-project.org/&lt;/a>. Faça o &lt;em>download&lt;/em> de uma versão &lt;code>base&lt;/code> adaptada ao seu sistema operacional. É recomendável utilizar uma versão &lt;em>4.0&lt;/em> ou superior, para evitar problemas com pacotes no futuro. Instale o progama em seu computador, seguindo as configurações-padrão.&lt;/p>
&lt;/div>
&lt;div id="rstudio" class="section level2" number="2.2">
&lt;h2>&lt;span class="header-section-number">2.2&lt;/span> &lt;code>RStudio&lt;/code>&lt;/h2>
&lt;p>Após os passos indicados na seção &lt;a href="#R">2.1&lt;/a>, deve-se baixar e instalar o &lt;code>RStudio&lt;/code>, cuja versão gratuita para &lt;em>desktop&lt;/em> está disponível em: &lt;a href="https://www.rstudio.com/products/rstudio/download/" class="uri">https://www.rstudio.com/products/rstudio/download/&lt;/a>. Com isso, tem-se uma interface mais organizada e ferramentas auxiliares para o uso do &lt;code>R&lt;/code>.&lt;/p>
&lt;p>Caso tenham dúvidas na instalação, este vídeo a partir de 3min:30s pode ser útil: &lt;a href="https://www.youtube.com/watch?v=WVogdSlk7gY" class="uri">https://www.youtube.com/watch?v=WVogdSlk7gY&lt;/a>.&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="primeiros-comandos" class="section level1" number="3">
&lt;h1>&lt;span class="header-section-number">3&lt;/span> Primeiros comandos&lt;/h1>
&lt;p>Tradicionalmente, o primeiro programa que se faz em uma nova linguagem é dizer &lt;code>Alô, mundo!&lt;/code>. No &lt;code>R&lt;/code>, a função &lt;code>print()&lt;/code> faz esse trabalho. Caso o comando esteja em um &lt;em>Rscript&lt;/em>, basta selecionar ou manter o cursos sobre a(s) linha(s) que se deseja executar e acessar o comando “Run,” cujo atalho é CTRL+ENTER.&lt;/p>
&lt;pre class="r">&lt;code> # O resultado será exibido no console
print(&amp;quot;Alô, mundo!&amp;quot;)&lt;/code>&lt;/pre>
&lt;p>O estilo de programação usado aqui e nos &lt;code>Rscripts&lt;/code> segue parte das orientações para indentação e organização dos códigos apresentados por &lt;span class="citation">&lt;a href="#ref-HadleyWickham2021" role="doc-biblioref">Hadley Wickham&lt;/a> (&lt;a href="#ref-HadleyWickham2021" role="doc-biblioref">2021&lt;/a>)&lt;/span>. Como o &lt;code>R&lt;/code> apresenta estrutura mais flexível, seguir padrões contribui para que seu código seja lido com mais facilidade por outras pessoas.&lt;/p>
&lt;div id="ajuda-do-programa" class="section level2" number="3.1">
&lt;h2>&lt;span class="header-section-number">3.1&lt;/span> Ajuda do programa&lt;/h2>
&lt;p>O &lt;code>R&lt;/code> apresenta uma série de funções que são utilizadas para executar ações desejadas. Basta assinalar o nome da função sem parênteses, precidido de uma interrogação &lt;code>?&lt;/code>. Em geral, encontram-se a estrutura da função, seus atributos, detalhes e alguns exemplos. Este é um expediente que deve ser usado com frequência, especialmente por quem está tendo seus primeiros contatos com a linguagem&lt;/p>
&lt;pre class="r">&lt;code> # Um painel no RStudio exibirá ajuda sobre a função de concatenar
?c&lt;/code>&lt;/pre>
&lt;/div>
&lt;div id="começando-um-novo-projeto" class="section level2" number="3.2">
&lt;h2>&lt;span class="header-section-number">3.2&lt;/span> Começando um novo projeto&lt;/h2>
&lt;p>Um fluxo de trabalho interessante é iniciar um novo projeto no &lt;code>R&lt;/code> para cada trabalho. Com isso, os arquivos ficarão todos organizados numa mesma pasta, facilitando a importação de dados e salvamento de arquivos. Isso pode ser feito no &lt;code>RStudio&lt;/code> a partir de &lt;code>File &amp;gt; New Project&lt;/code>. Ademais, é possível consultar o diretório de trabalho com a função &lt;code>getwd()&lt;/code>:&lt;/p>
&lt;pre class="r">&lt;code> # Descobre onde o projeto está trabalhando
getwd() &lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div id="exercícios-parte-i" class="section level1" number="4">
&lt;h1>&lt;span class="header-section-number">4&lt;/span> Exercícios parte I&lt;/h1>
&lt;p>Considerando o que foi dito acima e os livros indicados no plano de curso, resolva os exercícios abaixo.&lt;/p>
&lt;div id="noções-básicas-de-programação" class="section level2" number="4.1">
&lt;h2>&lt;span class="header-section-number">4.1&lt;/span> Noções básicas de programação&lt;/h2>
&lt;p>Resolva as seguintes questões envolvendo noções básicas. A parte teórica está explicada em &lt;span class="citation">&lt;a href="#ref-Vale2021" role="doc-biblioref">Vale&lt;/a> (&lt;a href="#ref-Vale2021" role="doc-biblioref">2021&lt;/a>, seções 1-10)&lt;/span> e &lt;span class="citation">&lt;a href="#ref-SauloGuerra2021" role="doc-biblioref">Saulo Guerra et al.&lt;/a> (&lt;a href="#ref-SauloGuerra2021" role="doc-biblioref">2021&lt;/a>, seções 1-2)&lt;/span>. Parte dos exercícios é cumulativa, de modo que é recomendável resolver os exercícios de modo sequencial e integral. Também é interessante sejam resolvidos em um novo &lt;code>Rproject&lt;/code> e um novo &lt;code>Rscript&lt;/code>.&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Crie seu primeiro programa na linguagem &lt;code>R&lt;/code>, conforme explicado acima. Execute a linha do código com os comandos &lt;code>Ctrl + Enter&lt;/code> (ou &lt;code>Cmd+Return&lt;/code> para Mac).&lt;/p>&lt;/li>
&lt;li>&lt;p>A partir da ajuda e exemplos, busque as seguintes informações:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>&lt;p>Ajuda para as funções &lt;code>sum(); colSums(); sqrt(); lm(); setwd(); cbind(); data.frame()&lt;/code>.&lt;/p>&lt;/li>
&lt;li>&lt;p>Exemplos das funções &lt;code>sum&lt;/code> e &lt;code>colSums&lt;/code>.&lt;/p>&lt;/li>
&lt;/ol>&lt;/li>
&lt;li>&lt;p>Descubra em qual diretório seu projeto está lendo e salvando arquivos.&lt;/p>&lt;/li>
&lt;li>&lt;p>Crie os seguintes objetos com nomes distintos:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>Número de disciplinas que está cursando neste semestre.&lt;/li>
&lt;li>O nome do(a) professor(a) que está lecionando armazenado em um objeto com o mesmo nome da disciplina cursada.&lt;/li>
&lt;/ol>&lt;/li>
&lt;li>&lt;p>Escreva programas que manipulem as operações matemáticas básicas pelo menos uma vez com os números &lt;code>50&lt;/code> e &lt;code>65&lt;/code>.&lt;/p>&lt;/li>
&lt;li>&lt;p>Crie uma sequência de &lt;code>2000&lt;/code> a &lt;code>2021&lt;/code> de duas formas distintas.&lt;/p>&lt;/li>
&lt;li>&lt;p>Repita a sequência criada na questão anterior por três vezes.&lt;/p>&lt;/li>
&lt;li>&lt;p>Quais são os resultados das seguintes análises lógicas: &lt;code>TRUE &amp;amp; FALSE | FALSE&lt;/code>, &lt;code>TRUE | FALSE | FALSE&lt;/code>, &lt;code>TRUE | FALSE &amp;amp; FALSE&lt;/code> e &lt;code>(TRUE | FALSE) &amp;amp; FALSE&lt;/code>? Teste no &lt;code>R&lt;/code> se você acertou o resultado.&lt;/p>&lt;/li>
&lt;li>&lt;p>Crie vetores que contenham as seguintes informações do seu atual semestre. Dê nomes intuitivos para:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>Os nomes das disciplinas&lt;/li>
&lt;li>A quantidade de estudantes em cada disciplina&lt;/li>
&lt;li>Os códigos de horários de acordo com o SIGAA&lt;/li>
&lt;li>As menções que você espera alcançar&lt;/li>
&lt;/ol>&lt;/li>
&lt;li>&lt;p>Faça as seguintes cálculos com o vetor do número de estudantes do exercício anterior:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>Qual é a média de estudantes em suas turmas?&lt;/li>
&lt;li>Suponha que cada estudante receba 60 horas complementares por disciplina. Quantas horas seriam disponibilizadas em cada turma?&lt;/li>
&lt;li>Quantas horas seriam disponibilizadas em todas as turmas juntas?&lt;/li>
&lt;/ol>&lt;/li>
&lt;li>&lt;p>Reescreva o vetor do número de estudantes, colocando as quantidades entre aspas. Qual é a classe do vetor criado?&lt;/p>&lt;/li>
&lt;li>&lt;p>&lt;strong>Desafio&lt;/strong>: qual é a posição no vetor das turmas que têm mais estudantes do que a média de todas as turmas?&lt;/p>&lt;/li>
&lt;li>&lt;p>Utilize a função &lt;code>data.frame&lt;/code> para criar uma tabela com as informações da questão anterior. Nomeie as colunas com nomes indicativos do conteúdo.&lt;/p>&lt;/li>
&lt;li>&lt;p>Impute a tabela gerada na questão anterior para um objeto chamado &lt;code>meu_sigaa&lt;/code>. Visualize a tabela em outra aba do &lt;code>RStudio&lt;/code>.&lt;/p>&lt;/li>
&lt;li>&lt;p>A partir da tabela &lt;code>meu_sigaa&lt;/code>:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>&lt;p>Leia apenas a primeira linha.&lt;/p>&lt;/li>
&lt;li>&lt;p>Leia apenas a primeira coluna, filtrando por seu nome (atente-se para erros de leituras de caracteres especiais nos nomes das colunas).&lt;/p>&lt;/li>
&lt;li>&lt;p>Retorne o número de estudantes da disciplina de Introdução à Economia Política.&lt;/p>&lt;/li>
&lt;/ol>&lt;/li>
&lt;li>&lt;p>Certifique-se de que instalou corretamente os seguintes pacotes: &lt;code>tidyverse&lt;/code>, &lt;code>ggthemes&lt;/code>, &lt;code>scales&lt;/code>, &lt;code>writexl&lt;/code>, &lt;code>sidrar&lt;/code> e &lt;code>devtools&lt;/code>.&lt;/p>&lt;/li>
&lt;li>&lt;p>Use a ajuda do &lt;code>R&lt;/code> para acessar informações sobre as funções &lt;code>get_sidra&lt;/code> e &lt;code>info_sidra&lt;/code>.&lt;/p>&lt;/li>
&lt;li>&lt;p>Busque informações sobre a tabela 6320, depositada no &lt;em>Sistema IBGE de Recuperação Automática - SIDRA&lt;/em>.&lt;/p>&lt;/li>
&lt;/ol>
&lt;/div>
&lt;div id="importacao" class="section level2" number="4.2">
&lt;h2>&lt;span class="header-section-number">4.2&lt;/span> Importação de dados&lt;/h2>
&lt;p>Sobre importação dos dados, serão tratados tanto dados baixados manualmente de alguma fonte externa ou acessados internamente por meio de algum pacote específico capaz de acessar bancos de dados de interesse.&lt;/p>
&lt;p>A parte teórica está explicada em &lt;span class="citation">&lt;a href="#ref-Vale2021" role="doc-biblioref">Vale&lt;/a> (&lt;a href="#ref-Vale2021" role="doc-biblioref">2021&lt;/a>, seções 11 e 13)&lt;/span> e &lt;span class="citation">&lt;a href="#ref-SauloGuerra2021" role="doc-biblioref">Saulo Guerra et al.&lt;/a> (&lt;a href="#ref-SauloGuerra2021" role="doc-biblioref">2021&lt;/a>, seção 3)&lt;/span>. Lembre-se de carregar os pacotes sempre que iniciar uma nova sessão no &lt;code>R&lt;/code>.&lt;/p>
&lt;pre class="r">&lt;code> # Pacotes para esta questão
library(readxl) # Carregamento tabelas do Excel
library(sidrar) # Repositório IBGE
library(wid) # World Inequality Database
# Pacotes úteis para as próximas questões
library(tidyverse) # Organização das tabelas e elaboração de gráficos
library(ggthemes) # Interfaces gráficas adicionais
library(scales) # Ajuste de escala dos gráficos
library(writexl) # Salvamento tabelas em formato Excel
library(zoo) # Ajuste de datas&lt;/code>&lt;/pre>
&lt;p>Após, resolva as seguintes questões.&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Acesse o site do &lt;a href="https://www.ibge.gov.br/pt/inicio.html">IBGE&lt;/a>, localize uma estatística social ou econômica de seu interesse, baixe um arquivo em formato &lt;code>.xls&lt;/code> ou &lt;code>.xlsx&lt;/code> e salve na mesma pasta em que está seu projeto. Em seguida:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>&lt;p>Escreva uma função para fazer a leitura da tabela a partir do caminho relativo em seu computador.&lt;/p>&lt;/li>
&lt;li>&lt;p>Indique a planilha a ser importada utilizando o seu nome no arquivo original.&lt;/p>&lt;/li>
&lt;li>&lt;p>Crie um vetor com o(s) nome(s) das colunas e importe a tabela com o(s) novo(s) nome(s).&lt;/p>&lt;/li>
&lt;li>&lt;p>Dê um nome sugestivo à tabela importada, atribuindo-a a um objeto dentro do &lt;code>R&lt;/code>.&lt;/p>&lt;/li>
&lt;/ol>&lt;/li>
&lt;li>&lt;p>&lt;strong>Desafio&lt;/strong>: acesse o &lt;a href="https://www3.bcb.gov.br/sgspub/localizarseries/localizarSeries.do?method=prepararTelaLocalizarSeries">Sistema Gerenciador de Séries Temporais&lt;/a> do Banco Central do Brasil (BCB) e baixe uma série organizada pelo próprio BCB em formato &lt;code>.csv&lt;/code>. Salve a tabela na mesma pasta em que está seu projeto. Em seguida:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>&lt;p>Escreva uma função para fazer a leitura da tabela a partir do caminho relativo em seu computador.&lt;/p>&lt;/li>
&lt;li>&lt;p>Crie um vetor com o(s) nome(s) das colunas e importe a tabela com o(s) novo(s) nome(s).&lt;/p>&lt;/li>
&lt;li>&lt;p>Possivelmente o tipo das colunas não condiz com os dados efetivamente. Reescreva a função, indicando os tipos das colunas.&lt;/p>&lt;/li>
&lt;li>&lt;p>Dê um nome sugestivo à tabela importada, atribuindo-a a um objeto dentro do &lt;code>R&lt;/code>.&lt;/p>&lt;/li>
&lt;/ol>&lt;/li>
&lt;li>&lt;p>Utilizando o pacote &lt;code>sidrar&lt;/code>, localize informações sobre alguma série coletada pelo &lt;a href="https://sidra.ibge.gov.br/acervo#/S/Q">IBGE&lt;/a> e relacionada ao mercado de trabalho. Em seguida:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>&lt;p>Consulte as séries disponíveis com a função própria do pacote a partir de uma palavra-chave.&lt;/p>&lt;/li>
&lt;li>&lt;p>Acesse as informações da série de interesse no próprio console ou no navegador de internet.&lt;/p>&lt;/li>
&lt;li>&lt;p>Faça um teste importando a série apenas pelo seu número.&lt;/p>&lt;/li>
&lt;li>&lt;p>Refaça o procedimento do &lt;strong>item c&lt;/strong>, agora especificando os demais parâmetros de interesse e atribuindo a um objeto específico.&lt;/p>&lt;/li>
&lt;/ol>&lt;/li>
&lt;li>&lt;p>Consulte o dicionário de códigos da &lt;a href="https://wid.world/codes-dictionary/">&lt;em>World Inequality Database&lt;/em>&lt;/a> e importe com a função &lt;code>download_wid&lt;/code> os seguintes dados:&lt;/p>
&lt;ol style="list-style-type: lower-alpha">
&lt;li>&lt;p>&lt;strong>Desafio&lt;/strong>: coeficiente de GINI da distribuição de renda para o Brasil e para algum outro país a sua escolha, para fazer a comparação. Impute a um objeto.&lt;/p>&lt;/li>
&lt;li>&lt;p>Fração (&lt;em>share&lt;/em>) da renda apropriada pelo 1% mais rico e pelos 50% mais pobres do ponto de vista dos indivíduos em um país da América Latina, um da Europa e um da Ásia.&lt;/p>&lt;/li>
&lt;/ol>&lt;/li>
&lt;/ol>
&lt;/div>
&lt;/div>
&lt;div id="referências" class="section level1 unnumbered">
&lt;h1>Referências&lt;/h1>
&lt;div id="refs" class="references csl-bib-body hanging-indent">
&lt;div id="ref-HadleyWickham2021" class="csl-entry">
Hadley Wickham. 2021. &lt;em>&lt;span class="nocase">The tidyverse style guide&lt;/span>&lt;/em>. &lt;a href="https://style.tidyverse.org/">https://style.tidyverse.org/&lt;/a>.
&lt;/div>
&lt;div id="ref-SauloGuerra2021" class="csl-entry">
Saulo Guerra, Paulo Felipe de Oliveira, Robert McDonnell, and Sillas Gonzaga. 2021. &lt;em>&lt;span class="nocase">Ci&lt;span class="nocase">ê&lt;/span>ncia de Dados com R - Introdu&lt;span class="nocase">ç&lt;/span>&lt;span class="nocase">ã&lt;/span>o&lt;/span>&lt;/em>. Instituto Brasileiro de Pesquisa e An&lt;span>á&lt;/span>lise de Dados. &lt;a href="http://sillasgonzaga.com/material/cdr/">http://sillasgonzaga.com/material/cdr/&lt;/a>.
&lt;/div>
&lt;div id="ref-Vale2021" class="csl-entry">
Vale, Vinícius A. 2021. &lt;span>“&lt;span class="nocase">Introdu&lt;span class="nocase">ç&lt;/span>&lt;span class="nocase">ã&lt;/span>o ao R&lt;/span>.”&lt;/span> &lt;a href="https://viniciusavale.com/IntroR/Intro-R.html">https://viniciusavale.com/IntroR/Intro-R.html&lt;/a>.
&lt;/div>
&lt;div id="ref-WickhamRStudio2014" class="csl-entry">
Wickham, Hadley. 2014. &lt;span>“&lt;span>Tidy Data&lt;/span>.”&lt;/span> &lt;em>Journal of Statistical Software&lt;/em> 59 (10): 1–23. &lt;a href="http://www.jstatsoft.org/">http://www.jstatsoft.org/&lt;/a>.
&lt;/div>
&lt;div id="ref-Wickham2015" class="csl-entry">
———. 2015. &lt;em>&lt;span class="nocase">Elegant Graphics for Data Analysis&lt;/span>&lt;/em>. &lt;a href="http://had.co.nz/ggplot2/book">http://had.co.nz/ggplot2/book&lt;/a>.
&lt;/div>
&lt;div id="ref-Wickham2016" class="csl-entry">
Wickham, Hadley, and Garrett Grolemund. 2016. &lt;em>&lt;span class="nocase">R for data science: import, tidy, transform, visualize, and model data&lt;/span>&lt;/em>. " O’Reilly Media, Inc.".
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="footnotes">
&lt;hr />
&lt;ol>
&lt;li id="fn1">&lt;p>A primeira elaboração desses materiais se deu para o curso de Introdução à Economia Política, oferecida por mim no Departamento de Economia da Universidade de Brasília no 1&lt;sup>o&lt;/sup> semestre de 2021&lt;a href="#fnref1" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn2">&lt;p>Uma boa estratégia é tentar adaptar o &lt;code>R&lt;/code> às rotinas próprias, acadêmicas ou não, em substituição ao &lt;em>Excel&lt;/em>, por exemplo. Além de ser uma ferramenta gratuita, pode ser usada como editor de texto, de apresentações e de gráficos. Entre outras razões, tais funcionalidades fazem com que o &lt;em>software&lt;/em> seja bastante utilizado por estatísticos e cientistas sociais em geral.&lt;a href="#fnref2" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Organização de tabelas e elaboração de gráficos a partir de análises com Elan 5.7</title><link>https://rafaeldeacypreste.netlify.app/r-projetos/elan/</link><pubDate>Wed, 21 Apr 2021 00:00:00 +0000</pubDate><guid>https://rafaeldeacypreste.netlify.app/r-projetos/elan/</guid><description>
&lt;script src="https://rafaeldeacypreste.netlify.app/r-projetos/elan/index.en_files/header-attrs/header-attrs.js">&lt;/script>
&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#introdução">Introdução&lt;/a>&lt;/li>
&lt;li>&lt;a href="#organizando-a-tabela">Organizando a tabela&lt;/a>&lt;/li>
&lt;li>&lt;a href="#construindo-os-gráficos">Construindo os gráficos&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#integração-inversa">Integração Inversa&lt;/a>&lt;/li>
&lt;li>&lt;a href="#classe-especial">Classe Especial&lt;/a>&lt;/li>
&lt;li>&lt;a href="#formatos-adicionais">Formatos adicionais&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#referências">Referências&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>Trabalho elaborado por Luana de Melo Ribas&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a> e Rafael de Acypreste&lt;a href="#fn2" class="footnote-ref" id="fnref2">&lt;sup>2&lt;/sup>&lt;/a>&lt;/p>
&lt;div id="introdução" class="section level1 unnumbered">
&lt;h1>Introdução&lt;/h1>
&lt;p>Esta nota tem por objetivo explicar e exemplificar os passos para elaboração de um gráfico de linha do tempo com os informações de estudo exploratório e faz parte da dissertação de mestrado da primeira autora. É permitida a reprodução desde que citada a fonte.&lt;/p>
&lt;p>Para discutir os informações observados no estudo exploratório utilizou-se análise microgenética de videogravações em contexto escolar e, para essa análise, foi usado o &lt;em>software&lt;/em> ELAN 5.7&lt;a href="#fn3" class="footnote-ref" id="fnref3">&lt;sup>3&lt;/sup>&lt;/a>. Para mais informações, consulte &lt;span class="citation">&lt;a href="#ref-Lausberg2009" role="doc-biblioref">Lausberg and Sloetjes&lt;/a> (&lt;a href="#ref-Lausberg2009" role="doc-biblioref">2009&lt;/a>)&lt;/span>. A organização de tabelas e elaboração dos gráficos foi realizada com o &lt;em>software&lt;/em> estatístico &lt;strong>R&lt;/strong>. Os passos abaixo detalham os procedimentos adotados neste último.&lt;/p>
&lt;p>Inicialmente, vale ressaltar que, sempre que possível, deve-se evitar o uso de caracteres especias — como *, (), ç — e acentos tanto nos nomes das variáveis quanto nos nomes dos arquivos. Computadores, em geral, têm dificuldade para ler e interpretar esses sinais, sendo fonte comum de erros de sintaxe, em que o programa para sua execução.&lt;/p>
&lt;p>Também sugerimos que todos os procedimentos para manipulação dos “dados brutos” gerados no ELAN sejam feitos diretamente no &lt;strong>R&lt;/strong>. Ainda que a estrutura de linguagem de programação seja pouco amigável nos primeiros usos, há algumas vantagens em relação a editores de planilha como &lt;em>Excel&lt;/em> ou &lt;em>Calc&lt;/em>:&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;p>Os passos são descritos e registrados sequencialmente;&lt;/p>&lt;/li>
&lt;li>&lt;p>A estrutura incremental (linha por linha) ajuda na identificação de erros;&lt;/p>&lt;/li>
&lt;li>&lt;p>A discriminação dos passos auxilia na memória da pesquisa; e&lt;/p>&lt;/li>
&lt;li>&lt;p>O script permite reprodutibilidade em outras pesquisas, contribuindo para o avanço da ciência.&lt;/p>&lt;/li>
&lt;/ol>
&lt;p>Assim, essa nota pretende explicitar os procedimentos adotados nas informações utilizadas na dissertação e servir de guia para pesquisas futuras.&lt;/p>
&lt;p>Antes de começar, vamos carregar os pacotes do &lt;strong>R&lt;/strong> necessários com a função &lt;strong>library&lt;/strong>. Caso nunca tenha sido usados em uma máquina, devem ser instalados antes do primeiro uso com a função &lt;strong>install.packages&lt;/strong> e, depois, carregados.&lt;/p>
&lt;pre class="r">&lt;code># install.packages(&amp;quot;tidyverse&amp;quot;) Instala o pacote tidyverse, por exemplo
library(tidyverse) # Organização das tabelas e elaboração de gráficos
library(readxl) # Carregamento tabelas do Excel
library(writexl) # Salvamento tabelas em formato Excel
library(RColorBrewer) # Paletas de cores para os gráficos
library(viridis) # Paletas de cores para os gráficos
library(ggthemes) # Interfaces gráficas adicionais
library(scales) # Ajuste de escala dos gráficos&lt;/code>&lt;/pre>
&lt;/div>
&lt;div id="organizando-a-tabela" class="section level1">
&lt;h1>Organizando a tabela&lt;/h1>
&lt;p>A exportação de informações do Elan produz tabelas em alguns formatos. Para a presente nota, interessa o formato .csv&lt;a href="#fn4" class="footnote-ref" id="fnref4">&lt;sup>4&lt;/sup>&lt;/a>. Entretanto, as informações diponibilizados não se encontram no formato ideal para a apresentação de tabelas e elaboração de gráficos. Portanto, é necessária alguma manipulação da tabela para que as informações fiquem devidamente organizadas, isto é, para que as informações permitam uma ligação entre sua disposição física e sua semântica.&lt;/p>
&lt;p>Esse processo de organização leva à chamada ``&lt;em>tidy data&lt;/em>’’&lt;a href="#fn5" class="footnote-ref" id="fnref5">&lt;sup>5&lt;/sup>&lt;/a> (por isso o nome do primeiro pacote utilizado), conforme &lt;span class="citation">&lt;a href="#ref-WickhamRStudio2014" role="doc-biblioref">Wickham&lt;/a> (&lt;a href="#ref-WickhamRStudio2014" role="doc-biblioref">2014&lt;/a>)&lt;/span>. Em síntese, os informações devem ser organizados de duas formas. Cada &lt;strong>valor&lt;/strong> (cada célula numa tabela do &lt;em>Excel&lt;/em>) pertence a uma variável e uma observação. &lt;strong>Variável&lt;/strong> contém valores que se referem a uma mesma característica ou atributo — no presente caso, podemos citar os períodos inicial, final, duração, as pessoas, as categorias e as subcategorias — e são representadas por colunas. Cada &lt;strong>observação&lt;/strong>, isto é, cada linha contém todos os valores medidos sobre uma mesma unidade, como uma pessoa ou um dia — no caso das informações no Elan, cada pessoa em uma categoria e um período de tempo representa uma observação.&lt;/p>
&lt;p>Podemos perceber que a forma como o ELAN disponibiliza as informações não atende ao requisito de informação &lt;em>tidy&lt;/em>. Portanto, o ajuste será feito no próprio &lt;strong>R&lt;/strong>. O primeiro passo é importar o arquivo e isso se dá indicando onde o arquivo original está salvo. Notem que o acesso a uma planilha &lt;em>II_no_salao_opcao_2.csv&lt;/em> precisa indicar todos os caminhos. Sugerimos que todas as tabelas sejam salvas numa mesma pasta e preferencialmente no mesmo diretório que estão salvos as informações da sessão do R&lt;a href="#fn6" class="footnote-ref" id="fnref6">&lt;sup>6&lt;/sup>&lt;/a>.&lt;/p>
&lt;p>Nessa nota, são usadas distintas funções. Para informações sobre uma função, sugerimos consultar a ajuda do próprio programa, que pode ser acessada por meio do código &lt;strong>?nomedafunção&lt;/strong> no console, como &lt;strong>?read_csv&lt;/strong>.&lt;/p>
&lt;pre class="r">&lt;code># Lê o arquivo do ELAN e salva no objeto &amp;quot;salao_csv2&amp;quot;
tabela &amp;lt;- &amp;quot;C:/Users/rafae/OneDrive/Documentos/Luana/data/II_no_salao_opcao_2.csv&amp;quot;
salao_csv2 &amp;lt;- read_csv(tabela,
locale = locale(encoding = &amp;quot;ISO-8859-1&amp;quot;),
col_types = cols(`Tempo Inicial - hh:mm:ss.ms` =
col_time(format = &amp;quot;%H:%M:%OS&amp;quot;),
`Tempo Final - hh:mm:ss.ms` =
col_time(format = &amp;quot;%H:%M:%OS&amp;quot;)))
# &amp;quot;ISO-8859-1&amp;quot; é formato que melhor se adapta às pontuações do Português
# Sugerimos usar esse formato ao Exportar as informações do próprio ELAN
# O formato de tempo precisa ser ajustado a partir do comando &amp;quot;col_types&amp;quot;
salao_csv2[1:3,] # Mostra as três primeiras linhas&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## # A tibble: 3 x 10
## `Tempo Inicial ~ `Tempo Final - ~ `Duração - hh:m~ `MM Asp da Com ~
## &amp;lt;time&amp;gt; &amp;lt;time&amp;gt; &amp;lt;time&amp;gt; &amp;lt;chr&amp;gt;
## 1 01&amp;#39;54.000&amp;quot; 01&amp;#39;55.270&amp;quot; 00&amp;#39;01&amp;quot; observa ação ou~
## 2 01&amp;#39;55.285&amp;quot; 01&amp;#39;57.015&amp;quot; 00&amp;#39;01&amp;quot; interrogativo
## 3 01&amp;#39;57.015&amp;quot; 01&amp;#39;59.220&amp;quot; 00&amp;#39;02&amp;quot; imperativo
## # ... with 6 more variables: `MS Asp da Com e Int Social` &amp;lt;chr&amp;gt;, `MM Usos dos
## # objetos/brinquedos` &amp;lt;chr&amp;gt;, `MS Usos dos objetos/brinquedos` &amp;lt;chr&amp;gt;, `Profa
## # Asp da Com e Int Social` &amp;lt;chr&amp;gt;, `Profa Usos dos objetos/brinquedos` &amp;lt;chr&amp;gt;,
## # X10 &amp;lt;chr&amp;gt;&lt;/code>&lt;/pre>
&lt;p>Podemos notar que as colunas indicadas com letras maiúsculas configuram o par ``pessoa/categoria’’ do ELAN, que são valores da tabela. Portanto, deveriam formar duas variáveis distintas e não várias colunas&lt;a href="#fn7" class="footnote-ref" id="fnref7">&lt;sup>7&lt;/sup>&lt;/a>. Uma das consequências comuns de valores serem colocados em colunas é a profusão de células vazias. Vale ressaltar que a última coluna não faz parte das informações e será excluída nos próximos passos.&lt;/p>
&lt;p>Assim, vamos reorganizar a tabela para que as trilhas façam parte de apenas uma variável e excluir a coluna extra e as células vazias. Salvaremos a tabela em um novo objeto. Os passos serão adotados usando os &lt;em>pipes&lt;/em> — %&amp;gt;% —, em que se pode consultar mais informações sobre seu uso &lt;a href="https://magrittr.tidyverse.org/reference/pipe.html">aqui&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code>salao2 &amp;lt;-
salao_csv2 %&amp;gt;% # Atribui ao objeto &amp;quot;salao&amp;quot;
select(-&amp;quot;X10&amp;quot;) %&amp;gt;% # Exclui a coluna adicionada erroneamente
pivot_longer(cols = `MM Asp da Com e Int Social`: # Seleciona valores da
`Profa Usos dos objetos/brinquedos`,# variável temporária
names_to = &amp;quot;trilha&amp;quot;, # Local para nomes das colunas
values_to = &amp;quot;subcategoria&amp;quot;) %&amp;gt;% # Local para os valores
filter(subcategoria != &amp;quot;&amp;quot;) %&amp;gt;% # Exclui as células em branco
arrange(trilha,subcategoria) %&amp;gt;% # Ordem alfabética das trilhas
select(4,5,1,2,3) # Muda a ordem das colunas
salao2[1:3,] # Exemplo novas colunas&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## # A tibble: 3 x 5
## trilha subcategoria `Tempo Inicial - ~ `Tempo Final - h~ `Duração - hh:mm~
## &amp;lt;chr&amp;gt; &amp;lt;chr&amp;gt; &amp;lt;time&amp;gt; &amp;lt;time&amp;gt; &amp;lt;time&amp;gt;
## 1 MM Asp da~ apontar 02&amp;#39;10.139&amp;quot; 02&amp;#39;11.009&amp;quot; 00&amp;#39;00&amp;quot;
## 2 MM Asp da~ apontar 03&amp;#39;41.390&amp;quot; 03&amp;#39;43.800&amp;quot; 00&amp;#39;02&amp;quot;
## 3 MM Asp da~ declarativo 02&amp;#39;06.810&amp;quot; 02&amp;#39;08.789&amp;quot; 00&amp;#39;01&amp;quot;&lt;/code>&lt;/pre>
&lt;p>Agora, o último passo é colocar nomes mais sugestivos às colunas e alterar a estrutura do tipo de coluna referente ao tempo. Deixaremos o nome em formato amigável. Também faremos alguns ajustes de sintaxe do &lt;strong>R&lt;/strong> para que o gráfico se dê na ordem mais interessante para apresentação da pesquisa. Por fim, salvaremos a tabela organizada em uma nova planilha em formato compatível com &lt;em>Excel&lt;/em>.&lt;/p>
&lt;pre class="r">&lt;code>salao2 &amp;lt;-
salao2 %&amp;gt;%
rename(&amp;quot;t_inicial&amp;quot; = `Tempo Inicial - hh:mm:ss.ms`, # Renomeia coluna
&amp;quot;t_final&amp;quot; = `Tempo Final - hh:mm:ss.ms`) %&amp;gt;%
mutate(t_inicial = t_inicial - parse_time(&amp;quot;00:01:48&amp;quot;), # Renova o eixo x
t_final = t_final - parse_time(&amp;quot;00:01:48&amp;quot;), # para começar em zero
&amp;quot;pessoa&amp;quot; = str_extract(trilha,&amp;quot;MM|MS|Profa&amp;quot;), # Ajusta informações das
pessoa = str_replace(pessoa,&amp;quot;Profa&amp;quot;,&amp;quot;Professora&amp;quot;), # duas novas colunas
pessoa = str_replace(pessoa,&amp;quot;MS&amp;quot;,&amp;quot;MaxSteel&amp;quot;),
pessoa = str_replace(pessoa,&amp;quot;MM&amp;quot;,&amp;quot;Mulher Maravilha&amp;quot;),
&amp;quot;categoria&amp;quot; = str_extract(trilha,&amp;quot;Uso.*|Asp.*&amp;quot;)) %&amp;gt;%
select(-1) %&amp;gt;% # Exclui coluna temporária
mutate(categoria = str_replace(categoria,&amp;quot;Asp da Com e Int Social&amp;quot;,&amp;quot;Aspectos da Comunicação/Interação&amp;quot;),
categoria = str_replace(categoria,&amp;quot;Usos&amp;quot;,&amp;quot;Uso&amp;quot;),
subcategoria = str_replace(subcategoria,&amp;quot;observa ação/outro&amp;quot;,&amp;quot;observa ação outro&amp;quot;),
subcategoria = str_replace(subcategoria,&amp;quot;poduz&amp;quot;,&amp;quot;produz&amp;quot;),
subcategoria = as_factor(subcategoria),
categoria = factor(categoria,levels = unique(categoria))) # Reordena
# Salva a tabela em formato .xlsx (Excel)
write_xlsx(salao2,&amp;quot;C:/Users/rafae/OneDrive/Documentos/Luana/data/salao2.xlsx&amp;quot;)
salao2[1:3,]&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## # A tibble: 3 x 6
## subcategoria t_inicial t_final `Duração - hh:mm:~ pessoa categoria
## &amp;lt;fct&amp;gt; &amp;lt;drtn&amp;gt; &amp;lt;drtn&amp;gt; &amp;lt;time&amp;gt; &amp;lt;chr&amp;gt; &amp;lt;fct&amp;gt;
## 1 apontar 22.139 s~ 23.009 ~ 00&amp;#39;00&amp;quot; Mulher M~ Aspectos da Co~
## 2 apontar 113.390 s~ 115.800 ~ 00&amp;#39;02&amp;quot; Mulher M~ Aspectos da Co~
## 3 declarativo 18.810 s~ 20.789 ~ 00&amp;#39;01&amp;quot; Mulher M~ Aspectos da Co~&lt;/code>&lt;/pre>
&lt;p>Com a tabela no formato adequado, passemos à elaboração dos gráficos.&lt;/p>
&lt;/div>
&lt;div id="construindo-os-gráficos" class="section level1">
&lt;h1>Construindo os gráficos&lt;/h1>
&lt;p>Para a base dos gráficos, usaremos a função &lt;strong>geom_segment&lt;/strong> do pacote &lt;strong>ggplot2&lt;/strong>, como se pode ver na Figura &lt;a href="#fig:inicial">1&lt;/a>. Como as categorias e subcategorias farão parte da explicação das linhas do tempo e parte da legenda no gráfico, sugerimos que sejam escolhidas criteriosamente pela pesquisadora e pelo pesquisador. Quanto maior a quantidade, mais informações e cores precisarão estar disponíveis no gráfico, o que pode prejudicar a inteligibilidade.&lt;/p>
&lt;pre class="r">&lt;code>?geom_segment # Consultar informações&lt;/code>&lt;/pre>
&lt;div id="integração-inversa" class="section level2">
&lt;h2>Integração Inversa&lt;/h2>
&lt;p>Por fim, o gráfico pode ser customizado conforme interesse da pesquisa e salvo. As principais ferramentas utilizadas estão no pacote &lt;a href="https://ggplot2.tidyverse.org/">ggplot2&lt;/a>. Uma folha de resumo deste pacote pode ser encontrada &lt;a href="https://rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf">aqui&lt;/a>. Há também modelos de gráficos adicionais e cores no pacote &lt;a href="https://yutannihilation.github.io/allYourFigureAreBelongToUs/ggthemes/">&lt;strong>ggthemes&lt;/strong>&lt;/a>. A interface apresentada na dissertação se dá abaixo.&lt;/p>
&lt;pre class="r">&lt;code>salao2_plot &amp;lt;-
salao2 %&amp;gt;%
ggplot()+ # Elabora gráfico
geom_segment(aes(x = t_inicial, xend = t_final, # Eixo x - Tempo
y = pessoa, yend = pessoa, # Eixo y - códigos-mãe
color = subcategoria), # Informações legenda
size = 10)+ # Largura dos segmentos
facet_grid(categoria ~ ., # Divisão códigos-filho
scales = &amp;quot;free_y&amp;quot;)+
theme_hc()+ # Tema do gráfico
labs(x = NULL, # Nomes no gráfico
y = NULL,
title = &amp;quot;Integração Inversa&amp;quot;,
subtitle = &amp;quot;Relação triádica criança com autismo - objeto/brinquedo - outro&amp;quot;,
caption = &amp;quot;Fonte: Elaboração própria.&amp;quot;,
theme(legend.position = &amp;quot;bottom&amp;quot;),
color = NULL)+
theme(legend.position=&amp;quot;right&amp;quot;)+ # Legenda à direita
scale_x_time(labels=time_format(&amp;quot;%H:%M:%S&amp;quot;))+ # Nomes eixo tempo
scale_color_manual(values = c(&amp;quot;#ffd94a&amp;quot;,&amp;quot;#c7c7c7&amp;quot;,&amp;quot;#2ca02c&amp;quot;,&amp;quot;#9467bd&amp;quot;,
&amp;quot;#ff7f0e&amp;quot;,&amp;quot;#98df8a&amp;quot;,&amp;quot;#8c564b&amp;quot;,&amp;quot;#1f77b4&amp;quot;,
&amp;quot;#e377c2&amp;quot;,&amp;quot;#9edae5&amp;quot;,&amp;quot;#d62728&amp;quot;,
&amp;quot;#ff9896&amp;quot;,&amp;quot;#7f7f7f&amp;quot;)) # Cores
# Salva o gráfico
ggsave(plot = salao2_plot,&amp;quot;C:/Users/rafae/OneDrive/Documentos/Luana/figures/salao2.jpg&amp;quot;,
width = 12, height = 8)
salao2_plot&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:inicial">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/elan/index.en_files/figure-html/inicial-1.png" alt="Elaboração própria." width="864" />
&lt;p class="caption">
Figure 1: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Podemos também selecionar tempos menores para exibição dos gráficos. O &lt;em>zoom&lt;/em> pode ser feito com o comando &lt;strong>coord_cartesian()&lt;/strong>.&lt;/p>
&lt;/div>
&lt;div id="classe-especial" class="section level2">
&lt;h2>Classe Especial&lt;/h2>
&lt;p>Passos semelhantes foram adotados para as informações da Classe Especial.
Os resultados são visualizados na figura &lt;a href="#fig:animais">2&lt;/a>.&lt;/p>
&lt;div class="figure">&lt;span id="fig:animais">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/elan/index.en_files/figure-html/animais-1.png" alt="Elaboração própria." width="864" />
&lt;p class="caption">
Figure 2: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="formatos-adicionais" class="section level2">
&lt;h2>Formatos adicionais&lt;/h2>
&lt;p>Por fim, a título de exemplo, seria possível elaborar com outro &lt;em>layout&lt;/em> de gráfico e paleta de cores como nas Figuras &lt;a href="#fig:exemplo1">3&lt;/a> e &lt;a href="#fig:exemplo2">4&lt;/a>:&lt;/p>
&lt;div class="figure">&lt;span id="fig:exemplo1">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/elan/index.en_files/figure-html/exemplo1-1.png" alt="Elaboração própria." width="864" />
&lt;p class="caption">
Figure 3: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;div class="figure">&lt;span id="fig:exemplo2">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/elan/index.en_files/figure-html/exemplo2-1.png" alt="Elaboração própria." width="864" />
&lt;p class="caption">
Figure 4: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div id="referências" class="section level1 unnumbered">
&lt;h1>Referências&lt;/h1>
&lt;div id="refs" class="references csl-bib-body hanging-indent">
&lt;div id="ref-Lausberg2009" class="csl-entry">
Lausberg, Hedda, and Han Sloetjes. 2009. &lt;span>“&lt;span class="nocase">Coding gestural behavior with the NEUROGES-ELAN system&lt;/span>.”&lt;/span> &lt;em>Behavior Research Methods&lt;/em> 41 (3): 841–49. &lt;a href="https://doi.org/10.3758/BRM.41.3.841">https://doi.org/10.3758/BRM.41.3.841&lt;/a>.
&lt;/div>
&lt;div id="ref-WickhamRStudio2014" class="csl-entry">
Wickham, Hadley. 2014. &lt;span>“&lt;span>Tidy Data&lt;/span>.”&lt;/span> &lt;em>Journal of Statistical Software&lt;/em> 59 (10): 1–23. &lt;a href="http://www.jstatsoft.org/">http://www.jstatsoft.org/&lt;/a>.
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="footnotes">
&lt;hr />
&lt;ol>
&lt;li id="fn1">&lt;p>Mestranda em Psicologia do Desenvolvimento e Escolar pela Universidade de Brasília. Pode ser contatada em &lt;a href="mailto:luana.psi@hotmail.com">luana.psi@hotmail.com&lt;/a>.&lt;a href="#fnref1" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn2">&lt;p>Doutorando em Economia pela Universidade de Brasília. Pode ser contatado em &lt;a href="mailto:rafaeldeacyprestemr@gmail.com">rafaeldeacyprestemr@gmail.com&lt;/a>.&lt;a href="#fnref2" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn3">&lt;p>O &lt;em>download&lt;/em> está disponível em &lt;a href="https://archive.mpi.nl/tla/elan" class="uri">https://archive.mpi.nl/tla/elan&lt;/a>. O programa foi criado pelo &lt;em>Max Planck Institute for Psycholinguistics, The Language Archive, Nijmegen, The Netherlands&lt;/em>.&lt;a href="#fnref3" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn4">&lt;p>Sugerimos utilizar o formato “ISO-8859-1” ao exportar as informações do próprio ELAN.&lt;a href="#fnref4" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn5">&lt;p>Em tradução livre, “informação organizada.”&lt;a href="#fnref5" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn6">&lt;p>O diretório local pode ser acessado digitando &lt;strong>getwd()&lt;/strong> no Console do &lt;strong>R&lt;/strong>.&lt;a href="#fnref6" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn7">&lt;p>A separação em duas colunas envolve um passo intermediário, que será feito por uma coluna temporária chamada “&lt;em>trilha&lt;/em>.”&lt;a href="#fnref7" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Simulaçao Numérica de EDOs</title><link>https://rafaeldeacypreste.netlify.app/r-projetos/edos/</link><pubDate>Wed, 21 Apr 2021 00:00:00 +0000</pubDate><guid>https://rafaeldeacypreste.netlify.app/r-projetos/edos/</guid><description>
&lt;script src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/header-attrs/header-attrs.js">&lt;/script>
&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#introdução">&lt;span class="toc-section-number">1&lt;/span> Introdução&lt;/a>&lt;/li>
&lt;li>&lt;a href="#solow">&lt;span class="toc-section-number">2&lt;/span> EDOs de 1&lt;sup>a&lt;/sup> ordem&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#estrutura-básica-para-simulação-com-r">&lt;span class="toc-section-number">2.1&lt;/span> Estrutura básica para simulação com R&lt;/a>&lt;/li>
&lt;li>&lt;a href="#interrupção-automática-da-simulação">&lt;span class="toc-section-number">2.2&lt;/span> Interrupção automática da simulação&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#edo2">&lt;span class="toc-section-number">3&lt;/span> EDOs de 2&lt;sup>a&lt;/sup> ordem&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#equação-com-coeficientes-constantes">&lt;span class="toc-section-number">3.1&lt;/span> Equação com coeficientes constantes&lt;/a>&lt;/li>
&lt;li>&lt;a href="#equação-de-laguerre">&lt;span class="toc-section-number">3.2&lt;/span> Equação de Laguerre&lt;/a>&lt;/li>
&lt;li>&lt;a href="#equação-de-euler">&lt;span class="toc-section-number">3.3&lt;/span> Equação de Euler&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#simultaneas">&lt;span class="toc-section-number">4&lt;/span> Equações diferenciais simultâneas&lt;/a>&lt;/li>
&lt;li>&lt;a href="#análise-de-estabilidade">&lt;span class="toc-section-number">5&lt;/span> Análise de estabilidade&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#estabilidade-de-edo-de-1a-ordem">&lt;span class="toc-section-number">5.1&lt;/span> Estabilidade de EDO de 1&lt;sup>a&lt;/sup> ordem&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#retrato-de-fase">&lt;span class="toc-section-number">5.1.1&lt;/span> Retrato de fase&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#estabilidade-de-sistema-de-duas-edos-de-1a-ordem---equilíbrio-dinâmico">&lt;span class="toc-section-number">5.2&lt;/span> Estabilidade de sistema de duas EDOs de 1&lt;sup>a&lt;/sup> ordem - equilíbrio dinâmico&lt;/a>&lt;/li>
&lt;li>&lt;a href="#estabilidade-de-sistema-de-duas-edos-de-1a-ordem---ponto-de-sela">&lt;span class="toc-section-number">5.3&lt;/span> Estabilidade de sistema de duas EDOs de 1&lt;sup>a&lt;/sup> ordem - ponto de sela&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#referências">Referências&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>Rafael de Acypreste&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a> e Theo Antunes&lt;a href="#fn2" class="footnote-ref" id="fnref2">&lt;sup>2&lt;/sup>&lt;/a>&lt;/p>
&lt;div id="introdução" class="section level1" number="1">
&lt;h1>&lt;span class="header-section-number">1&lt;/span> Introdução&lt;/h1>
&lt;p>O objetivo geral desta nota é realizar simulações numéricas de equações diferenciais ordinárias com ênfase, especialmente, em aplicações econômicas. Todas as simulações são feitas utilizando-se o software &lt;strong>R&lt;/strong>. Este trabalho teve como referência os trabalhos realizados pelo professor &lt;a href="https://www.jfcostasantos.com/post/modelo-is-lm-dinamico/">Júlio Fernando&lt;/a> Costa Santos&lt;a href="#fn3" class="footnote-ref" id="fnref3">&lt;sup>3&lt;/sup>&lt;/a>&lt;/p>
&lt;p>Para as simulações, serão utilizados os pacotes abaixo, adicionais à base do &lt;strong>R&lt;/strong>. É preciso que sejam instalados (uma única vez) e carregados antes do uso:&lt;/p>
&lt;pre class="r">&lt;code># install.packages(&amp;quot;deSolve&amp;quot;)
# install.packages(&amp;quot;PhaseR&amp;quot;)
# install.packages(&amp;quot;scatterplot3d&amp;quot;)
# install.packages(&amp;quot;latex2exp&amp;quot;)
library(deSolve) # Funções para resolver EDOs
library(phaseR) # Funções para elaboração dos retratos de fase
library(scatterplot3d) # Gráficos em 3 dimensões
library(latex2exp) # Expressões escritas padrão LaTeX
options(scipen = 99) # Utiliza 99 casas decimais como padrão em vez de notação científica&lt;/code>&lt;/pre>
&lt;p>Denota-se por equação diferencial ordinária (EDO) uma função desconhecida e a relação com suas derivadas. Como, em economia, costuma-se usar o tempo como variável independente, esta notação permanecerá ao longo do texto se não estiver disposto de outra maneira. Portanto, pode-se representar uma EDO de ordem &lt;span class="math inline">\(n\)&lt;/span> por&lt;/p>
&lt;p>&lt;span class="math display" id="eq:edo">\[\begin{equation}
f[y(t),y^{(1)}(t),y^{(2)}(t),...,y^{(n)}(t),t ] = 0
\tag{1.1}
\end{equation}\]&lt;/span>&lt;/p>
&lt;p>em que &lt;span class="math inline">\((n)\)&lt;/span> é o grau da EDO e representa a maior ordem das derivadas da função desconhecida &lt;span class="citation">&lt;a href="#ref-Seco2018" role="doc-biblioref">Seco and Patrão&lt;/a> (&lt;a href="#ref-Seco2018" role="doc-biblioref">2018&lt;/a>)&lt;/span>. Uma notação da forma geral pode ser descrita por:&lt;/p>
&lt;p>&lt;span class="math display" id="eq:geral">\[\begin{equation}
a_n(t)y^{(n)}(t)+\dots+a_2(t)y^{(2)}(t)+a_1(t)y^{(1)}(t)+a_0(t)y(t) = g(t)
\tag{1.2}
\end{equation}\]&lt;/span>&lt;/p>
&lt;p>Neste texto, não serão abordados detalhes teóricos sobre equações diferenciais e sobre os modelos apresentados. O(a) leitor(a) deve recorrer aos documentos citados em caso de interesse.&lt;/p>
&lt;/div>
&lt;div id="solow" class="section level1" number="2">
&lt;h1>&lt;span class="header-section-number">2&lt;/span> EDOs de 1&lt;sup>a&lt;/sup> ordem&lt;/h1>
&lt;p>EDOs de 1&lt;sup>a&lt;/sup> ordem envolvem uma equação em termos da sua primeira derivada &lt;span class="math inline">\(y&amp;#39;(t)\)&lt;/span>. Conforme &lt;span class="citation">&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">Gandolfo&lt;/a> (&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">2005&lt;/a>)&lt;/span>, pode-se encontrar uma solução de uma equação homogênea no formato &lt;span class="math inline">\(y(t) = Ae^{-bt}\)&lt;/span>, cuja estabilidade depende do sinal de &lt;span class="math inline">\(-b\)&lt;/span>. Alguns exemplos de equações na Figura &lt;a href="#fig:exemplos">2.1&lt;/a>.&lt;/p>
&lt;p>Apesar de servir de motivação para a análise de EDOs, o objetivo desta nota não é resolver EDOs, encontrando uma função &lt;span class="math inline">\(y(t)\)&lt;/span> que a satisfaz, mas sim identificar o comportamento de tais equações a partir de resoluções numéricas e representações gráficas. Portanto, passa-se aos detalhes básicos para as simulações.&lt;/p>
&lt;div class="figure">&lt;span id="fig:exemplos">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/exemplos-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 2.1: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;div id="estrutura-básica-para-simulação-com-r" class="section level2" number="2.1">
&lt;h2>&lt;span class="header-section-number">2.1&lt;/span> Estrutura básica para simulação com R&lt;/h2>
&lt;p>Algumas equações diferenciais apresentam soluções analíticas, que podem ser resolvidas a partir de técnicas específicas. Para a economia, uma boa referência é o livro do &lt;span class="citation">&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">Gandolfo&lt;/a> (&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">2005&lt;/a>)&lt;/span>. Para aplicações mais detalhadas, consultar &lt;span class="citation">&lt;a href="#ref-Seco2018" role="doc-biblioref">Seco and Patrão&lt;/a> (&lt;a href="#ref-Seco2018" role="doc-biblioref">2018&lt;/a>)&lt;/span>. Nesses casos, simples técnicas de elaboração de gráficos podem ser adotadas no &lt;strong>R&lt;/strong> ou outro software.&lt;/p>
&lt;p>Porém, há situações que não se deseja ou não é simples encontrar uma solução analítica. Para esses casos, o &lt;strong>R&lt;/strong> possui pacotes que ajudam a encontrar e representar graficamente soluções numéricas e retratos de fase, que podem ajudar na interpretação dos modelos.&lt;/p>
&lt;p>O pacote utilizado para simulação e resolução de EDOs com o &lt;strong>R&lt;/strong> é o &lt;strong>deSolve&lt;/strong>. Um espectro maior de aplicações e parte das explicações aqui apresentadas podem ser encontradas em &lt;span class="citation">&lt;a href="#ref-Soetaert2010" role="doc-biblioref">Soetaert, Petzoldt, and Setzer&lt;/a> (&lt;a href="#ref-Soetaert2010" role="doc-biblioref">2010&lt;/a>)&lt;/span>}. Recursos adicionais e manuais podem ser acessados digitando &lt;strong>?deSolve&lt;/strong> diretamente no console&lt;a href="#fn4" class="footnote-ref" id="fnref4">&lt;sup>4&lt;/sup>&lt;/a>.&lt;/p>
&lt;p>Em primeiro lugar, deve-se definir uma função própria do modelo a ser simulado em linguagem própria do &lt;strong>R&lt;/strong> com, no mínimo, os seguintes parâmetros nesta ordem:&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;strong>Tempo&lt;/strong> para simulação;&lt;/li>
&lt;li>Valor &lt;strong>inicial&lt;/strong> das variáveis (estado); e&lt;/li>
&lt;li>&lt;strong>Parâmetros&lt;/strong> do modelo.&lt;/li>
&lt;/ol>
&lt;p>Quando da resolução, o modelo chamará essa função em cada período de tempo durante o processo de integração. &lt;strong>Tempo&lt;/strong> e &lt;strong>valores iniciais&lt;/strong> devem ser disponibilizados no formato de vetores (ou listas). A função &lt;strong>with( )&lt;/strong>&lt;a href="#fn5" class="footnote-ref" id="fnref5">&lt;sup>5&lt;/sup>&lt;/a> permite usar as variáveis em formato de lista diretamente dentro da função sem que seja necessário indicar o nome da lista todas as vezes. Por fim, a função deve retornar uma lista (os resultados serão concatenados se estivermos interessados em mais de uma EDO). Os comandos estão detalhados abaixo.&lt;/p>
&lt;p>Com a função elaborada, são estabelecidos os nomes e valores dos parâmetros, a(s) condição(ões) inicial(is) e o período de tempo que se deseja fazer a simulação. Lembre-se de que, quanto maior o tempo e complexidade do modelo, maior será o nível de exigência computacional&lt;a href="#fn6" class="footnote-ref" id="fnref6">&lt;sup>6&lt;/sup>&lt;/a>.&lt;/p>
&lt;p>Como exemplo de EDO de 1&lt;sup>a&lt;/sup> ordem, pode-se simular o seguinte modelo, baseado no modelo canônico de &lt;span class="citation">&lt;a href="#ref-Solow1956" role="doc-biblioref">Solow&lt;/a> (&lt;a href="#ref-Solow1956" role="doc-biblioref">1956&lt;/a>)&lt;/span>&lt;a href="#fn7" class="footnote-ref" id="fnref7">&lt;sup>7&lt;/sup>&lt;/a> representado na equação &lt;a href="#eq:solow">(2.1)&lt;/a>.
&lt;span class="math display" id="eq:solow">\[\begin{equation}
\dot{r} = sF(r,1) - nr
\tag{2.1}
\end{equation}\]&lt;/span> em que &lt;span class="math inline">\(r = \frac{K}{L}\)&lt;/span> é a razão capital-trabalho, &lt;span class="math inline">\(s\)&lt;/span> é a taxa de poupança, &lt;span class="math inline">\(n\)&lt;/span> é a taxa de crescimento da força de trabalho e &lt;span class="math inline">\(F(r,1)\)&lt;/span> é uma função de produção homogênea de grau um a ser especificada.&lt;/p>
&lt;p>No presente caso, uma função Cobb-Douglas na forma &lt;span class="math inline">\(F(K,L) = K^\alpha L^{1-\alpha} \Rightarrow F(r,1) = r^\alpha\)&lt;/span> pode ser adotada para a resolução numérica. Portanto, a equação diferencial a ser simulada é:
&lt;span class="math display" id="eq:solow-cobb">\[\begin{equation}
\dot{r} = sr^\alpha - nr
\tag{2.2}
\end{equation}\]&lt;/span> cuja função para simuação da EDO pode ser construída por:&lt;/p>
&lt;pre class="r">&lt;code> ### Função em R que representa a EDO
solow_edo &amp;lt;- function(tempo, inicial, parametros){ # Parâmetros da função
list &amp;lt;- as.list(c(inicial, parametros)) # Lista c/ informações da EDO
with(list, { # with() acessa elementos da lista
dr = s*r^alpha - n*r # EDO de interesse
list(dr) # Retorna valores simulados
}) # Fim do with
} # Fim da função&lt;/code>&lt;/pre>
&lt;p>A partir da função &lt;em>solow_edo&lt;/em> criada, pode-se disponibilizar os dados específicos a partir da simulação com a função &lt;strong>ode( )&lt;/strong>. Os valores dos parâmetros foram &lt;span class="math inline">\(s = 0.1\)&lt;/span>, &lt;span class="math inline">\(\alpha = 0.35\)&lt;/span> e &lt;span class="math inline">\(n = 0.05\)&lt;/span> e o valor inicial &lt;span class="math inline">\(r_0 = 1\)&lt;/span>. Ao final, estão os três primeiros e últimos resultados:&lt;/p>
&lt;pre class="r">&lt;code> ### Valor inicial
r &amp;lt;- c(r = 1) # Formato de vetor nominado de acordo com a função
### Parâmetros da função (podem ser estimados)
parametros &amp;lt;- c(s = 0.1,
alpha = 0.35,
n = 0.05) # Formato de vetor
### Sequência de tempo
tempo &amp;lt;- seq(0, 350, by = 1)
### Simulação do modelo
solow &amp;lt;- ode(y = r, # Condição inicial
times = tempo, # Tempo a ser simulado
func = solow_edo, # Função criada
parms = parametros) # Se parâmetros já definidos, use parms = NULL
### Exibição dos resultados
head(solow, n=3) # Exibe três primeiros&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## time r
## [1,] 0 1.000000
## [2,] 1 1.049617
## [3,] 2 1.098443&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code>tail(solow, n=3) # Exibe três últimos&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## time r
## [349,] 348 2.904818
## [350,] 349 2.904819
## [351,] 350 2.904820&lt;/code>&lt;/pre>
&lt;p>O gráfico resultado do modelo está descrito na Figura &lt;a href="#fig:solow">2.2&lt;/a>, sob o título “Modelo de Solow.”&lt;/p>
&lt;/div>
&lt;div id="interrupção-automática-da-simulação" class="section level2" number="2.2">
&lt;h2>&lt;span class="header-section-number">2.2&lt;/span> Interrupção automática da simulação&lt;/h2>
&lt;p>Caso o interesse seja só a fase inicial de uma equação ou se tenha uma EDO convergente, é possível usar a funcionalidade &lt;em>root&lt;/em> da função &lt;strong>lsodar&lt;/strong>&lt;a href="#fn8" class="footnote-ref" id="fnref8">&lt;sup>8&lt;/sup>&lt;/a>.&lt;/p>
&lt;p>A simulação será interrompida no momento em que as variáveis de estado estiverem a uma distância entre si menor que um parâmetro pré-definido (no exemplo, uma variação da ordem de 10&lt;sup>-4&lt;/sup>). Assim, a função raiz calcula, em primeiro lugar, a taxa de variação e, depois, a diferença entre a soma dos valores absolutos e a tolerância definida:&lt;/p>
&lt;pre class="r">&lt;code> ### Critério de parada
raiz &amp;lt;- function(tempo,incial,parametros) {
variacao &amp;lt;- unlist(solow_edo(tempo,incial,parametros)) # Desfaz lista
sum(abs(variacao)) - 1e-4 # Tolerância
}
### Nova simulação do modelo, acrescida da raiz
solow_raiz &amp;lt;- lsodar(y = r,
times = tempo,
func = solow_edo,
parms = parametros,
rootfun = raiz) # Indicação da função criada
tail(solow_raiz, n=3) # Compare com os três últimos sem parada&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## time r
## [202,] 201.0000 2.901594
## [203,] 202.0000 2.901698
## [204,] 202.6914 2.901768&lt;/code>&lt;/pre>
&lt;p>Por fim, os gráficos estão na Figura &lt;a href="#fig:solow">2.2&lt;/a>. Note que a função &lt;strong>matplot()&lt;/strong>&lt;a href="#fn9" class="footnote-ref" id="fnref9">&lt;sup>9&lt;/sup>&lt;/a> foi usada para ter uma interface melhor adaptada à plotagem lado a lado e a lidar com mais de uma variável no mesmo gráfico. Nesta nota, serão dados exemplos também com a função &lt;strong>plot()&lt;/strong>, da base do R.&lt;/p>
&lt;pre class="r">&lt;code>par(mfrow=c(1,2)) # Define gráficos a seguir em 1 linha e 2 colunas
### Série original
matplot(x = solow[,1],
y = solow[,2],
type = &amp;quot;l&amp;quot;, # Gráfico de linha
lwd = 2, # Largura da linha
col = &amp;quot;red&amp;quot;,
main = &amp;quot;Modelo de Solow&amp;quot;,
xlab = &amp;quot;tempo&amp;quot;,
ylab = &amp;quot;r(t)&amp;quot;)
### Série com interrupção
matplot(x = solow_raiz[,1],
y = solow_raiz[,2],
type = &amp;quot;l&amp;quot;,
lwd = 2,
col = &amp;quot;blue&amp;quot;,
main = &amp;quot;Modelo de Solow com parada&amp;quot;,
xlab = &amp;quot;tempo&amp;quot;,
ylab = &amp;quot;r(t)&amp;quot;)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:solow">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/solow-1.png" alt="Elaboração própria." width="624" />
&lt;p class="caption">
Figure 2.2: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div id="edo2" class="section level1" number="3">
&lt;h1>&lt;span class="header-section-number">3&lt;/span> EDOs de 2&lt;sup>a&lt;/sup> ordem&lt;/h1>
&lt;p>EDOs de 2&lt;sup>a&lt;/sup> ordem envolvem a segunda derivada da função principal. Vale notar que, para fins computacionais, EDOs de 2&lt;sup>a&lt;/sup> ordem precisam ser escritas sob a forma de um sistema de equações de EDOs de 1&lt;sup>a&lt;/sup> ordem&lt;a href="#fn10" class="footnote-ref" id="fnref10">&lt;sup>10&lt;/sup>&lt;/a>, bem como duas condições iniciais. Assim, uma EDO no formato
&lt;span class="math display" id="eq:transformacao1">\[\begin{equation}
\begin{split}
y&amp;#39;&amp;#39; &amp;amp; = f(y,y&amp;#39;,t) \\
y(t_0) &amp;amp; = y_{0}\\
y&amp;#39;(t_0) &amp;amp; = y&amp;#39;_{0}
\end{split}
\tag{3.1}
\end{equation}\]&lt;/span> pode ser reescrita como
&lt;span class="math display" id="eq:transformacao">\[\begin{equation}
\begin{split}
y&amp;#39; &amp;amp; = y_1 \\
y&amp;#39;&amp;#39; &amp;amp; = y&amp;#39;_{1} = f(y,y_1,t) \\
y(t_0) &amp;amp; = y_{0}\\
y_1(t_0) &amp;amp; = y&amp;#39;_{0}
\end{split}
\tag{3.2}
\end{equation}\]&lt;/span>&lt;/p>
&lt;p>A título de exemplo, pode-se simular o modelo de acelerador de segunda ordem exposto em &lt;span class="citation">&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">Gandolfo&lt;/a> (&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">2005&lt;/a>)&lt;/span>. A EDO do modelo é
&lt;span class="math display" id="eq:acelerador1">\[\begin{equation}
K&amp;#39;&amp;#39; + \beta K&amp;#39;+ \alpha \beta K = \alpha \beta K^*
\tag{3.3}
\end{equation}\]&lt;/span> em que &lt;span class="math inline">\(K\)&lt;/span> é o estoque corrente de capital, &lt;span class="math inline">\(K^*\)&lt;/span> é o estoque desejado de capital, &lt;span class="math inline">\(\beta\)&lt;/span> denota a velocidade de ajuste do investimento real ao investimento desejado. Por fim, &lt;span class="math inline">\(\alpha\)&lt;/span> é a velocidade de ajuste entre o estoque real e o desejado.&lt;/p>
&lt;p>É possível ampliar o sistema com &lt;span class="math inline">\(K^* = kY\)&lt;/span>, em que &lt;span class="math inline">\(k\)&lt;/span> é a relação capital-produto e &lt;span class="math inline">\(Y\)&lt;/span> é o produto da economia. Assim, a equação &lt;a href="#eq:acelerador1">(3.3)&lt;/a> pode ser reescrita, após manipulações algébricas, como
&lt;span class="math display" id="eq:acelerador2">\[\begin{equation}
K&amp;#39;&amp;#39; + \beta \left(1-\frac{\alpha k}{1 - b}\right) K&amp;#39;+ \alpha \beta K = \alpha \beta k\frac{a}{1 - b}
\tag{3.4}
\end{equation}\]&lt;/span> em que os termos &lt;span class="math inline">\(a\)&lt;/span> e &lt;span class="math inline">\(b\)&lt;/span> se referem a uma versão macroeconômica simples de uma função de consumo no formato &lt;span class="math inline">\(C = a + bY\)&lt;/span>.&lt;/p>
&lt;p>A versão em sistema de EDOs de 1&lt;sup>a&lt;/sup> ordem da equação &lt;a href="#eq:acelerador2">(3.4)&lt;/a> pode ser feita considerando &lt;span class="math inline">\(I = K&amp;#39;\)&lt;/span> o investimento e isolando as derivadas no lado esquerdo das equações:
&lt;span class="math display" id="eq:acelerador-sistema">\[\begin{equation}
\begin{split}
K&amp;#39; &amp;amp; = I \\
I&amp;#39; &amp;amp; = -\beta \left(1-\frac{\alpha k}{1 - b}\right) I - \alpha \beta K + \alpha \beta k\frac{a}{1 - b}\\
K(t_0) &amp;amp; = K_{0}\\
K&amp;#39;(t_0) &amp;amp; = I&amp;#39;(t_0) = I_{0}
\end{split}
\tag{3.5}
\end{equation}\]&lt;/span>&lt;/p>
&lt;p>Diante disso, segue-se passos semelhantes à resolução de EDOs de 1&lt;sup>a&lt;/sup> ordem. Em primeiro lugar, cria-se a função, agora com duas equações e duas saídas de dados.&lt;/p>
&lt;pre class="r">&lt;code> ### EDO do Acelerador de 2a ordem
acel_edo &amp;lt;- function(tempo, inicial, parametros){
with(as.list(c(inicial, parametros)),{
# Equações apresentadas em (9)
dK &amp;lt;- I
dI &amp;lt;- -beta*(1-(alfa*k/(1-b)))*I - alfa*beta*K + alfa*beta*k*a/(1-b)
list(c(dK,dI)) # Retorna dois valores
})
}&lt;/code>&lt;/pre>
&lt;p>Em seguida, definem-se os parâmetros e o gráfico para representá-los na Figura &lt;a href="#fig:acelerador">3.1&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code>tempo &amp;lt;- seq(0,200, by = 0.5)
inicial &amp;lt;- c(K = 1, I = 0)
parametros &amp;lt;- c(alfa = 0.05,
beta = 0.25,
a = 2,
b = 0.8,
k = 3)
### Função semelhante à situação de 1a ordem
acel &amp;lt;- ode(y = inicial,
times = tempo,
func = acel_edo,
parms = parametros)
### Gráfico da EDO
plot(x = acel[,&amp;quot;time&amp;quot;],
y = acel[,&amp;quot;K&amp;quot;],
type = &amp;quot;l&amp;quot;,
lwd = 2,
col = &amp;quot;red&amp;quot;,
xlab = &amp;quot;tempo&amp;quot;,
ylab = &amp;quot;K(t)&amp;quot;,
main = TeX(&amp;quot;Acelerador de 2^a ordem&amp;quot;)) # Formato de texto LaTeX
abline(h = 30, # Acrescenta linha tracejada para o equilíbrio
lty = &amp;quot;dashed&amp;quot;) &lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:acelerador">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/acelerador-1.png" alt="Elaboração própria." width="624" />
&lt;p class="caption">
Figure 3.1: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Por fim, note que as EDOs de ordem superiores podem ser resolvidas adotando uma combinação dos procedimentos explicitados acima.&lt;/p>
&lt;div id="equação-com-coeficientes-constantes" class="section level2" number="3.1">
&lt;h2>&lt;span class="header-section-number">3.1&lt;/span> Equação com coeficientes constantes&lt;/h2>
&lt;p>Equações com coeficientes constantes apresentam apenas a equação principal e suas derivadas variáveis no tempo. Um exemplo é a função &lt;span class="math inline">\(y&amp;#39;&amp;#39;(t) + 2y&amp;#39;(t) + y(t) = 0\)&lt;/span>. Sua versão em sistema de EDOs de 1&lt;sup>a&lt;/sup> ordem pode ser feita considerando &lt;span class="math inline">\(y_1(t) = y(t)&amp;#39;\)&lt;/span>, isolando as derivadas no lado esquerdo das equações e adotando uma das soluções canônicas, conforme :
&lt;span class="math display" id="eq:cte">\[\begin{equation}
\begin{split}
y&amp;#39; &amp;amp; = y_1 \\
y_1&amp;#39; &amp;amp; = -2y_1 - y\\
y(0) &amp;amp; = 0\\
y&amp;#39;(0) &amp;amp; = y_1 = 1
\end{split}
\tag{3.6}
\end{equation}\]&lt;/span>&lt;/p>
&lt;p>Diante disso, segue-se passos semelhantes à resolução de EDOs de 1&lt;sup>a&lt;/sup> ordem. Em primeiro lugar, cria-se a função, agora com duas equações e duas saídas de dados. O gráfico está representado na Figura &lt;a href="#fig:constante">3.2&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code> ### EDO de equação de coeficientes constantes
raizes_iguais &amp;lt;- function(t, inicial, parametros){
with(as.list(c(inicial, parametros)),{
### Sistema de Equações representando EDO de 2a ordem
dy &amp;lt;- y1
dy1 &amp;lt;- -2*y1 - y
### Resultados devem ser concatenados em uma lista
list(c(dy,dy1))
})
}
### Tempo máximo reduzido, pois converge rapidamente
tempo &amp;lt;- seq(1, 20, by = 0.1)
### Condições iniciais canônicas
inicial &amp;lt;- c(y = 0, y1 = 1)
### EDO
raizes_iguais_edo &amp;lt;- ode(y = inicial,
times = tempo,
func = raizes_iguais,
parms = NULL) # Equação com parâmetros já definidos&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code> ### Gráfico da EDO com coeficientes constantes
plot(raizes_iguais_edo[,&amp;quot;time&amp;quot;], raizes_iguais_edo[,&amp;quot;y&amp;quot;],
type = &amp;quot;l&amp;quot;,
lwd = 2,
col = &amp;quot;red&amp;quot;,
xlab = &amp;quot;t&amp;quot;,
ylab = &amp;quot;y(t)&amp;quot;,
main = TeX(&amp;quot;$y&amp;#39;&amp;#39;(t) + 2y&amp;#39;(t) + y(t) = 0$&amp;quot;)) # Formato de texto LaTeX&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:constante">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/constante-1.png" alt="Coeficientes Constantes" width="624" />
&lt;p class="caption">
Figure 3.2: Coeficientes Constantes
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="equação-de-laguerre" class="section level2" number="3.2">
&lt;h2>&lt;span class="header-section-number">3.2&lt;/span> Equação de Laguerre&lt;/h2>
&lt;p>A equação de Laguerre tem aplicabilidade na Física quântica e em outras áreas da Matemática e Física. Exemplos de aplicações estão em . Um dos exemplos está na versão do orbital &lt;em>s&lt;/em> de um átomo de hidrogênio em seu menor nível de energia. A equação de Laguerre, nesse caso, é dada por &lt;span class="math inline">\(xy&amp;#39;&amp;#39;(x)+(1-x)y&amp;#39;(x) + y(x) = 0\)&lt;/span>. Sua versão em sistema de EDOs de 1&lt;sup>a&lt;/sup> ordem pode ser feita considerando &lt;span class="math inline">\(y_1(x) = y(x)&amp;#39;\)&lt;/span> e isolando as derivadas no lado esquerdo das equações e adotando uma das soluções canônicas:
&lt;span class="math display" id="eq:laguerre">\[\begin{equation}
\begin{split}
y&amp;#39; &amp;amp; = y_1 \\
y_1&amp;#39; &amp;amp; = \frac{-(1-x)}{x}y_1 - \frac{y}{x}\\
y(x_0) &amp;amp; = 0\\
y&amp;#39;(x_0) &amp;amp; = y_1 = 1
\end{split}
\tag{3.7}
\end{equation}\]&lt;/span>&lt;/p>
&lt;p>Diante disso, segue-se passos semelhantes à resolução de EDOs de 1&lt;sup>a&lt;/sup> ordem. Em primeiro lugar, cria-se a função, agora com duas equações e duas saídas de dados. O gráfico está representado na Figura &lt;a href="#fig:laguerre">3.3&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code> ### EDO de equação de Laguerre
laguerre &amp;lt;- function(x, inicial, parametros){
with(as.list(c(inicial, parametros)),{
# Sistema de Equações representando EDO de 2a ordem
dy &amp;lt;- y1
dy1 &amp;lt;- -(1-x)/x*y1 - y/x
# Resultados devem ser concatenados em uma lista
list(c(dy,dy1))
})
}
x &amp;lt;- seq(1, 50, by = 0.1)
### Condições iniciais canônicas
inicial &amp;lt;- c(y = 0, y1 = 1)
### EDO
laguerre_edo &amp;lt;- ode(y = inicial,
times = x,
func = laguerre,
parms = NULL)&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code> ### Gráfico da EDO de Laguerre
plot(laguerre_edo[,&amp;quot;time&amp;quot;], laguerre_edo[,&amp;quot;y&amp;quot;],
type = &amp;quot;l&amp;quot;,
lwd = 2,
col = &amp;quot;green&amp;quot;,
xlab = &amp;quot;x&amp;quot;,
ylab = &amp;quot;y(x)&amp;quot;,
main = TeX(&amp;quot;$xy&amp;#39;&amp;#39;(x) + (1-x)y&amp;#39;(x) + y(x) = 0$&amp;quot;)) # Formato de texto LaTeX&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:laguerre">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/laguerre-1.png" alt="Equação de Laguerre" width="624" />
&lt;p class="caption">
Figure 3.3: Equação de Laguerre
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="equação-de-euler" class="section level2" number="3.3">
&lt;h2>&lt;span class="header-section-number">3.3&lt;/span> Equação de Euler&lt;/h2>
&lt;p>Um exemplo da chamada ``equação de Euler" é dado pela função &lt;span class="math inline">\(t^2y&amp;#39;&amp;#39;(t) + 2ty&amp;#39;(t) - 2y(t) = t^5\)&lt;/span>, conforme . Sua versão em sistema de EDOs de 1&lt;sup>a&lt;/sup> ordem pode ser feita considerando &lt;span class="math inline">\(y_1(t) = y(t)&amp;#39;\)&lt;/span> e isolando as derivadas no lado esquerdo das equações e adotando uma das soluções canônicas, conforme:
&lt;span class="math display" id="eq:euler">\[\begin{equation}
\begin{split}
y&amp;#39; &amp;amp; = y_1 \\
y_1&amp;#39; &amp;amp; = \frac{-2y_1}{t} + \frac{2y}{t^2} + t^3\\
y(0) &amp;amp; = 1\\
y&amp;#39;(0) &amp;amp; = y_1 = 0
\end{split}
\tag{3.8}
\end{equation}\]&lt;/span>&lt;/p>
&lt;p>Diante disso, segue-se passos semelhantes à resolução de EDOs de 1&lt;sup>a&lt;/sup> ordem. Em primeiro lugar, cria-se a função, agora com duas equações e duas saídas de dados. O gráfico está representado na Figura &lt;a href="#fig:euler">3.4&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code> ### EDO de equação de Euler
euler &amp;lt;- function(t, inicial, parametros){
with(as.list(c(inicial, parametros)),{
# Sistema de Equações representando EDO de 2a ordem
dy &amp;lt;- y1
dy1 &amp;lt;- -2/t*y1 + 2*y/t**2 + t**3
# Resultados devem ser concatenados em uma lista
list(c(dy,dy1))
})
}
tempo &amp;lt;- seq(1,10, by = 0.2)
### Condições iniciais canônicas
inicial &amp;lt;- c(y = 1, y1 = 0)
### EDO
euler_edo &amp;lt;- ode(y = inicial,
times = tempo,
func = euler,
parms = NULL)&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code> ### Gráfico da EDO com coeficientes constantes
plot(euler_edo[,&amp;quot;time&amp;quot;],euler_edo[,&amp;quot;y&amp;quot;],
type = &amp;quot;l&amp;quot;,
lwd = 2,
col = &amp;quot;blue&amp;quot;,
xlab = &amp;quot;t&amp;quot;,
ylab = &amp;quot;y(t)&amp;quot;,
main = TeX(&amp;quot;$t^2y&amp;#39;&amp;#39;(t) + 2ty&amp;#39;(t) - 2y(t) = t^5$ &amp;quot;)) # Formato de texto LaTeX&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:euler">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/euler-1.png" alt="Equação de Euler" width="624" />
&lt;p class="caption">
Figure 3.4: Equação de Euler
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div id="simultaneas" class="section level1" number="4">
&lt;h1>&lt;span class="header-section-number">4&lt;/span> Equações diferenciais simultâneas&lt;/h1>
&lt;p>O caso de um sistema com duas EDOs de 1&lt;sup>a&lt;/sup> ordem pode ser resolvido de maneira semelhante ao modelo de 2&lt;sup>a&lt;/sup> ordem apresentado na seção &lt;a href="#edo2">3&lt;/a>. Portanto, aqui será apresentada uma solução numérica para um sistema de três EDOs simultâneas trabalhado por &lt;span class="citation">&lt;a href="#ref-Ma2012" role="doc-biblioref">Ma and Bangura&lt;/a> (&lt;a href="#ref-Ma2012" role="doc-biblioref">2012&lt;/a>)&lt;/span>. Trata-se de um sistema econômico e financeiro que combina taxa de juro, de investimento e de inflação. Os detalhes do modelo devem ser avaliados no artigo original.&lt;/p>
&lt;p>O sistema fincaneiro (caótico) representado no modelo é tal que:
&lt;span class="math display" id="eq:financeiro">\[\begin{equation}
\begin{split}
\dot{x} &amp;amp; = z + (y - a)x \\
\dot{y} &amp;amp; = 1 - by - x^2 \\
\dot{z} &amp;amp; = -x + cz
\end{split}
\tag{4.1}
\end{equation}\]&lt;/span> em que &lt;span class="math inline">\(x\)&lt;/span> expressa a taxa de juro, &lt;span class="math inline">\(y\)&lt;/span> representa a demanda por investimento e &lt;span class="math inline">\(z\)&lt;/span>, o índice de preços. Ademais, &lt;span class="math inline">\(a \geq 0\)&lt;/span> é o volume de poupança, &lt;span class="math inline">\(b \geq 0\)&lt;/span> é o custo unitário do investimento e &lt;span class="math inline">\(c \geq 0\)&lt;/span> é a elasticidade da demanda por bens.&lt;/p>
&lt;p>Para a simulação numérica, usam-se os seguintes valores iniciais e parâmetros sugeridos pelos autores: &lt;span class="math inline">\(x_0 = 0.03\)&lt;/span>, &lt;span class="math inline">\(y_0 = 0.15\)&lt;/span>, &lt;span class="math inline">\(z_0 = 0.25\)&lt;/span>, &lt;span class="math inline">\(a = 5\)&lt;/span>, &lt;span class="math inline">\(b = 0.15\)&lt;/span> e &lt;span class="math inline">\(c = 0\)&lt;/span>. Com isso, a função é formada por:&lt;/p>
&lt;pre class="r">&lt;code> ### EDO do sistema financeiro caótico
financial_edo &amp;lt;- function(tempo, inicial, parametros) {
with(as.list(c(inicial,parametros)),{
dx &amp;lt;- z+(y - a)*x
dy &amp;lt;- 1 - b*y - x^2
dz &amp;lt;- -x - c*z
list(c(dx,dy,dz))
})
}&lt;/code>&lt;/pre>
&lt;p>O modelo pode com as três variáveis ser simulado na Figura &lt;a href="#fig:financial">4.1&lt;/a> por meio do pacote &lt;strong>scatterplot3d&lt;/strong>.&lt;/p>
&lt;pre class="r">&lt;code>tempo &amp;lt;- seq(0,100,by = .01)
inicial &amp;lt;- c(x = .03,
y = .15,
z = .25)
parametros &amp;lt;- c(a = 5,
b = .15,
c = .8)
### EDO
financial &amp;lt;- ode(y = inicial,
times = tempo,
func = financial_edo,
parms = parametros)
### Gráfico 3D de todo o sistema
scatterplot3d(financial[,-1], # Exclui a coluna tempo para que apenas
type = &amp;quot;l&amp;quot;, # as variáveis sejam representadas
lwd = 3,
xlab = &amp;quot;juro&amp;quot;,
ylab = &amp;quot;investimento&amp;quot;,
zlab = &amp;quot;preços&amp;quot;)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:financial">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/financial-1.png" alt="Elaboração própria." width="624" />
&lt;p class="caption">
Figure 4.1: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>A partir da resolução de todo o sistema, pode-se avaliar apenas a relação entre duas variáveis como na Figura &lt;a href="#fig:juro">4.2&lt;/a>:&lt;/p>
&lt;pre class="r">&lt;code> ### Relação entre juro e demanda por investimento
plot(x = financial[,&amp;quot;x&amp;quot;],
y = financial[,&amp;quot;y&amp;quot;],
type = &amp;quot;l&amp;quot;,
lwd = 3,
xlab = &amp;quot;juro&amp;quot;,
ylab = &amp;quot;investimento&amp;quot;)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:juro">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/juro-1.png" alt="Elaboração própria." width="624" />
&lt;p class="caption">
Figure 4.2: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>A relação entre inflação e juro está na Figura &lt;a href="#fig:inflacaojuro">4.3&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code> # Relação entre juro e preço
matplot(x = financial[,&amp;quot;time&amp;quot;],
y = financial[,c(&amp;quot;x&amp;quot;,&amp;quot;z&amp;quot;)],
type = &amp;quot;l&amp;quot;,
lwd = 3,
xlab = &amp;quot;tempo&amp;quot;,
ylab = &amp;quot;&amp;quot;) # Exclui o título do eixo y
### Legenda
legend(&amp;quot;bottomleft&amp;quot;, # Local no gráfico
c(&amp;quot;juro&amp;quot;, &amp;quot;preços&amp;quot;), # Conteúdo da Legenda
col = 1:2, # Cores preto (1) e vermelho (2)
lty = 1:2) # Linha contínua (1) e tracejada (2)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:inflacaojuro">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/inflacaojuro-1.png" alt="Elaboração própria." width="624" />
&lt;p class="caption">
Figure 4.3: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="análise-de-estabilidade" class="section level1" number="5">
&lt;h1>&lt;span class="header-section-number">5&lt;/span> Análise de estabilidade&lt;/h1>
&lt;p>A análise de estabilidade com o pacote &lt;strong>phaseR&lt;/strong> apresenta, de maneira gráfica, um diagrama de fase de uma EDO ou sistema de EDOs de modo a avaliar trajetórias iniciais distintas ou consequências de perturbações no modelo dinâmico.&lt;/p>
&lt;p>Este pacote depende de uma função que represente a EDO a partir da estrutura &lt;strong>deSolve&lt;/strong>, vista nas seções anteriores. Os nomes dos parâmetros até agora foram adotados para que ficassem mais intuitivos. Entretanto, para o retrato de fase, os nomes dos parâmetros que aparecem na função da EDO devem ser os mesmos aceitos pelo próprio pacote &lt;strong>deSolve&lt;/strong> conforme:&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>O tempo deve ser representado pela letra &lt;strong>t&lt;/strong>;&lt;/li>
&lt;li>Os valores iniciais devem estar contidos num vetor &lt;strong>y&lt;/strong>; e&lt;/li>
&lt;li>Os parâmetros, indicados em um vetor &lt;strong>parameters&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;div id="estabilidade-de-edo-de-1a-ordem" class="section level2" number="5.1">
&lt;h2>&lt;span class="header-section-number">5.1&lt;/span> Estabilidade de EDO de 1&lt;sup>a&lt;/sup> ordem&lt;/h2>
&lt;p>Como primeiro exemplo, tem-se a análise do modelo de Solow, apresentado na seção &lt;a href="#solow">2&lt;/a>. Reorganizando os nomes da função e dos parâmetros, os comandos são:&lt;/p>
&lt;pre class="r">&lt;code> ### EDO com os nomes padrão dos parâmetros
solow_edo &amp;lt;- function(t,y,parameters){
with(as.list(c(y,parameters)),{
r = y # Adaptação da notação do modelo
dr = s*r^alpha - n*r
list(dr)
})
}
t &amp;lt;- seq(0,300,1)
y &amp;lt;- c(r = 1)
parameters &amp;lt;- c(s= 0.1, alpha = 0.35, n=0.05)&lt;/code>&lt;/pre>
&lt;p>Após os ajustes na nomenclatura, é possível acrescentar o campo de fluxos (ou de velocidades) com a função &lt;em>flowField&lt;/em>(). Ademais, pode-se simular algumas trajetórias com a função &lt;em>trajectory&lt;/em>() a partir de pontos iniciais distintos conforme a Figura &lt;a href="#fig:fase">5.1&lt;/a>. O gráfico base deve conter o ajuste “&lt;em>add = FALSE&lt;/em>.” Caso contrário, será adicionado a outro gráfico pré-existente, gerando problemas de configuração.&lt;/p>
&lt;pre class="r">&lt;code> ### Gráfico com o campo de fluxos
flowField(solow_edo, # EDO
xlim = c(0,300), # Limite para o eixo do tempo
ylim = c(0,4.1), # Limite para a variável em análise
system = &amp;quot;one.dim&amp;quot;, # Apenas uma variável contra o tempo
parameters = parameters, # Vetor numérico
add = FALSE, # Se TRUE, adiciona campo a um gráfico anterior
points = 15, # Densidade de setas (default = 21)
xlab = &amp;quot;tempo&amp;quot;,
ylab = &amp;quot;r(t)&amp;quot;,
main = &amp;quot;Estabilidade do Modelo de Solow&amp;quot;)
### Desenho das trajetórias a partir de condições iniciais
trajectory(solow_edo,
y0 = c(0, 0.5, 1.5, 2.5, 3, 3.5, 4), # diferentes pontos iniciais
tlim = c(0, 300),
system = &amp;quot;one.dim&amp;quot;,
parameters = parameters,
col = &amp;quot;blue&amp;quot;)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:fase">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/fase-1.png" alt="Elaboração própria." width="624" />
&lt;p class="caption">
Figure 5.1: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;div id="retrato-de-fase" class="section level3" number="5.1.1">
&lt;h3>&lt;span class="header-section-number">5.1.1&lt;/span> Retrato de fase&lt;/h3>
&lt;p>Pode-se também fazer o retrado de fase como na Figura &lt;a href="#fig:retrato">5.2&lt;/a>, em que a variável em nível está representada no eixo horizontal e sua derivada no eixo vertical. Com isso, visualiza-se pontos de equilíbrio e suas estabilidades.&lt;/p>
&lt;pre class="r">&lt;code> ### Retrato de fase
phasePortrait(solow_edo,
ylim = c(0, 4), # Limite da variável dependente
system = &amp;quot;one.dim&amp;quot;,
parameters = parameters,
col = &amp;quot;red&amp;quot;,
xlab = &amp;quot;r(t)&amp;quot;,
ylab = TeX(&amp;quot;\\dot{r}(t)&amp;quot;),
main = &amp;quot;Retrato de Fase do Modelo de Solow&amp;quot;)&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:retrato">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/retrato-1.png" alt="Elaboração própria." width="624" />
&lt;p class="caption">
Figure 5.2: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div id="estabilidade-de-sistema-de-duas-edos-de-1a-ordem---equilíbrio-dinâmico" class="section level2" number="5.2">
&lt;h2>&lt;span class="header-section-number">5.2&lt;/span> Estabilidade de sistema de duas EDOs de 1&lt;sup>a&lt;/sup> ordem - equilíbrio dinâmico&lt;/h2>
&lt;p>Procedimentos semelhantes podem ser adotados para um sistema com duas equações. Para um exemplo de sistema homogêneo de EDOs cujo equilíbrio é estável, utiliza-se exemplo sugerido por &lt;span class="citation">&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">Gandolfo&lt;/a> (&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">2005&lt;/a>)&lt;/span> no capítulo 18 (exercício 3), cuja esturutra é:
&lt;span class="math display" id="eq:gandolfo18">\[\begin{equation}
\begin{split}
\dot{x} &amp;amp; = -2x + 4y \\
\dot{y} &amp;amp; = -x + y
\end{split}
\tag{5.1}
\end{equation}\]&lt;/span>
Além das informações disponíveis para o caso de uma variável (dimensão) apresentado acima, é possível desenhar as isolinhas nulas, que representam o formato geométrico onde a derivada de uma função é zero. Elas podem ser elaboradas com a função &lt;em>nullclines&lt;/em>(). Note que, agora, os valores iniciais para a trajetória devem ser oferecidos em formato de matriz, representando os pares ordenados. O resultado pode ser visto na Figura &lt;a href="#fig:estavel">5.3&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code> ### EDO do sistema
gandolfo_edo_estavel &amp;lt;- function(t,y,parameters){
x &amp;lt;- y[1] # Valores iniciais em formato de vetor
y &amp;lt;- y[2] # e precisam ser renomeados
dx &amp;lt;- -x-y
dy &amp;lt;- 5*x-3*y
list(c(dx,dy))
}
### Gráfico com o campo de fluxos
flowField(gandolfo_edo_estavel,
xlim = c(-5,5), # Limite da primeira variável
ylim = c(-5,5), # Limite da primeira variável
add = FALSE,
points = 15)
### Isolhinhas nulas
nullclines(gandolfo_edo_estavel, # EDO
xlim = c(-5,5), # Limites compatíveis com o campo de fluxos
ylim = c(-5,5))
### Matriz com as condições iniciais
y0 &amp;lt;- matrix(c(0,3, # Pares ordenaos para y0
0,-3,
-5,0,
4,-1),
ncol = 2,
byrow = TRUE) # Insere os dados numa matriz a partir das linhas
### Desenho das trajetórias a partir de condições iniciais
trajectory(gandolfo_edo_estavel,
y0 = y0,
tlim = c(-5, 5))&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:estavel">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/estavel-1.png" alt="Elaboração própria." width="624" />
&lt;p class="caption">
Figure 5.3: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;pre class="r">&lt;code> ### Matriz com as condições iniciais
y0&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## [,1] [,2]
## [1,] 0 3
## [2,] 0 -3
## [3,] -5 0
## [4,] 4 -1&lt;/code>&lt;/pre>
&lt;/div>
&lt;div id="estabilidade-de-sistema-de-duas-edos-de-1a-ordem---ponto-de-sela" class="section level2" number="5.3">
&lt;h2>&lt;span class="header-section-number">5.3&lt;/span> Estabilidade de sistema de duas EDOs de 1&lt;sup>a&lt;/sup> ordem - ponto de sela&lt;/h2>
&lt;p>Para um exemplo de sistema de EDOs cujo equilíbrio é caracterizado por uma trajetória de sela, pode-se adotar o sistema homogêneo sugerido por &lt;span class="citation">&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">Gandolfo&lt;/a> (&lt;a href="#ref-Gandolfo2005" role="doc-biblioref">2005&lt;/a>)&lt;/span> no capítulo 18 ( exercício 1) cuja esturutra é:
&lt;span class="math display" id="eq:gandolfo18-2">\[\begin{equation}
\begin{split}
\dot{x} &amp;amp; = -2x + 4y \\
\dot{y} &amp;amp; = -x + y
\end{split}
\tag{5.2}
\end{equation}\]&lt;/span>
É possível perceber que se trata de uma trajetória de sela, cujas trajetórias estáveis e instáveis podem ser elaboradas com a função &lt;em>drawManifolds&lt;/em>(). O resultado pode ser visto na Figura &lt;a href="#fig:sela">5.4&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code> ### EDO
gandolfo_edo &amp;lt;- function(t,y,parameters){
x &amp;lt;- y[1] # Valores iniciais em formato de vetor
y &amp;lt;- y[2] # e precisam ser renomeados
dx &amp;lt;- -2*x-4*y
dy &amp;lt;- -x+y
list(c(dx,dy))
}
### Campo de fluxos
flowField(gandolfo_edo,
xlim = c(-5,5),
ylim = c(-5,5),
add = FALSE,
points = 15)
### Isolinhas
nullclines(gandolfo_edo,
xlim = c(-5,5),
ylim = c(-5,5))
### Trajetórias de sela (instável e estável)
drawManifolds(gandolfo_edo,
y0 = c(0, 0))
### Matriz de choques iniciais
y0 &amp;lt;- matrix(c(0,3,
0,-3,
-5,0,
4,-1),
ncol = 2,
byrow = TRUE)
### Trajetórias de choques
trajectory(gandolfo_edo,
y0 = y0,
tlim = c(-5, 5))&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:sela">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/edos/index.en_files/figure-html/sela-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 5.4: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>Em linhas gerais, essas são as informações mais comuns na análise de sistemas dinâmicos no campo da Economia. Funções e tratamentos adicionais podem ser avaliados nos itens referenciados abaixo.&lt;/p>
&lt;/div>
&lt;/div>
&lt;div id="referências" class="section level1 unnumbered">
&lt;h1>Referências&lt;/h1>
&lt;div id="refs" class="references csl-bib-body hanging-indent">
&lt;div id="ref-Gandolfo2005" class="csl-entry">
Gandolfo, Giancarlo. 2005. &lt;em>&lt;span>Economic Dynamics&lt;/span>&lt;/em>. Study. New York - USA: Springer US.
&lt;/div>
&lt;div id="ref-Ma2012" class="csl-entry">
Ma, Junhai, and Hamza I. Bangura. 2012. &lt;span>“&lt;span class="nocase">Complexity analysis research of financial and economic system under the condition of three parameters’ change circumstances&lt;/span>.”&lt;/span> &lt;em>Nonlinear Dynamics&lt;/em> 70 (4): 2313–26. &lt;a href="https://doi.org/10.1007/s11071-012-0336-z">https://doi.org/10.1007/s11071-012-0336-z&lt;/a>.
&lt;/div>
&lt;div id="ref-Seco2018" class="csl-entry">
Seco, Lucas, and Mauro Patrão. 2018. &lt;em>&lt;span class="nocase">Equa&lt;span class="nocase">ç&lt;/span>&lt;span class="nocase">õ&lt;/span>es diferenciais ordin&lt;span class="nocase">á&lt;/span>rias e s&lt;span class="nocase">é&lt;/span>ries de pot&lt;span class="nocase">ê&lt;/span>ncias&lt;/span>&lt;/em>. Bras&lt;span>í&lt;/span>lia - BRA: Editora Universidade de Bras&lt;span>í&lt;/span>lia.
&lt;/div>
&lt;div id="ref-Soetaert2012" class="csl-entry">
Soetaert, Karline, Jeff Cash, and Francesca Mazzia. 2012. &lt;em>&lt;span class="nocase">Use R ! Solving Differential Equations in R-Springer&lt;/span>&lt;/em>. Verlag Berlin Heidelberg: Springer.
&lt;/div>
&lt;div id="ref-Soetaert2010" class="csl-entry">
Soetaert, Karline, Thomas Petzoldt, and R. Woodrow Setzer. 2010. &lt;span>“&lt;span class="nocase">Solving differential equations in R: Package deSolve&lt;/span>.”&lt;/span> &lt;em>Journal of Statistical Software&lt;/em> 33 (9): 1–25. &lt;a href="https://doi.org/10.18637/jss.v033.i09">https://doi.org/10.18637/jss.v033.i09&lt;/a>.
&lt;/div>
&lt;div id="ref-Solow1956" class="csl-entry">
Solow, Robert M. 1956. &lt;span>“&lt;span class="nocase">A Contribution to the Theory of Economic Growth&lt;/span>.”&lt;/span> &lt;em>The Quaterly Journal of Economics&lt;/em> 70 (1): 65–95. &lt;a href="http://piketty.pse.ens.fr/files/Solow1956.pdf">http://piketty.pse.ens.fr/files/Solow1956.pdf&lt;/a>.
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="footnotes">
&lt;hr />
&lt;ol>
&lt;li id="fn1">&lt;p>Doutorando em Economia pela Universidade de Brasília. Pode ser contatado em &lt;a href="mailto:rafaeldeacyprestemr@gmail.com">rafaeldeacyprestemr@gmail.com&lt;/a>.&lt;a href="#fnref1" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn2">&lt;p>Doutor em Economia pela Universidade de Brasília. Pode ser contatado em &lt;a href="mailto:theosantunes@gmail.com">theosantunes@gmail.com&lt;/a>.&lt;a href="#fnref2" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn3">&lt;p>Professor Adjunto do Instituto de Economia e Relações Internacionais da Universidade Federal de Uberlândia (UFU)&lt;a href="#fnref3" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn4">&lt;p> Alguns exemplos de representação gráfica podem ser vistos com a função &lt;em>example(deSolve)&lt;/em>.&lt;a href="#fnref4" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn5">&lt;p> Para ver exemplos da função, clique &lt;a href="https://statisticsglobe.com/r-with-within-function-example#:~:text=Definition%20of%20with%20%26%20within%3A,AND%20modifies%20the%20original%20data.">aqui&lt;/a>.&lt;a href="#fnref5" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn6">&lt;p>O tempo demandado para a análise pode ser medido com as seguintes funções concatenadas: &lt;strong>print(system.time(&amp;lt;código da função ode&amp;gt;))&lt;/strong>.&lt;a href="#fnref6" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn7">&lt;p>Os detalhes do modelo podem ser consultados, pelo leitor, no artigo original e os artigos que o discutiram posteriormente.&lt;a href="#fnref7" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn8">&lt;p>Esta é a operação padrão na própria função &lt;strong>ode()&lt;/strong>.&lt;a href="#fnref8" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn9">&lt;p>Esta função desenha mais de uma coluna de uma matriz ao mesmo tempo. Com a função &lt;strong>plot()&lt;/strong>, seriam necessários dois comandos.&lt;a href="#fnref9" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn10">&lt;p>Para mais detalhes, ver &lt;span class="citation">&lt;a href="#ref-Soetaert2012" role="doc-biblioref">Soetaert, Cash, and Mazzia&lt;/a> (&lt;a href="#ref-Soetaert2012" role="doc-biblioref">2012&lt;/a>)&lt;/span>.&lt;a href="#fnref10" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>Resoluções de equações lineares e eliminação gaussiana</title><link>https://rafaeldeacypreste.netlify.app/r-projetos/alinear-basica/</link><pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate><guid>https://rafaeldeacypreste.netlify.app/r-projetos/alinear-basica/</guid><description>
&lt;script src="https://rafaeldeacypreste.netlify.app/r-projetos/alinear-basica/index.en_files/header-attrs/header-attrs.js">&lt;/script>
&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#sistema-de-equações-lineares">Sistema de equações lineares&lt;/a>&lt;/li>
&lt;li>&lt;a href="#referências">Referências&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>
&lt;div id="sistema-de-equações-lineares" class="section level1">
&lt;h1>Sistema de equações lineares&lt;/h1>
&lt;p>Um dos pacotes para a solução de sistemas de equações lineares é o &lt;a href="https://cran.r-project.org/web/packages/matlib/matlib.pdf">&lt;strong>matlib&lt;/strong>&lt;/a>, que é bastante útil para o estudo de Álgebra Linear e estatísticas multivariadas. O pacote precisa ser instalado antes do primeiro uso. Após, basta carregar com a função &lt;em>library&lt;/em>()&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>.&lt;/p>
&lt;pre class="r">&lt;code># install.packages(&amp;quot;matlib&amp;quot;)
library(matlib)&lt;/code>&lt;/pre>
&lt;p>O objetivo desta nota é apresentar, por meio de exemplos baseados no livro de &lt;span class="citation">&lt;a href="#ref-Boldrini1980" role="doc-biblioref">Boldrini et al.&lt;/a> (&lt;a href="#ref-Boldrini1980" role="doc-biblioref">1980&lt;/a>)&lt;/span>, algumas das funcionalidades do pacote. Um possível sistema com duas equações é dado por:&lt;/p>
&lt;pre class="r">&lt;code>A &amp;lt;- matrix(c(2,-7,1,4,−1,-10,-5,16), nrow= 4, ncol = 2)
b &amp;lt;- matrix(c(3,-12,1,8),ncol = 1)
showEqn(A,b) # Mostra a estrutura do sistema de equações&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## 2*x1 - 1*x2 = 3
## -7*x1 - 10*x2 = -12
## 1*x1 - 5*x2 = 1
## 4*x1 + 16*x2 = 8&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code>plotEqn(A,b) # Desenha as retas num gráfico com duas variáveis&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## 2*x[1] - 1*x[2] = 3
## -7*x[1] - 10*x[2] = -12
## x[1] - 5*x[2] = 1
## 4*x[1] + 16*x[2] = 8&lt;/code>&lt;/pre>
&lt;div class="figure">&lt;span id="fig:SEL">&lt;/span>
&lt;img src="https://rafaeldeacypreste.netlify.app/r-projetos/alinear-basica/index.en_files/figure-html/SEL-1.png" alt="Elaboração própria." width="672" />
&lt;p class="caption">
Figure 1: Elaboração própria.
&lt;/p>
&lt;/div>
&lt;p>A partir da Figura &lt;a href="#fig:SEL">1&lt;/a>, pode-se perceber que há duas equações que são combinações lineares das demais.&lt;/p>
&lt;p>Também é possível elaborar um sistema com três variáveis, resolver e fazer sua representação gráfica&lt;a href="#fn2" class="footnote-ref" id="fnref2">&lt;sup>2&lt;/sup>&lt;/a>:&lt;/p>
&lt;pre class="r">&lt;code>A &amp;lt;- matrix(c(1,2,1,4,5,-3,3,4,-2), ncol = 3)
b &amp;lt;- c(1,4,5)
showEqn(A,b) # Mostra a estrutura do sistema de equações&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## 1*x1 + 4*x2 + 3*x3 = 1
## 2*x1 + 5*x2 + 4*x3 = 4
## 1*x1 - 3*x2 - 2*x3 = 5&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code>ampliada &amp;lt;- cbind(A,b) # Matriz ampliada do sistema
echelon(ampliada,verbose = T,fractions = T) # Resolve por eliminação gaussiana&lt;/code>&lt;/pre>
&lt;pre>&lt;code>##
## Initial matrix:
## b
## [1,] 1 4 3 1
## [2,] 2 5 4 4
## [3,] 1 -3 -2 5
##
## row: 1
##
## exchange rows 1 and 2
## b
## [1,] 2 5 4 4
## [2,] 1 4 3 1
## [3,] 1 -3 -2 5
##
## multiply row 1 by 1/2
## b
## [1,] 1 5/2 2 2
## [2,] 1 4 3 1
## [3,] 1 -3 -2 5
##
## subtract row 1 from row 2
## b
## [1,] 1 5/2 2 2
## [2,] 0 3/2 1 -1
## [3,] 1 -3 -2 5
##
## subtract row 1 from row 3
## b
## [1,] 1 5/2 2 2
## [2,] 0 3/2 1 -1
## [3,] 0 -11/2 -4 3
##
## row: 2
##
## exchange rows 2 and 3
## b
## [1,] 1 5/2 2 2
## [2,] 0 -11/2 -4 3
## [3,] 0 3/2 1 -1
##
## multiply row 2 by -2/11
## b
## [1,] 1 5/2 2 2
## [2,] 0 1 8/11 -6/11
## [3,] 0 3/2 1 -1
##
## multiply row 2 by 5/2 and subtract from row 1
## b
## [1,] 1 0 2/11 37/11
## [2,] 0 1 8/11 -6/11
## [3,] 0 3/2 1 -1
##
## multiply row 2 by 3/2 and subtract from row 3
## b
## [1,] 1 0 2/11 37/11
## [2,] 0 1 8/11 -6/11
## [3,] 0 0 -1/11 -2/11
##
## row: 3
##
## multiply row 3 by -11
## b
## [1,] 1 0 2/11 37/11
## [2,] 0 1 8/11 -6/11
## [3,] 0 0 1 2
##
## multiply row 3 by 2/11 and subtract from row 1
## b
## [1,] 1 0 0 3
## [2,] 0 1 8/11 -6/11
## [3,] 0 0 1 2
##
## multiply row 3 by 8/11 and subtract from row 2
## b
## [1,] 1 0 0 3
## [2,] 0 1 0 -2
## [3,] 0 0 1 2&lt;/code>&lt;/pre>
&lt;pre class="r">&lt;code>plotEqn3d(A,b) # Desenha as retas num gráfico em três dimensões numa popup&lt;/code>&lt;/pre>
&lt;p>Outra forma de resolver o sistema se dá com o comando &lt;strong>solve&lt;/strong>, desde que o sistema seja possível e determinado:&lt;/p>
&lt;pre class="r">&lt;code>A &amp;lt;- matrix(c(1,2,1,4,5,-3,3,4,-2), ncol = 3)
b &amp;lt;- c(1,4,5)
solve(A,b)&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## [1] 3 -2 2&lt;/code>&lt;/pre>
&lt;p>Este pequeno resumo pode ajudar na resolução de sistemas simples ligados à álgebra linear, auxiliando no aprendizado e na resolução de exercícios.&lt;/p>
&lt;/div>
&lt;div id="referências" class="section level1 unnumbered">
&lt;h1>Referências&lt;/h1>
&lt;div id="refs" class="references csl-bib-body hanging-indent">
&lt;div id="ref-Boldrini1980" class="csl-entry">
Boldrini, José Luiz, Sueli I. Rodrigues Costa, Vera Lúcia Figueiredo, and Henri G. Wetzler. 1980. &lt;em>&lt;span>Algebra Linear&lt;/span>&lt;/em>. 3a ed. S&lt;span>ã&lt;/span>o Paulo - BRA: Harper &lt;span>&amp;amp;&lt;/span> Row do Bra.
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="footnotes">
&lt;hr />
&lt;ol>
&lt;li id="fn1">&lt;p>Para acessar detalhes das funções do pacote, basta digitar &lt;em>?nome da função&lt;/em>. Na aba ajuda, aparecerão informações da função e, normalmente, algumas aplicações&lt;a href="#fnref1" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;li id="fn2">&lt;p>A representação gráfica é mostrada apenas em &lt;em>pop-up&lt;/em> quando o código é rodado no &lt;strong>R&lt;/strong>. O leitor pode copiar os códigos desta nota e rodar em sua própria máquina para verivicar o resultado.&lt;a href="#fnref2" class="footnote-back">↩︎&lt;/a>&lt;/p>&lt;/li>
&lt;/ol>
&lt;/div></description></item></channel></rss>