1 Introdução

Neste trabalho, apresentaremos a linguagem R. Como já é conhecido, o R é uma linguagem de programação voltada para diversas áreas matemáticas, incluindo estatística e gráficos. Ao longo do tempo, o R tem se destacado na manipulação, análise e visualização de dados, sendo considerado por muitos como uma das melhores opções para esses fins.

O trabalho está sendo orientado pelo professor Me. Caio Oliveira Azevedo, e tem como livro de referência a ESTATÍSTICA BÁSICA, 9º edição, Pedro A. Morettin Wilton de O. Bussab. Para dúvidas, Instragam @obraga_16

Neste trabalho, abordaremos o uso da linguagem R na análise da estatística descritiva. Nosso objetivo é demonstrar como calcular as principais medidas utilizadas em uma análise de dados.
O trabalho será divido em seis partes, são elas;

  1. Introdução

  2. Dados a serem analisados;
    2.1 Criando objetos;
    2.2 Tabelas;
    2.3 Importando dados;

  3. Frequência;

  4. Histograma;

  5. Medidas de tendência central;

  6. Medidas de dispersão;

  7. Quantis empíricos.

  8. Material de apoio

2 Dados a serem analisados.

Antes de começarmos as análises, é essencial obter os dados necessários. Existem várias maneiras de adquirir esses dados no R. Podemos criar objetos diretamente no R, criar tabelas a partir desses objetos ou importar os dados de arquivos em nosso diretório. Esses arquivos podem estar em formato Excel (.xlsx), texto (.txt) ou outros formatos.

2.1 Criando objetos

Exemplo 1:
Usaremos uma base para escrevermos na linguaguem R.
Seja os dado, retirado do problema 2 do capítulo 3 do livro ESTATÍSTICA BÁSICA, 9º edição, Pedro A. Morettin Wilton de O. Bussab.

As taxas de juros recebidas por 10 ações durante um certo período foram (medidas em porcentagem) \[(2.59; \;2.64;\; 2.60;\; 2.62;\; 2.57;\; 2.55;\; 2.61;\; 2.50;\; 2.63;\; 2.64) \]

Para criar um objeto, basta colocar um nome (Letras, nomes específicos, abreviações, etc..), da seguinte forma;

taxas <- c(2.59, 2.64, 2.60, 2.62, 2.57, 2.55, 2.61, 2.50, 2.63, 2.64)
# Usando "<-" ou "=", acompanhada de  "c()" ;
# Para vizualizar o objeto criado:
taxas
##  [1] 2.59 2.64 2.60 2.62 2.57 2.55 2.61 2.50 2.63 2.64

E se tivermos nomes desses ações, \[ (Ativo1,\; Ativo2,\; Ativo3,\;Ativo4,\;Ativo5,\;Ativo6,\;Ativo7,\;Ativo8,\;Ativo9,\;Ativo10,\;) \]

#Criando objetos com nomes
ativos<- c("Ativo1","Ativo2","Ativo3","Ativo4","Ativo5","Ativo6","Ativo7","Ativo8","Ativo9","Ativo10")
ativos
##  [1] "Ativo1"  "Ativo2"  "Ativo3"  "Ativo4"  "Ativo5"  "Ativo6"  "Ativo7" 
##  [8] "Ativo8"  "Ativo9"  "Ativo10"
#Para atriuir "nomes" a objetos/vetores, basta colocar em aspas ("")

2.2 Tabelas

Para adicionar tabelas simples, usamos uma função data.frame()
Por exemplo, vamos criar uma tabela com os vetores “taxas” e “ativos”

tabela1 <- data.frame(ativos, taxas) 
#vejamos atribuímos o nome tabela1 para a tabela cujo tem as colunas, ativos e taxas.
#Para vizualizar a tabela
tabela1
##     ativos taxas
## 1   Ativo1  2.59
## 2   Ativo2  2.64
## 3   Ativo3  2.60
## 4   Ativo4  2.62
## 5   Ativo5  2.57
## 6   Ativo6  2.55
## 7   Ativo7  2.61
## 8   Ativo8  2.50
## 9   Ativo9  2.63
## 10 Ativo10  2.64

2.3 Importando dados

Dentre umas das muitas formas de importação de dados, uma das principais maneiras é a importação de arquivos Excel (.xlsx), mas para isto, devemos instalar o papote “readxl”, uma vez baixado devemos habilitar da seguinte maneira;

library(readxl)

Supomos que queremos as informações do exemplo 2 a seguir:

Exemplo 2
Exemplo 2

Uma vez com o pacote habilitado e os dados estando disponíveis em um arquivo de Excel, para importa-los devemos usar o seguinte comando

