O documento apresenta a agenda de um minicurso sobre estatística utilizando o software R. O curso abordará introdução ao R, carregamento e exploração de dados, estatística descritiva, regressão, testes estatísticos e gráficos.
Esta apostila de alocação dinâmica em C foi desenvolvida para dar uma noção inicial das
funções de alocação dinâmica na Linguagem de Programação C. Portanto, inicialmente, é
necessário um estudo sobre ponteiros, pois através do conhecimento destes, fica mais
fácil trabalhar com Estruturas de Dados, as quais na maioria dos casos faz uso de
alocação dinâmica.
Introdução a programação gráfica com Processing - Aula 02Lucas Cabral
Segunda parte do curso de introdução ao Processing promovido pelo Laboratório de Experiência Digital da Universidade Federal do Ceará. Nessa aula são abordados princípios básicos do uso de arrays e programação orientada a objetos.
Aula de Métodos e Técnicas de Análise da Informação para Planejamento, MTI, UFABC, Agosto de 2017
Apresentação disponível em: https://youtu.be/6ZP-GBj2O48
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: ...Tiago Oliveira Weber
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: "Curso de GNU Octave / Matlab e Aplicações para Engenheiros"). This material was initially presented at the II Computer Engineering Academic Week in March 2018 at UFSC - Campus Araranguá - Presentation in Portuguese.
Esta apostila de alocação dinâmica em C foi desenvolvida para dar uma noção inicial das
funções de alocação dinâmica na Linguagem de Programação C. Portanto, inicialmente, é
necessário um estudo sobre ponteiros, pois através do conhecimento destes, fica mais
fácil trabalhar com Estruturas de Dados, as quais na maioria dos casos faz uso de
alocação dinâmica.
Introdução a programação gráfica com Processing - Aula 02Lucas Cabral
Segunda parte do curso de introdução ao Processing promovido pelo Laboratório de Experiência Digital da Universidade Federal do Ceará. Nessa aula são abordados princípios básicos do uso de arrays e programação orientada a objetos.
Aula de Métodos e Técnicas de Análise da Informação para Planejamento, MTI, UFABC, Agosto de 2017
Apresentação disponível em: https://youtu.be/6ZP-GBj2O48
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: ...Tiago Oliveira Weber
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: "Curso de GNU Octave / Matlab e Aplicações para Engenheiros"). This material was initially presented at the II Computer Engineering Academic Week in March 2018 at UFSC - Campus Araranguá - Presentation in Portuguese.
R, Python, Twitter e Tableau para Business IntelligenceLeandro Guerra
R, Python, Twitter e Tableau para Business Intelligence. Neste tópico mostramos aplicações de R para BI, bem como a conexão do R Studio com um banco MS SQL. Também exemplificamos um código em Python para captura de tweets e sua posterior visualização utilizando o Tableau Public.
Text Mining para BI e Finalização do Dashboard no TableauLeandro Guerra
Text Mining para BI e Finalização do Dashboard no Tableau.Text mining, ou mineração de textos, se refere ao processo de recuperar informações relevantes de um texto. Esta informação relevante é derivada de padrões e tendências que sejam relevantes ao negócio e encontradas nos textos.
R é uma linguagem gratuita, poderosa e rápida para análise e visualização de dados. Tire suas próprias conclusões! Mini-palestra apresentada no CPDx (Ciclo de Palestras para Desenvolvedores) na UFBA em 16/01/2013
Objetivos da apresentação
• Introduzir o R como um software para análise de dados, estatística, armazenamento e criação de gráficos, que é também uma linguagem de programação
• Introduzir a operação básica do software R e apresentar algumas das suas funcionalidades e potencialidades
• Partilhar um conjunto de recursos que facilitem a aprendizagem e exploração do R
• Apresentar alguns exemplos do uso de R
• Propor uma comunidade de uso local, para explorar o R
O Método Estatístico
• Introdução aos gráficos
• Tabela de distribuição de Frequências
• Elementos de uma distribuição de frequência
• Tabelas comparativas
• Calculo da variação percentual
• Recodificação /Transformação /Manipulação de variáveis
• Agrupar idades em faixa etária com Excel
• Transformando a variável data
• Copiar tabelas do Excel para outros programas
• Gráficos
• Requisitos fundamentais para construir um gráfico
• Principais tipos de gráficos
• Criando Gráfico no Excel
• Gráficos mais usados
• Bibliografia e Links úteis
2. Agenda
● O Pacote R
● Carregando Dados
● Estatística Descritiva
○ Medidas de tendência central e dispersão
○ Gráficos
● Estatística Inferencial
○ Regressão
○ Testes Estatísticos
4. O que é o R
● Um programa de estatística para uso geral;
○ Um conjunto de bibliotecas/plugins
○ Uma linguagem de programação
● FOSS
○ Free open source software
○ Programa gratuito de código aberto
5. Porquê usar o R?
● Primeiro: ELE É GRATUITO!
○ Ao contrário do SPSS, SAS…
● Ele é não é voltado para nenhuma área
específica
○ Ao contrário do SPSS...
● Muita documentação, em todas as
linguagens
6. Porquê usar o R?
● No R é possível programar!
○ Grande base de plugins para todo o tipo de tarefa
de análise de dados
● Interoperabilidade
○ Abre diversos tipos de arquivos
○ Comunica-se com outros sistemas
7. Características do R?
● O R originalmente usa uma interface de linha de
comando que é pouco amigável para usuários que não
vem das exatas/tecnológicas e engenharias…
● Para tarefas mais complexas algum conhecimento em
programação é bastante recomendado!
8. Características do R
● Atualmente já existem interfaces gráficas com
o usuário, tais como o:
○ R Commander
○ R Studio
9. Instalando o R
● R Básico
○ http://www.r-project.org/
● R Studio
○ https://www.rstudio.com/
10. Pacotes
● Pacotes são extensões ao programa básico
escritos pela comunidade de usuários;
● Com os pacotes podemos agregar novas
funcionalidades ao R
11. Pacotes
● Baixa o pacote da internet e instalar no computador
install.packages("pacote")
● Carregar o pacote na memória (antes de começar a
utilizá-lo)
library("mypkg")
13. Variáveis
● Uma variável armazena um ou mais valores
nome <- valor
14. Tipos de Dados no R
● Escalar
● Vetores
● Matrizes
● Fatores
● Data Frames
15. Tipos de Dados no R
● Escalar
○ Um único dado.
○ Número
■ 1, -1, 1.5
○ Caractere
■ “texto”
○ Lógico
■ TRUE / FALSE
16. Tipos de Dados no R
● Vetores
○ Conjunto de dados de um mesmo tipo, com uma
única dimensão [linha OU coluna]
v1 <- c(1,2,3,5) # vetor numérico
v2 <- c("A","BB","CCC") # vetor de caracteres
v3 <- c(TRUE,TRUE,FALSE) #vetor de valores lógicos
17. Tipos de Dados no R
● Intervalos
○ seq(from = inicio, to = fim, by = passo)
■ v1 <- seq(from = 1, to = 50, by = 10)
○ início : fim
■ v1 <- c(1:20)
18. Tipos de Dados no R
● Fatores
○ Associa um índice a cada valor nominal;
○ Variáveis categóricas/nominais sem relação de
ordem
dados <- c(“M”,”F”,”F”,”M”,”F”,”M”,”M”,”F”)
sexos <- factor(dados)
19. Tipos de Dados no R
● Matrizes
○ Um conjunto de dados de um único tipo, com duas
dimensões
○ Tabela do um mesmo tipo de dados, com várias
linhas e colunas
m<-matrix(dados, nrow=linhas,ncol=colunas)
20. Tipos de Dados no R
● Data Frames
○ Tabela com várias linhas e colunas, em que cada
coluna pode ser de um tipo de dados diferente:
■ Linhas : Observações
■ Colunas : Variáveis
○ As colunas em um data frame podem ter nomes;
21. Tipos de Dados no R
● Data Frames
○ idades <- c(20, 30, 25)
○ sexos <- c(“M”,”F”,”F”)
○ pesos <- c(70.5, 64.3, 60.1)
○ df <- data.frame(idades, sexos, pesos)
○ df$idades
22. Funções Úteis
● Gera uma matriz a partir da combinação em colunas de dois vetores
dados <- cbind(vetor, vetor, …)
● Gera uma matriz a partir da combinação em linhas de dois vetores
dados <- rbind(vetor, vetor, …)
● Edita os dados de um objeto (vetor, matriz, data frame etc…)
dados <- edit(dados)
23. Funções Úteis
● O somatório de todos os itens de um vetor
soma <- sum(vetor)
● A quantidade de itens de um vetor
n <- length(vetor)
● Edita os dados de um objeto (vetor, matriz, data frame etc…)
dados <- edit(dados)
24. Carregar dados
● Ler um arquivo de dados simples
mydata <- read.table("c:/mydata.csv", header=TRUE,
sep=",")
● Gravar um arquivo de dados simples
write.table(mydata, "c:/mydata.txt", sep="t")
25. Carregar dados
● Existem pacotes para interagir com diversas
outras fontes de dados:
■ Excell
■ SPSS
■ Bancos de Dados
● Consulte: (CRAN, 2014)
27. Funções úteis
Função Utilidade
abs(x) Valor absoluto
sqrt(x) Raiz quadrada
ceiling(x), floor(x) Arredondamento para cima e para baixo
trunc(x) Retorna a parte inteira
cos(x), sen(x), tan(x) Funções trigonométricas
log(x), log10(x), exp(x) Logaritmos e exponenciação
30. Correlação e Covariância
● Coeficiente de correlação entre dois vetores
cor(vetor,vetor)
● Matriz de correlação em matrizes e data
frames
cor(dados)
32. Função Plot
plot(dados,
main = ”titulo”, sub=”sub título”,
type =”tipo”, col = vetordecores,
xlab = “rótulo do eixo x”, ylab = “rótulo do eixo y”
pch = simbolo, lty = tipo de linha, ltw = expessura da linha
)
33. Parâmetros
● Type
○ l = Linha
○ p = Pontos
○ b = Linha e ponto não sobrepostos
○ o = Linha e ponto sobrepostos
○ h = Histograma
○ s = Degraus
36. Outras funções úteis
● legend(“orientação”, valores, fill=cores)
○ Acrescenta uma legenda no gráfico
● text(x, y, “texto”)
○ Acrescenta uma anotação no gráfico
● mtext(“texto”, side=n)
○ Acrescenta uma anotação na bordas do gráficos
41. Distribuições de Probabilidades
● ddist(valor, …)
○ Retorna a densidade de probabilidade (Probabilidade de um
valor dentro da distribuição)
● pdist(valor, …)
○ Retorna a densidade acumulada de probabilidade
42. Distribuições de Probabilidades
● qdist(quantis,...)
○ Retorna os valores, dentro da distribuição, para as
probabilidades informadas;
○ Pode ser um escalar ou um vetor com os quantis;
● rdist(n,...)
○ Gera um vetor de n números aleatórios dentro da distribuição;
52. Análise de Variáncia - ANOVA
● Dados segmentados em blocos;
● Há diferenças significativas nas médias e
variâncias nas amostras colhidas entre os
blocos?
53. Análise de Variáncia - ANOVA
● Data Frame
○ Variável de Bloco : Factor
○ Variável quantitativa mensurada
modelo <- aov(Variavel ~ Bloco)
54. Análise de Variáncia - ANOVA
A <- c(78, 88, 87, 88, 83, 82, 81, 80, 80, 89)
B <- c(78, 78, 83, 81, 78, 81, 81, 82, 76, 76)
C <- c(79, 73, 79, 75, 77, 78, 80, 78, 83, 84)
D <- c(77, 69, 75, 70, 74, 83, 80, 75, 76, 75)
dados <- data.frame(Localidade=gl(4,10), Massa=c(A,B,C,D))
dados$Localidade <- as.factor(dados$Localidade)
# Análise de variância
modelo <- aov(Massa ~ Localidade)
summary(modelo)
# o teste de Tukey HSD para mostrar os pares de grupos
TukeyHSD(modelo)
plot(TukeyHSD(modelo))
Fonte: (BASLEY, 2004, p. 32)
55. Regressão Linear Simples
● Ajusta os coeficientes das variáveis
independentes de uma fórmula a partir de
um conjunto de dados
modelo <- lm(formula = y ~ x, data = dados)
56. Exemplo
x <- c(1,2,3,4,5,6,7,8)
y <- c(9.6, 18.0, 18.7,26.0,4.6,18.3,19.7,37.8)
modelo <- lm(y ~ x)
plot(x, y)
abline(modelo)
57. Exemplo
x <- c(1,2,3,4,5,6,7,8)
y <- c(9,3,2,7,3,3,1,1)
z <- c(9.6, 18.0, 18.7,26.0,4.6,18.3,19.7,37.8)
modelo <- lm(z ~ x + y)
library(scatterplot3d)
grafico <- scatterplot3d(x, y, z)
grafico$plane3d(modelo)
58. Regressão Não Linear
● Ajusta os coeficientes das variáveis independentes de
uma fórmula a partir de um conjunto de dados
● Os coeficientes e seus valores iniciais devem ser
indicados
modelo <- nls(formula = z ~ a^x + b*y + c,
data = dados, start=c(a=0, b=0, c=0))
59. Teste e simulação dos modelos
● Gera predições para a variável dependente
a partir de um conjunto de dados para as
variáveis independente utilizando o modelo.
dados <- predict(modelo, dadossimulacao)
modelo <- lm(y ~ x)
predicao <- predict(modelo, x)
61. Ajuste de Modelos
plot(x, y, main="Modelos de Regressão",
sub="Ajuste de modelos lineares e não
lineares")
legend("topleft",c("a.x+b","a.cos(x)
+b","a.e^x + b.cos(x) + c"), fill=c
("black","blue","red"))
lines(teste_linear, col="black")
lines(teste_naolinear1, col="blue")
lines(teste_naolinear2, col="red")
63. Intervalo de Confiança
● Intervalo de confiança para a média populacional (μ)
quando a variância populacional (σ2) é desconhecida:
α = Nível de confiança (99% ou 95%)
64. Intervalo de Confiança
dados <- c()
a <- 0.95
n <- length(dados)
z <- qnorm( (1 + a) / 2 )
s <- sqrt( var(dados) )
x <- mean(dados)
ic <- c( x - z*s/sqrt(n) , x + z*s/sqrt(n) )
66. Teste T
● Teste de hipótese para médias
● Valida se a diferença entre as médias é significativa ou se
pode ser gerada pelo acaso;
● A probabilidade da diferença ser gerada pelo acaso
H0: μa = μb
Ha: μa ≠ μb
67. Teste T
● Erro Tipo I
○ Rejeitar H0 quando H0 é verdadeira
● Erro Tipo II
○ Aceitar H0 quando H0 é falsa
Situação
H0 Verdadeira H0 Falsa
Decisão
Rejeitar H0 Erro Tipo I Sem Erro
Aceitar H0 Sem Erro Erro Tipo II
68. Teste T
t.test(vetor1, vetor2, conf = .95)
Welch Two Sample t-test
data: vetor1 and vetor2
t = 3.4843, df = 14.894, p-value = 0.00336
alternative hypothesis: true difference in means is not
equal to 0
95 percent confidence interval:
1.861895 7.738105
sample estimates:
mean of x mean of y
113.4 108.6
H0: μa ≠ μb
Ha: μa = μb
70. Teste χ2
● Frequências observadas x Frequências Observadas
● Testa se duas variáveis são independentes ou associadas, e se o grau de
associação é significativo;
● É utilizado para validar se uma variável adere à uma determinada
distribuição:
H0: As freq. observadas não são diferentes das esperadas
Ha: As freq. observadas são diferentes das esperadas
71. Teste χ2
chisq.test(dados, p = distribuição)
H0: “dados” é aderente à
distribuição
Ha: “dados” não é adere à
distribuição
Chi-squared test for given probabilities
data: x
X-squared = 15.68, df = 2, p-value =
0.0003937
72. Teste χ2
● Se χ2 calculado >= χ2 tabelado: Rejeita-se H0.
● Se χ2 calculado < χ2 tabelado: Aceita-se H0.
● Observações:
○ As amostras devem ser independentes;
○ Os itens de cada amostra devem ser selecionados aleatoriamente;
○ As observações devem ser frequências ou contagens.
● O número de graus de liberdade, nesse caso é assim calculado:
○ G.L. = número de classes - 1
73. Teste χ2
amostra <- c(14, 25, 81)
probabilidades <- c(1/4, 1/8, 5/8)
chisq.test(amostra, p = probabilidades)
74. Teste de Correlação
● Testa se há correlação significativa (não
casual) entre duas variáveis:
H0: Não existe correlação (ρ = 0)
Ha: Existe correlação (ρ ≠ 0)
75. Teste de Correlação
cor.test(variável, variável)
Pearson's product-moment correlation
data: anos and diversidade
t = 4.3848, df = 8, p-value = 0.002334
alternative hypothesis: true correlation
is not equal to 0
95 percent confidence interval:
0.4474675 0.9613274
sample estimates:
cor
0.840339
H0: Não existe correlação (ρ = 0)
Ha: Existe correlação (ρ ≠ 0)
76. Teste de Correlação
anos <- c(0, 1, 3, 5, 9, 12, 13, 15, 21, 25)
diversidade <- c(0, 0.19, 0.15, 1.49, 1.10, 1.12, 1.61, 1.42,
1.48, 1.92)
cor.test(anos, diversidade)
Fonte: (BASLEY, 2004, p. 45)
78. CRAN. The Comprehensive R Archive Network. Disponível em: http://cran.r-project.
org/. Acesso em: 01/03/2014.
BASLEY, Colin R. Bioestatística Usando o R: Apostila de exemplos para o
biólogo. Bragança: UFPA, 2004. Disponível em :http://cran.r-project.
org/doc/contrib/Beasley-BioestatisticaUsandoR.pdf. Acesso em: 10/03/2014.
BATISTA, João L. F.; PRADO, Paulo I. K. Introdução ao R: Apostila on-line.
Disponível em: http://ecologia.ib.usp.br/bie5782/doku.php?id=bie5782:
03_apostila:start. Acesso em: 09/03/2014.
WILD, Christopher J.; SEBER, George AF. Encontros com o acaso: um
primeiro curso de análise de dados e inferência. Rio de Janeiro: LTC, 2004.