Conhecer e utilizar a linguagem R em análises de dados, a fim de propiciar a compreensão das relações entre variáveis, extrair valor, comunicar e subsidiar a tomada de decisão.
Muito está disponível em livros, e-books e online, gratuitamente - Comece pelo Big Book of R. A comunidade de usuários de R é extensa.
Uma lista (com exemplos de uso) das funções mais populares e úteis disponíveis no R pode ser encontrada aqui.
Podemos iniciar diretamente na fonte, no sítio disponibilizado pelo pessoal que criou e mantem o R.
A análise exploratória de dados é uma abordagem da análise de conjuntos de dados de modo a resumir suas características principais, frequentemente com métodos visuais.
A forma como analisamos os dados mudou dramaticamente nos últimos anos. Com a popularização do emprego da internet, o grande volume de dados que temos disponíveis cresceu enormemente. As empresas têm terabytes de dados sobre os consumidores que interagem com instituições de pesquisa governamentais, acadêmicas e comerciais. Obter dados, bem como o seu armazenamento, se tornou uma indústria em si. Ao mesmo tempo, apresentar as informações de maneira facilmente acessível e digestível se tornou cada vez mais desafiador.
A ciência da análise de dados acompanhou o ritmo dessa explosão de dados. Antes dos computadores pessoais e na internet, novos métodos estatísticos foram desenvolvidos por pesquisadores e acadêmicos que publicaram seus resultados como trabalhos teóricos em revistas profissionais. Poderia levar anos para que esses métodos fossem adaptados pelos programadores e incorporados ao os pacotes estatísticos amplamente disponíveis para analistas de dados.
Hoje, novas metodologias aparecem diariamente. Os pesquisadores publicam métodos novos e aprimorados, juntamente com o código para produzi-los, em sites facilmente acessíveis.
Resumindo, a análise exploratória de dados se refere a um conjunto de ferramentas estatísticas e gráficas para modelagem e compreensão de conjuntos de dados complexos a fim de extrair valor e subsidiar a tomada de decisão. É uma área recentemente desenvolvida em estatística e combina com desenvolvimentos paralelos em ciência da computação e inteligência artificial. Com a explosão dos problemas do “Big Data”, o aprendizado estatístico tornou-se um campo extremamente importante nas áreas científicas, além de marketing, finanças e outras disciplinas de negócios.
Hal Varian, economista-chefe do Google, em entrevista a McKinsey Quarterly Review - 2009, declarou:
“A capacidade de coletar dados - para entendê-los, processá-los, extrair valor deles, visualizá-los e comunicar será uma habilidade extremamente importante nas próximas décadas, não apenas no nível profissional, mas também no nível educacional para crianças do ensino fundamental, do ensino médio e do ensino superior. Porque agora realmente temos dados essencialmente gratuitos e onipresentes. Portanto, o fator escasso complementar é a capacidade de entender esses dados e extrair valor deles. Eu acho que os estatísticos fazem parte disso, mas é apenas uma parte. Você também deseja poder visualizar a data, comunicar a data e usá-la efetivamente. Mas acho que essas habilidades - poder acessar, entender e comunicar os insights obtidos com a análise de dados - serão extremamente importantes. Os gerentes precisam ser capazes de acessar e entender os próprios dados.”
Como vimos, na era digital a informação é abundante e acessível. Desde o preço altamente variável dos contratos financeiros até os dados não estruturados dos sítios de mídia social, o alto volume de informações cria uma forte necessidade de análise de dados no local de trabalho. Uma empresa ou organização se beneficia imensamente quando pode criar uma ponte entre informações brutas de seu ambiente e tomar decisões estratégicas. Sem dúvida, este é um momento prolífico para profissionais capacitados em usar as ferramentas certas para aquisição, armazenamento e análise de dados.
Os dados relacionados a Economia e Finanças estão amplamente disponíveis ao público. Instituições internacionais e locais, como Bancos Centrais, agências governamentais de pesquisa, bolsa de valores, e muitas outras, fornecem seus dados publicamente, seja por obrigação legal ou para fomentar pesquisas. Se você está olhando para estatísticas para um determinado país ou uma empresa, a maioria das informações está a apenas dois cliques de distância. Ao analisar essas informações de forma eficiente e fácil, você poderá oferecer insights valiosos à sua equipe.
Não surpreende, portanto, que em profissões com acesso abundante a dados e aplicações práticas, como economia e finanças, espere-se que um estudante de pós-graduação ou um analista de dados tenha aprendido pelo menos uma linguagem de programação que lhe permita fazer seu trabalho de forma eficiente. Aprender a programar está se tornando um requisito para o mercado de trabalho. Assim, dada a facilidade com que é possível aprender e empregar adequadamente, o R é uma ótima alternativa.
Os desenvolvedores de R o chamam de linguagem e ambiente para computação estatística e gráficos. Essa frase estranha traz a ideia de que R é mais do que apenas um pacote de estatística. É similar à linguagem S, que foi escrita no Bell Labs nos anos 1980 como uma ferramenta de pesquisa em computação estatística. MathSoft, Inc. (agora Insightful Corporation) comprou os direitos do S e o transformou no S-PLUS, um pacote comercial com um front-end gráfico. Nos anos 1990, dois estatísticos da Nova Zelândia, Ross Ihaka e Robert Gentleman, reescreveram S do zero, novamente como um projeto de pesquisa. A versão reescrita (e gratuita) tornou-se imensamente popular e agora é mantida por uma “equipe principal” internacional de respeitados estatísticos e cientistas da computação.
Comparado com as opções, SAS, Matlab ou Stata, R é completamente gratuito. Outro benefício é que é de código aberto.
RStudio é um editor de desenvolvimento integrado (IDE) para R. É mais fácil escrever código usando o editor. Uma boa referência para começar a conhecer o RStudio está aqui.
R é uma ferramenta extremamente poderosa. É uma linguagem de computador moderna e completa com sofisticadas estruturas de dados; suporta uma ampla gama de cálculos, procedimentos estatísticos; pode produzir gráficos com plotagens exploratórias para casos personalizados com qualidade de publicação.
Quando você estiver familiarizado com a interface R, o próximo passo será obter dados. No mundo atual, rico em informações, os dados podem vir de muitas fontes e em muitos formatos.
Um pequeno exemplo: gráfico do PIB per capita por país em US$ e a Expectativa de Vida desde o nascimento por país, que mostra, inclusive uma correlação positiva de 0,668. Base: banco de dados do Banco Mundial – 2016.
Figura 1 - PIB Mundial
R está disponível gratuitamente na web para sistemas operacionais Linux, Mac OS X e Windows. Para começar, vamos instalar o software no seu computador. A maneira mais simples e direta para instalar o R é clicar no link Download correspondente ao seu sistema na página CRAN - The Comprehensive R Archive Network e seguir as instruções para a instalação.
Para baixar a última versão do RStudio (versão desktop), utilize o seguinte link. Há vários sites na web que apresentam o necessário para se iniciar a trabalhar com o RStudio. Este é um deles.
Uma declaração (statement) consiste em funções e atribuições.
O R usa o símbolo <- para informar uma declaração, ao
invés de usar o símbolo =, muito embora o R o aceite. No
RStudio, a combinação de teclas Alt-i introduz o símbolo
<- diretamente.
Um exemplo de declaração que cria um objeto de vetor chamado
x contendo 10 variáveis aleatórias de uma distribuição
normal padrão.
x <- rnorm(10) # leia-se x recebe rnorm(10) - cria 10 variáveis aleatórias normais(0,1)
x
## [1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875 -1.8179560
## [7] 0.6300986 -0.2761841 -0.2841597 -0.9193220
Um simples exemplo:
Idades e pesos de 10 crianças:
Tabela 1 - Peso x idade
Iniciando a análise da amostra em R.
Note que Idade e Peso serão definidos como vetores ao utilizarmos a
função c() - concatenação. Assim:
idade <- c(1,3,5,2,11,9,3,9,12,3)
peso <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
Note que estamos usando a notação inglesa para decimais, isto é: ponto ao invés de vírgula, que adotamos no Brasil.
O primeiro gráfico:
plot(idade, peso, main = 'Peso x Idade', col = 'red', pch = 19)
Figura 2 - Primeiro gráfico
Ao instalarmos o R apenas as configurações básicas para seu funcionamento são instaladas (que não são poucas!).
Pacotes (packages) são coleções de funções R, dados e código compilados em um formato bem definido. O diretório em que os pacotes estão armazenados no seu computador é chamado de biblioteca.
O R vem com amplos recursos prontos para uso e você poderá instalá-los e utilizá-los. Os pacotes fornecem uma enorme variedade de novos recursos, desde a análise de dados geoestatísticos até o processamento de espectros de massa de proteínas para a análise de testes psicológicos!
O acesso público a pacotes desenvolvidos por usuários do R expande muito os recursos originais do sistema. O sítio de visualizações CRAN views oferece um painel de Visualizações de Tarefas para o tema Finanças e Econometria. Lá você pode encontrar os principais pacotes para realizar operações específicas, como importação de dados financeiros da internet, estimativa de modelos econométricos, cálculo de diferentes estimativas de risco, entre muitas outras possibilidades. Ler essa página e o conhecimento desses pacotes é essencial para quem pretende trabalhar em finanças e economia. Vale ressaltar, no entanto, que a lista completa de pacotes é muito maior.
Um exemplo de instalação e carregamento na memória de um pacote para utilização e de sua biblioteca.
install.packages('forecast', repos='http://cran.us.r-project.org')
library(forecast)
Utilizaremos vários pacotes ao longo do curso.
Para a instalação de alguns pacotes do R que necessitam compilação também é necessário baixar o software RTools.
Várias pessoas no mundo criam um número crescente de pacotes em R. O
pacote devtools não só facilita o processo para
desenvolver pacotes R, mas também fornece outra maneira de distribuir
pacotes. Quando os desenvolvedores publicam pacotes R criados por eles,
eles geralmente usam o CRAN e, como visto, utilizamos a função do R
install.packages(). Entretanto, frequentemente os
desenvolvedores podem distribuir pacotes R que estão se desenvolvendo no
GitHub. Além disso, existem alguns desenvolvedores que não têm a
intenção de se submeter ao CRAN. Por exemplo, o Twitter,
Inc. fornece o pacote AnomalyDetection no
GitHub, mas eles não se submeterão ao CRAN. Você pode instalar esses
pacotes convenientemente usando devtools.
# baixa um pacote não disponível no CRAN diretamente do Github
devtools::install_github("twitter/AnomalyDetection")
É importante ressaltar algumas regras de formatação de números e códigos para o caso brasileiro.
decimal: O decimal no R é definido pelo ponto (.), tal como em 1.3 e não vírgula, como em 1,3. Esse é o padrão internacional, e a diferença para a notação brasileira gera muita confusão. Alguns softwares, tal como o Microsoft Excel, fazem essa conversão automaticamente no momento da importação dos dados. Porém isso não ocorre na maioria dos casos. Como regra geral, utilize vírgulas apenas para separar os termos de entradas em uma função. Em nenhuma situação deve-se utilizar a vírgula como separador de casas decimais. Sempre dê prioridade para o formato internacional, pois esse será compatível com a grande maioria dos dados. Outros pesquisadores também podem ter dificuldade de entender o seu código, caso utilize a notação local para o decimal.
caracteres latinos: devido ao seu padrão internacional, o R apresenta problemas para entender caracteres latinos, tal como cedilha e acentos. Caso possa evitar, não utilize esses tipos de caracteres no código para nomeação de variáveis ou arquivos. Nos textos (objeto de caracteres), é possível utilizá-los desde que a codificação do objeto esteja correta (UTF-8 ou Latin1). Recomenda-se que o código do R seja escrito na língua inglesa. Isso automaticamente elimina o uso de caracteres latinos e facilita a usabilidade do código por outras pessoas que não entendam a língua portuguesa. Destaca-se que essa foi a escolha utilizada para o livro. Os nomes dos objetos nos exemplos estão em inglês, assim como também os comentários do código.
formato das datas: as datas no R são formatadas de acordo com o padrão ISO 8601, seguindo o padrão YYYY-MM-DD, onde YYYY é o ano em quatro números, MM é o mês e DD é o dia. Por exemplo, uma data em ISO 8601 é 2018-06-10. No Brasil, as datas são formatadas como DD/ MM/ YYYY. Reforçando a regra, sempre dê preferência ao padrão internacional.
Para saber qual o formato que o R está configurado, utilize o seguinte comando:
Sys.localeconv()
## decimal_point thousands_sep grouping int_curr_symbol
## "." "" "" "BRL"
## currency_symbol mon_decimal_point mon_thousands_sep mon_grouping
## "R$" "," "." "\003"
## positive_sign negative_sign int_frac_digits frac_digits
## "" "-" "2" "2"
## p_cs_precedes p_sep_by_space n_cs_precedes n_sep_by_space
## "1" "1" "1" "1"
## p_sign_posn n_sign_posn
## "3" "3"
Como pode ser visto no resultado, estamos usando a notação brasileira
de moeda, mas com o ponto para decimais. Se necessário, você pode
(temporariamente) alterar seu formato local para a notação internacional
usando o seguinte comando:
Sys.setlocale(" LC_ALL", "English").
O primeiro passo em qualquer análise de dados é a criação de um conjunto de dados contendo as informações para ser estudado, em um formato que atenda às suas necessidades.
Em R, essa tarefa envolve: 1. Selecionar uma estrutura de dados para armazenar seus dados 2. Inserir ou importar seus dados para a estrutura de dados
Um conjunto de dados geralmente é uma matriz retangular de dados com linhas representando observações e colunas representando variáveis. Este formato é conhecido como formato wide. A tabela abaixo fornece um exemplo de um hipotético conjunto de dados no formato wide:
Tabela 2 - Formato wide
Em programação, uma matriz multidimensional (array) é uma estrutura de dados que armazena uma coleção de elementos de tal forma que cada um deles possa ser identificado por, pelo menos, um índice ou uma chave. Essa estrutura de dados também é conhecida como variável indexada, vetor e matriz.
Na estrutura de dados acima, Paciente é o identificador, Adm é uma variável de data (no caso em estrutura inglesa (mm/dd/aa), Idade é uma variável numérica, Diabetes é uma variável nominal e Status, uma variável ordinal.
Em R, Paciente, Adm e Idade são variáveis numéricas, enquanto Diabetes e Status são variáveis de caracteres ou fatores.
Além disso, você precisará informar ao R que Paciente é um caso identificador, que Adm contém datas e que Diabetes e Status são nominais e variáveis ordinárias, respectivamente.
Vetores são matrizes unidimensionais que podem conter dados numéricos, caracteres ou caracteres lógicos. A função c() é usada para formar o vetor. Aqui estão exemplos de cada tipo de vetor:
a <- c(1, 2, 5, 3, 6, -2, 4)
b <- c("one", "two", "three")
c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)
Aqui, a é um vetor numérico, b é um vetor de caracteres, e c é um vetor lógico.
Importante: um vetor deve possuir apenas um tipo de dado, seja numéricos, caracteres ou lógicos.
Mais um exemplo:
Você pode se referir aos elementos de um vetor usando um vetor numérico de posições entre colchetes [].
Por exemplo, a[c(2, 4)] refere-se ao 2º e 4º elemento do
vetor a (iniciando no índice 1). O operador :
permte selecionar todos os elementros entre o início e o fim dos
índices.
Aqui estão exemplos adicionais:
a <- c("k", "j", "h", "a", "c", "m")
a[3]
## [1] "h"
a[c(1, 3, 5)]
## [1] "k" "h" "c"
a[2:6]
## [1] "j" "h" "a" "c" "m"
Uma matriz é um arranjo bidimensional em que cada elemento tem o mesmo modo (numérico, caractere ou lógico). Matrizes são criadas com a função matrix(). O formato geral é:
mymatrix <- matrix(vector, nrow = number_of_rows, ncol = number_of_columns, byrow = logical_value)
dimnames <- list(char_vector_rownames, char_vector_colnames)
onde vector contém os elementos para a matriz, nrow e ncol especificam o número de linhas e colunas (dimensões) e dimnames contém rótulos opcionais de linha e coluna armazenados em vetores de caracteres. A opção byrow indica se a matriz deve ser preenchida por linha (byrow = TRUE) ou por coluna (byrow = FALSE). O padrão é por coluna. A sequência de comandos a seguir demonstra a função da matriz:
y <- matrix(1:20, nrow = 5, ncol = 4)
y
## [,1] [,2] [,3] [,4]
## [1,] 1 6 11 16
## [2,] 2 7 12 17
## [3,] 3 8 13 18
## [4,] 4 9 14 19
## [5,] 5 10 15 20
cells <- c(1, 26, 24, 68)
rnames <- c("R1", "R2")
cnames <- c("C1", "C2")
mymatrix <- matrix(cells, nrow = 2, ncol = 2, byrow = TRUE, dimnames = list(rnames, cnames))
mymatrix
## C1 C2
## R1 1 26
## R2 24 68
mymatrix <- matrix(cells, nrow = 2, ncol = 2, byrow = FALSE, dimnames = list(rnames, cnames))
mymatrix
## C1 C2
## R1 1 24
## R2 26 68
Arrays são semelhantes às matrizes, mas podem ter mais de duas dimensões. Eles são criados com uma função de matriz do seguinte formato:
myarray <- array (vector, dimensions, dimnames)
onde: vector contém os dados para a matriz,
dimensions é um vetor numérico que fornece o índice máximo para
cada dimensão e dimnames é uma lista opcional de etiquetas
(labels) das dimensões.
Os comandos a seguir fornecem um exemplo de criação de uma array tridimensional (2x3x4) de números.
dim1 <- c("A1", "A2")
dim2 <- c("B1", "B2", "B3")
dim3 <- c("C1", "C2", "C3", "C4")
z <- array(1:24, c(2,3,4), dimnames=list(dim1, dim2, dim3))
z
## , , C1
##
## B1 B2 B3
## A1 1 3 5
## A2 2 4 6
##
## , , C2
##
## B1 B2 B3
## A1 7 9 11
## A2 8 10 12
##
## , , C3
##
## B1 B2 B3
## A1 13 15 17
## A2 14 16 18
##
## , , C4
##
## B1 B2 B3
## A1 19 21 23
## A2 20 22 24
Arrays são uma extensão natural de matrizes. Eles podem ser úteis em
programação de novos métodos estatísticos. Como matrizes, devem ser um
único tipo de objeto. No exemplo: z[1,2,3] é o elemento
15.
Um data frame é mais geral que uma matriz, pois diferentes colunas podem conter diferentes tipos de dados (numérico, caracter etc.).
Os data frames são a estrutura de dados mais comum que você vai lidar com R.
O conjunto de dados de pacientes na tabela 2 consiste em dados numéricos e de caracteres. Uma vez que existem mais de um tipo de dados, você não pode aramzená-los em uma matriz.
Nesse caso, um data frame seria a estrutura de
escolha e pode ser criado com a função data.frame():
mydata <- data.frame(col1, col2, col3, …), onde col1,
col2, col3, … são vetores de coluna de qualquer tipo (como caractere,
numérico, ou lógico). Os nomes para cada coluna podem ser fornecidos com
a função de nomes.
O snippet a seguir deixará isso bem claro.
Paciente <- c(1, 2, 3, 4)
Idade <- c(25, 34, 28, 52)
Diabetes <- c("Tipo1", "Tipo2", "Tipo1", "Tipo1")
Status <- c("Mal", "Melhorando", "Excelente", "Mal")
df <- data.frame(Paciente, Idade, Diabetes, Status)
df
Cada coluna deve ter apenas um tipo, mas você pode colocar colunas de tipos diferentes juntos para formar o data frame. Como os data frames estão próximos do que os analistas normalmente pensam nos conjuntos de dados, usaremos os termos colunas e variáveis de forma intercambiável ao discutir tabelas de dados.
Há várias maneiras de identificar os elementos de um data frame. Você pode usar a notação subscrita (por exemplo, com matrizes) ou pode especificar nomes de colunas. Usando a tabela de dados do paciente criado anteriormente. Os snippets a seguir demonstram essas abordagens.
df[1:2]
df[c('Diabetes', 'Status')]
df$Idade
## [1] 25 34 28 52
table(df$Diabetes, df$Status)
##
## Excelente Mal Melhorando
## Tipo1 1 2 0
## Tipo2 0 0 1
O data frame airquality está disponível no R. Suponha que você deseje analisar algumas variáveis, bem como visualizar a relação entre elas, por exemplo: vento (medido em milhas por horas) e temperatura (Fahrenheit). Elabore um gráfico.
head(airquality) # mostra as primeiras linha do data frame
x <- airquality$Wind
y <- airquality$Temp
plot(x, y,
main = "Airquality",
xlab = "Wind",
ylab = "Temp F",
pch = 19,
col = "red")
Figura 3 - Segundo gráfico
A notação $, como em airquality$Wind acima,
especifica uma coluna (variável) do dataframe. A função
plot() requer dois vetores (x, y) para o gráfico de
dispersão.
Quais são as suas conclusões?
#install.packages(xlsx)
xlsx::write.xlsx(df, 'meusdados1.xlsx')
Este é um bom momento para revermos algumas noções básicas do R, que serão úteis na continuação do curso.
“E de que serve um livro”, pensou Alice, “sem figuras nem diálogos?” L. Carroll, Aventuras de Alice no país das maravilhas
“Em muitas ocasiões, apresentei aos clientes resultados estatísticos cuidadosamente elaborados em a forma de números e texto, apenas para que seus olhos brilhassem, ao invés de dispersar na sala de reunião. No entanto, esses mesmos clientes fizeram um Ah-ha entusiasmado no momento em que lhes apresentei as mesmas informações na forma de gráficos.
Muitas vezes consegui ver padrões nos dados ou detectar anomalias nos valores dos dados olhando para gráficos - padrões ou anomalias que eu perdi completamente ao conduzir análises estatísticas mais formais.
Os seres humanos são notavelmente hábeis em discernir os comportamentos das representações. Um gráfico bem elaborado pode ajudá-lo a fazer comparações significativas entre milhares de informações, extraindo padrões - que não são facilmente encontrados - através de outros métodos. Esta é uma das razões pelas quais os avanços no campo da estatística os gráficos tiveram um impacto tão grande na análise de dados. Os analistas de dados precisam olhar para seus dados, e essa é uma área em que R brilha.” Kabacoff, R In Action
“You can see a lot by just looking.” Yogi Berra
Neste tópico, exploraremos os métodos gerais para trabalhar com gráficos. Vamos começar com a criação e armazenamento de gráficos. Depois, veremos como modificar os recursos que são encontrados em qualquer gráfico. Esses recursos incluem títulos de gráficos, eixos, etiquetas, cores, linhas, símbolos e anotações de texto. Nosso foco será nas técnicas genéricas que se aplicam através de gráficos. (Nos próximos capítulos, focaremos em tipos específicos de gráficos). Finalmente, abordaremos investigar maneiras de combinar vários gráficos em um gráfico geral.
Considere as cinco linhas abaixo. O arquivo mtcars está disponível no R e seus dados foram extraídos da revista Motor Trend US, de 1974, e incluem o consumo de combustível e 10 aspectos do projeto e desempenho de automóveis para 32 automóveis (modelos 1973-74).
# evita termos que repetir o nome do data frame 'mtcars' para designar suas variáveis
attach(mtcars)
plot(wt, mpg)
title('Regressão de Milhas/galão vs Peso em 1000lbs')
abline(lm(mpg ~ wt))
Figura 4 - Uma regressão simples
detach(mtcars) # o oposto de attach
A primeira instrução anexa os dados ao data frame para se evitar a
necessidade de se repetir matcars$variável a cada comando.
A segunda declaração abre uma janela gráfica e gera um gráfico de
dispersão entre o peso do automóvel no eixo horizontal e milhas por
galão no eixo vertical. A terceira declaração adiciona um título. A
quarta declaração adiciona uma linha de melhor ajuste (regressão
linear). A instrução final desanexa a tabela de dados. Em R, os gráficos
são normalmente criados dessa maneira interativa.
Agora, o mesmo gráfico, mas utilizando o package ggplot2.
#install.packages("ggplot2")
library(ggplot2)
p1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point() +
stat_smooth(method = lm, se = FALSE) +
ggtitle('Regressão de Milhas/galão vs Peso em 1000lbs')
p1
Figura 5 - Uma regressão com ggplot
Com intervalo de confiança de 99%. O valor padrão é 95%.
#install.packages("ggplot2")
library(ggplot2)
p2 <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point() +
stat_smooth(method = lm, se = TRUE, level = 0.99) +
ggtitle('Regressão de Milhas/galão vs Peso em 1000lbs')
p2
Figura 6 - Intervalo de confiança 99%
A apresentação fica enriquecida e, na medida em que formos
progredindo, utilizaremos mais o pacote ggplot2.
dose <- c(20,30,40,45,60)
drogaA<- c(16,20,27,40,60)
drogaB <-c(15,18,25,31,40)
df <- data.frame(dose, drogaA, drogaB)
library(kableExtra)
kable_styling(kable(df)) # Mostra a tabela com estilo
| dose | drogaA | drogaB |
|---|---|---|
| 20 | 16 | 15 |
| 30 | 20 | 18 |
| 40 | 27 | 25 |
| 45 | 40 | 31 |
| 60 | 60 | 40 |
plot(dose, drogaA,
main = 'Resposta da droga A à dosagem',
type = 'b')
Figura 7 - Resposta à dosagem
Uma maneira de especificar essas opções é através da função
par(). Valores assim definidos entrarão em vigor pelo resto
da sessão ou até que eles sejam alterados.
O formato é
par(optionname = valor, optionname = valor, ...).
Especificando par() sem parâmetros produz uma lista das
configurações gráficas atuais. Adicionar a opção
no.readonly = TRUE produz uma lista das configurações
gráficas atuais que podem ser modificadas.
Continuando nosso exemplo, digamos que você gostaria de usar um triângulo sólido em vez de um círculo aberto como símbolo de plotagem e conecte os pontos usando uma linha tracejada do que uma linha sólida. Você poderá fazer isso com o seguinte snippet:
opar <- par(no.readonly = TRUE)
par(lty = 2, pch = 17)
plot(dose, drogaA,
type = 'b')
Figura 8 - Triângulos
par(opar)
plot(dose, drogaA,
type = 'b',
lty = 3,
lwd = 3,
pch = 15,
cex = 2)
Figura 9 - Quadrados
Para maiores detalhamentos acesse, por exemplo, Applied R Code.
Agora, usando o pacote ggplot2.
# Linha
ggplot(data = df, aes(x = drogaA, y = drogaB)) +
geom_line() +
geom_point()
Figura 10 - Com ggplot (1)
# Altere o tipo da linha
ggplot(data = df, aes(x = dose, y = drogaA)) +
geom_line(linetype = "dashed", color = "blue", size = 1.2) +
geom_point(color ="red", size = 3)
Figura 11 - Com ggplot (2)
A função colors() retorna todos os nomes de cores
disponíveis. O R também possui várias funções que podem ser usadas para
criar vetores de cores contíguas. Isso inclui rainbow(),
heat.colors(), terrain.colors(),
topo.colors() e cm.colors().
Por exemplo, rainbow(10) produz 10 cores contíguas do
“arco-íris”. Os níveis de cinza são gerados com a função
grey(). Neste caso, você especifica níveis de cinza como um
vetor de números entre 0 e 1. gray(0: 10/10) produziria 10
níveis de cinza.
Assegure que você tenha efetuado o a instalação do package RColorBrewer antes de utilizá-lo.
#install.packages(RColorBrewer)
library(RColorBrewer)
n <- 20
minhasCores <- topo.colors(n)
barplot(rep(1, n), col = minhasCores)
Figura 12 - Gráfico de Barras
n <- 10
minhasCores <- topo.colors(n)
pie(rep(1, n), labels = minhasCores, col = minhasCores)
Figura 13 - Gráfico de pizza (1)
meusCinzas <- gray(0:n/n)
pie(rep(1, n), labels = meusCinzas, col = meusCinzas)
Figura 14 - Gráfico de pizza (2)
par(mfrow())par(mfrow()) permite visualizar dois ou mais gráficos
numa mesma página, o que torna a visualização muito interessante para
uma apresentação.
opar <- par(no.readonly = TRUE)
par(mfrow = c(1, 2))
plot(dose, drogaA,
type = 'b',
pch = 19,
col = 'red')
plot(dose, drogaB,
type = 'b',
pch = 23,
col = 'blue',
bg = 'green')
Figura 15 - Múltiplos Gráficos
par(opar)
Use a função title() para adicionar o título e nomes no
eixo cartesiano.
title(main = "Título principal ", sub = "sub-título", xlab = "eixo xl", ylab = "eixo y")
opar <- par(no.readonly = TRUE)
par(mfrow = c(1, 2))
plot(dose, drogaA,
type = 'b',
pch = 19,
lty = 2,
col = 'red',
main = 'Droga A', col.main = 'red',
sub = 'Testes Clínicos', col.sub = 'blue',
xlab = 'Dose',
ylab = 'Resposta à droga')
plot(dose, drogaB,
type = 'b',
pch = 23,
lty = 6,
col = 'blue',
bg = 'red',
main = 'Droga B', col.main = 'blue',
sub = 'Testes Clínicos', col.sub = 'blue',
xlab = 'Dose',
ylab = 'Resposta à droga')
Figura 16 - Gerenciando títulos
par(opar)
Quando mais de um conjunto de dados ou grupo é incorporado em um gráfico, uma legenda pode ajudá-lo a identificar o que está sendo representado por cada barra, fatia ou linha.
Vejamos o snippet abaixo, utilizaremos o ggplot2 para enriquecer a apresentação.
ggplot(data = df) +
geom_line(mapping = aes(y = drogaA, x = dose, color = 'drogaA'), size = 1) +
geom_line(mapping = aes(y = drogaB, x = dose, color = 'drogaB'), size = 1) +
xlab('Dose') + ylab('Resposta à droga') +
ggtitle('Resposta às drogas (hipotética)') +
scale_color_manual(values = c('drogaA' = 'darkblue', 'drogaB' = 'red')) +
labs(color = 'Drogas')
Figura 17 - Legendas com ggplot2
Além dos gráficos, um resumo das estatísticas mais importantes ajudam a compreender outros fatos de dados financeiros. O conteúdo apresentado em Torres-Reyna pode ser bastante útil. Estudaremos esse assunto adiante.