dados <- read_excel("C:/Users/Cliente/Desktop/Gustavo/R/cia_MB.xlsx")
#Dê nome a tabela, comando "<- read_excel(DIRETORIO DENTRO DO SEU PC)"
#View(dados) para visualizar em outra aba
#para ver;
dados
## # A tibble: 36 × 7
##      obs X        Y                      Z     S     U V       
##    <dbl> <chr>    <chr>              <dbl> <dbl> <dbl> <chr>   
##  1     1 solteiro ensino fundamental    NA  4       26 interior
##  2     2 casado   ensino fundamental     1  4.56    32 capital 
##  3     3 casado   ensino fundamental     2  5.25    36 capital 
##  4     4 solteiro ensino médio          NA  5.73    20 outra   
##  5     5 solteiro ensino fundamental    NA  6.26    40 outra   
##  6     6 casado   ensino fundamental     0  6.66    28 interior
##  7     7 solteiro ensino fundamental    NA  6.86    41 interior
##  8     8 solteiro ensino fundamental    NA  7.39    43 capital 
##  9     9 casado   ensino médio           1  7.59    34 capital 
## 10    10 solteiro ensino médio          NA  7.44    23 outra   
## # ℹ 26 more rows

A ideia para importar arquivos de texto (.txt) é análogo.

3 Frequência

Para a frequência de uma variável, o comando é simples, freq()
Antes devemos instalar e habilitar o pacote “descr”!
Usaremos o exemplo 2, para vermos as frequências.

library(descr)
freq(dados$X, plot=FALSE) #Devemos colocar primeiro o nome da "tabela" e depois separados por um "$" a columa a ser analisada.  
## dados$X 
##          Frequência Percentual
## casado           20      55.56
## solteiro         16      44.44
## Total            36     100.00
#plot=FALSE para não criar um gráfico de barras simples.
#plot=TRUE para criar um gráfico de barras simples

Para não precisarmos usar o “$” devemos usar o comando attach(“tabela”), que os próximos cálculos usaremos somente a columa a ser analisada. Veja:

attach(dados)  
freq(Y, plot = FALSE)
## Y 
##                    Frequência Percentual
## ensino fundamental         12      33.33
## ensino médio               18      50.00
## superior                    6      16.67
## Total                      36     100.00

Para variáveis quantitativas:

freq(S, plot = FALSE)
## S 
##       Frequência Percentual
## 4              1      2.778
## 4.56           1      2.778
## 5.25           1      2.778
## 5.73           1      2.778
## 6.26           1      2.778
## 6.66           1      2.778
## 6.86           1      2.778
## 7.39           1      2.778
## 7.44           1      2.778
## 7.59           1      2.778
## 8.12           1      2.778
## 8.46           1      2.778
## 8.74           1      2.778
## 8.95           1      2.778
## 9.13           1      2.778
## 9.35           1      2.778
## 9.77           1      2.778
## 9.8            1      2.778
## 10.53          1      2.778
## 10.76          1      2.778
## 11.06          1      2.778
## 11.59          1      2.778
## 12             1      2.778
## 12.79          1      2.778
## 13.23          1      2.778
## 13.6           1      2.778
## 13.85          1      2.778
## 14.69          1      2.778
## 14.71          1      2.778
## 15.99          1      2.778
## 16.22          1      2.778
## 16.61          1      2.778
## 17.26          1      2.778
## 18.75          1      2.778
## 19.4           1      2.778
## 23.3           1      2.778
## Total         36    100.000

Observe que não fica algo visualmente bonito, nesses casos, é possível criar um tabela de frequência com intervalos predeterminado.
Primeiro instalaremos o pacote “fdth”. Em seguida usaremos seguinte sintaxe:

library(fdth)
tabela2 <- fdt(S,start = 4, end = 24, h=5)
#S; a variável a ser analisada
#start; onde o primeiro intervalo começa.
#end; onde o ultimo intervalo termina, observe que não colocamos o valor da última observação, pois o limite superior do intervalo é aberto.
#h; a amplitude do intervalo.
tabela2
##  Class limits  f   rf rf(%) cf  cf(%)
##         [4,9) 14 0.39 38.89 14  38.89
##        [9,14) 13 0.36 36.11 27  75.00
##       [14,19)  7 0.19 19.44 34  94.44
##       [19,24)  2 0.06  5.56 36 100.00

4 Histograma

Para criar histogrmas, usaremos função hist(), para isso usaremos um exemplo, o problema 3 do capítulo 3, do livro base.

Problema 3 do capítulo 3
Para facilitar um projeto de ampliação da rede de esgoto de uma certa região de uma cidade, as autoridades tomaram uma amostra de tamanho 50 dos 270 quarteirões que compõem a região, e foram encontrados os seguintes números de casas por quarteirão:

Problema 3 do capitulo 3
Problema 3 do capitulo 3
  1. Use cinco intervalos e construa um histograma.
#criando um objetivo com os dados
p3c3 <-  c(rep(c(2,3,10,13,14,15,16,18,20,21,22,23,24,25,26,27,29,30,32,36,42,44,45,46,48,52,58,59,61,65,66,68,75,78,80,89,90,92,97),c(2,1,1,1,1,2,2,2,1,1,2,1,1,2,1,1,2,1,1,1,1,1,2,1,1,1,1,1,3,1,2,1,1,1,1,1,1,1,1))) 
#A função rep(x,y), faz com o x se repita y-vezes, assim ecomizando ter que repeir números.

Construindo o histograma. devemos usar o comando hist(), sendo o argumento a variável que queremos, que faça o histograma, com relação a frequência absoluta;

hist(p3c3, freq = FALSE)   

#Se quisermos a frequência absoluta, basta colocar, freq=TRUE.  

Para mudar os títulos dos eixos;

hist(p3c3, freq = FALSE,
         main = "Quantidade de casas por quarteirão", 
         xlab = "Casas", ylab = "Densidade", )

Para separar as classes em 5, devemos ter em mente que a amplitude total da amostra é 97 - 2 = 95, que divido por 5 temos 19, ou seja, temos uma amplitude de classe igual a 19.
Adiante para determinar as classes usaremos a função breaks= c() permite definir o limite de cada classe, para isso basta determinar os valores limites das classes. No caso usaremos uma sequência para os valores da função.

hist(p3c3, freq = FALSE,
         main = "Quantidade de casas por quarteirão", 
         xlab = "Casas", ylab = "Densidade",
     breaks = seq(2,97,19))

Para alinhar os separadores dos eixos x, usaremos a função xaxp que alterar a posição e quantidade de separadores.
xaxp=c(“limite inferior”, “limite superior”, “quantidade de separadores”), no script;

hist(p3c3, freq = FALSE,
         main = "Quantidade de casas por quarteirão", 
         xlab = "Casas", ylab = "Densidade",
        breaks = seq(2,97,19),
    xaxp=c(2,97,5))

5 Medidas de tendência central

As medidas de tendência cetral são

* Media

* Mediana

* Moda
  

Usando o exemplo 1: \[taxas=(2.59; \;2.64;\; 2.60;\; 2.62;\; 2.57;\; 2.55;\; 2.61;\; 2.50;\; 2.63;\; 2.64) \]

  • Média
mean(taxas)
## [1] 2.595
  • Mediana
median(taxas)
## [1] 2.605
  • Moda
    A moda não tem uma função específica, porém com a seguinte sintaxe achamos a moda de um conjunto de dados.
# usando da função "table"
moda <- table(taxas) # Retorna o os dados e as freq. absolutas.
    moda[moda == max(moda)] #Procura o elemento que tem a maior freq. absoluta
## 2.64 
##    2

6 Medidas de dispersão

As medidas de dispersão principais são elas:

* variância amostral

* variância populacional

* desvio padrão amostral
  
* desvio padrão
  

Sabendo que

\[ {dp}^2_{amostral}=var_{amostral}=\frac{\sum_{i=0}^n(x_i-\bar{x})^2}{n-1} \]

E que \[ {dp}^2_{populacional}=var_{populacional}= \frac{\sum_{i=0}^n(x_i-\bar{x})^2}{n} \]

Usaremos os dados do exemplo 1;
Precisaremos do pacote “fdth”

  • Variância amostral

R calcula a variância amostral com a função var()

var(taxas)
## [1] 0.001983333
  • Varianância populacional

Usamos a seguinte sintaxe

var(taxas)*((length(taxas)-1)/length(taxas))
## [1] 0.001785
  • Desvio padrão amostral

Podemos apenas calcular a raiz quadrada da variância amostral, ou usar a função sd()

sd(taxas)
## [1] 0.04453463
  • Desvio pardão populacional

Podemos apenas calcular a raiz quadrada da variância populacional, ou usar a função sd() e usar a seguinte sintaxe.

sd(taxas)*sqrt((length(taxas)-1)/length(taxas))
## [1] 0.04224926

7 Quantis empíricos

Para achar quartis temos a função “quantile”:
Usando o exemplo 2 a variavel idade (U)

U
##  [1] 26 32 36 20 40 28 41 43 34 23 33 27 37 44 30 38 31 39 25 37 30 34 41 26 32
## [26] 35 46 29 40 35 31 36 43 33 48 42
quantile(U)
##   0%  25%  50%  75% 100% 
## 20.0 30.0 34.5 40.0 48.0
#Isto é o padrão da função se quisermos os percentis;
quantile(U, probs = seq(0,1,0.1))
##   0%  10%  20%  30%  40%  50%  60%  70%  80%  90% 100% 
## 20.0 26.0 29.0 31.0 33.0 34.5 36.0 38.5 41.0 43.0 48.0
#O DEFAUL dessa função é quantile(U, probs= seq(0,1,0.25))