Curso
Introdução à Análise Estatística com
Sessão 3 – Análise exploratória de dados
Maria João Martins
Setembro 2012 Instituto Superior de Agronomia
Grupo de Matemática 2
Análise exploratória de dados univariados
PopulaçãoUnidade Estatística Variável
Amostra
Objectivo: caracterizar um conjunto de indivíduos, tentando descobrir regularidades e singularidades
Notas:
– as conclusões obtidas são apenas válidas para o conjunto de indivíduos considerados explicitamente no estudo.
– os resultados podem usar-se para formular hipóteses sobre a população, que terão que ser avaliadas posteriormente.
3
Natureza dos dados (e respectiva variável)
Qualitativa – nominal – ordinal Quantitativa – discreta – contínua 4Dados no R
V1 V2 ... Vk 1 2 ... nData frame com k componentes de comprimento n
Cada uma das variáveis vai ser estudada separadamente. n indivíduos
k características ou variáveis
5
Representação dos dados
Identificação da natureza da variável
Condensação sob a forma de tabela de frequências
Cálculo de indicadores numéricos de localização, dispersão e forma
Representação gráfica: diagrama de barras, histograma, diagrama de extremos e quartis
6
Variável qualitativa nominal
Dados: Iris (do pacote datasets do R)
> ?iris
> head(iris) #mostra primeiras linhas
> str(iris$Species) [1] "factor"
– Variável Species é qualitativa nominal. Tabela de frequências
> ni<-table(iris$Species) #frequencia abs > fi<-ni/sum(ni) > cbind(ni,fi) ni fi setosa 50 0.3333333 versicolor 50 0.3333333 virginica 50 0.3333333 7
Variável qualitativa nominal
Indicadores
– moda (faz sentido para estes dados?) Representação gráfica – gráfico de barras
> plot(iris$Species)
> barplot(ni) #igual ao anterior
8
Variável qualitativa ordinal
Dados: Nível de escolaridade mais elevado completo e sexo da população activa nos Açores (INE, 16 Fev 2011). Os dados estão armazenados data frame escolar, que se encontra no workspace “escolaridade.RData”.
– Variável nivel é qualitativa ordinal. > load("escolaridade.RData") > str(escolar) > attach(escolar) > table(nivel) nivel N B1 B2 B3 Sec Sup 5300 30700 28800 22000 18600 13500
9
Variável qualitativa ordinal
Tabela de frequências > ni<-table(nivel) > fi<-ni/sum(ni) > Fi<-cumsum(fi) > cbind(ni,fi,Fi) ni fi Fi N 5300 0.04457527 0.04457527 B1 30700 0.25820017 0.30277544 B2 28800 0.24222035 0.54499579 B3 22000 0.18502944 0.73002523 Sec 18600 0.15643398 0.88645921 Sup 13500 0.11354079 1.00000000 10
Variável qualitativa ordinal
Indicadores de localização – quartis, moda, média////////// (porquê?) > quantile(nivel) #dá erro
Error in quantile.default(nivel) : factors are not allowed > quantile(as.numeric(nivel), type=2) 0% 25% 50% 75% 100% 1 2 3 5 6 > names(ni[ni==max(ni)]) #moda [1] "B1" 11
Variável qualitativa ordinal
Representação gráfica
– Gráfico de barras > barplot(ni) – Gráficos de barras sobrepostos
Objectivo: comparar o nível de escolaridade por sexo > table(escolar$sexo,nivel) nivel N B1 B2 B3 Sec Sup H 4600 21300 18300 12800 8200 4900 M 700 9400 10500 9200 10400 8600 > barplot(table(escolar$sexo,nivel), beside=T,col=c("blue","pink")) 12
Variável quantitativa
Dados:
chickwts (do pacote datasets do R)> head(chickwts) #mostra primeiras linhas
– Variável weight é quantitativa contínua.
Tabela de frequências
– agrupar os dados em classes (quantas? Regra de Sturges) quando os dados são de natureza contínua ou de natureza discreta com muitos valores distintos.
13
Variável quantitativa
Representação gráfica – histograma
> ?hist> attach(chickwts)
> hist(weight) #observar simetria e possivel existencia de duas modas
> hist(weight,plot=F) #devolve uma lista breaks – limites das classes
counts – frequência absoluta de cada classe
intensities – (frequência relativa / amplitude) de cada classe
density – idem
mids – ponto médio de cada classe
equidist – lógico que indica se as classes têm ou não amplitude
constante 14
Variável quantitativa
Nota: se as classes têm amplitude variável, a área de cada
classe deve ser proporcional à frequência (alturaproporcional a frequência/amplitude) – por omissão, no R > hist(weight,breaks=
c(seq(100,250,50),275,seq(300,450,50)))
#comparar as alturas das classes 3 e 4
> hist(weight,breaks=
c(seq(100,250,50),275,seq(300,450,50)), freq=T) #ver mensagem
> hist(weight,prob=T,ylab="Probabilidade") > lines(density(weight))
#adiciona curva densidade estimada por kernel
15
Exercício 1
Fazer a tabela de frequências da variável weight (do pacote de dados chickwts), usando a lista que resulta do comando hist com plot=F.
16
Variável quantitativa
Indicadores de localização: média, média aparada, mediana, quantis, moda
Exemplos
:
> x <- c(0:10, 50) > mean(x)
[1] 8.75
> mean(x,trim=0.1) #igual a mean(x[2:11]) [1] 5.5 > median(x) [1] 5.5 > quantile(x) 0% 25% 50% 75% 100% 0.00 2.75 5.50 8.25 50.00 > quantile(x,type=2) 0% 25% 50% 75% 100% 0.0 2.5 5.5 8.5 50.0
17
Variável quantitativa
Nota: para dados de natureza contínua ou de natureza discreta com muitos valores distintos, a moda é dada pela classe modal ou por um valor da classe modal, calculado por regras empíricas.
Indicadores de dispersão: variância, desvio padrão, coeficiente de variação (dispersão relativa), amplitude total, amplitude inter-quartil, mediana dos desvios absolutos Exemplos: > x <- c(0:10, 50) > var(x) #variancia [1] 178.75 18
Variável quantitativa
> sd(x) #desvio padrão [1] 13.36974> sd(x)/mean(x) #coeficiente de variacao [1] 1.527971
> max(x)-min(x) #amplitude total [1] 50
> IQR(x) #amplitude inter-quartil [1] 5.5
> sort(abs(x-median(x)))
[1] 0.5 0.5 1.5 1.5 2.5 2.5 3.5 3.5 4.5 4.5 5.5 44.5
> mad(x) #igual a median(abs
#(x-median(x)))*constante [1] 4.4478
19
Variável quantitativa
Indicadores de forma: coeficientes de assimetria e
de achatamento
Necessita do package
fBasics
Exemplos:
> x <- c(0:10, 50)
> skewness(x) #coeficiente de assimetria [1] 2.384115
attr(,"method") [1] "moment"
Observação: • simetria: média=mediana=moda • assimetria positiva: média>mediana>moda
• assimetria negativa: média<mediana<moda 20
Variável quantitativa
> kurtosis(x) #coeficiente de achatamento [1] 4.586300
attr(,"method") [1] "excess"
Observação: é uma medida da concentração da distribuição dos dados junto ao centro, em comparação com a distribuição normal.
• igual a zero: como a normal
• positivo: mais aguçada do que a normal • negativo: menos aguçada do que a normal
21
Variável quantitativa
Resumos de indicadores Exemplos:
> summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max. 0.00 2.75 5.50 8.75 8.25 50.00
> basicStats(x) #do package fBasics 22
Variável quantitativa
x nobs 12.000000 NAs 0.000000 Minimum 0.000000 Maximum 50.000000 1. Quartile 2.750000 3. Quartile 8.250000 Mean 8.750000 Median 5.500000 Sum 105.000000 SE Mean 3.859512 LCL Mean 0.255271 UCL Mean 17.244729 Variance 178.750000 Stdev 13.369742 Skewness 2.384115 Kurtosis 4.586300 23Exercício 2
Calcular todos os indicadores referidos para os dados
da variável
weight
, do pacote de dados
chickwts
.
24
Variável quantitativa
Análise por sub-grupos de dados definidos por factores > tapply(weight,feed,summary) #feed e' factor
Representação gráfica – diagrama de extremos e quartis > boxplot(weight, main="Pesos dos frangos",
+ horizontal=T)
Observar que não existem valores atípicos e a distribuição é simétrica
> x <- c(0:10, 50)
> boxplot(x, horizontal=T) #observar valor atipico, 50
25
Variável quantitativa
Diagrama de extremos e quartis por sub-grupos de dados definidos por factores
> boxplot(weight~feed,
main="Pesos dos frangos por dieta")
A expressão weight~feed
é um objecto do tipo formula.
Genericamente, numa fórmula
variavel~expressao
em que variavel representa a variável dependente e
expressao é uma expressão que indica de que variável(eis) depende variavel. Exemplo: y~x1+x2.
26
Exercício 3
Relativamente à variável
Petal.Width
do
conjunto de dados
iris
(do R), obter para cada
espécie de lírio:
a) tabela de frequências,
b) histograma,
c) indicadores de localização, dispersão e forma,
d) diagrama de extremos e quartis.
27
Exercício 4
Num inquérito realizado a um grupo de alunos,
perguntou-se qual era o número de irmãos que
tinham. Obtiveram-se os seguintes resultados:
3, 3, 2, 2, 8, 5, 2, 4, 3, 1, 4, 5, 3, 3, 3, 3, 3, 2, 5 1, 3, 3, 2, 2, 4, 3, 3, 2, 2, 4, 4, 3, 6, 3, 3, 2, 2, 4 3, 4, 3, 2, 2, 4, 4, 3, 3, 4, 2, 5, 4, 1, 2, 8, 2 ,3, 3, 4
a) Represente graficamente este conjunto de dados.
b) Calcule a média, a mediana e a moda.
c) Estude a dispersão dos dados.
d) Analise a simetria da distribuição.
28Análise exploratória de dados bivariados
Objectivo
: evidenciar as relações (eventualmente existentes)
entre variáveis através de indicadores numéricos erepresentações gráficas
– n observações do par de variáveis (x,y), ou seja n pares de valores (xi
,
yi) ,i=1,...,n29
Análise exploratória de dados bivariados
Dados: iris (do pacote datasets do R) x – largura das pétalas (Petal.Width)
y – comprimento das pétalas (Petal.Length) Diagrama de dispersão ou nuvem de pontos
> attach(iris)
> plot(Petal.Length~Petal.Width)
> plot(Petal.Width,Petal.Length) #equivalente Observa-se uma tendência linear positiva relativamente forte.
30
Análise exploratória de dados bivariados
Covariância e coeficiente de correlação
> cov(Petal.Length,Petal.Width) [1] 1.295609> cor(Petal.Length,Petal.Width) [1] 0.9628654
Por omissão cor calcula o coeficiente de correlação usual, de Pearson. Um indicador mais robusto (menos sensível a observações atípicas) é o coeficiente de correlação de Spearman – usa apenas as ordens (e não os valores) das observações. Pode ser usado em variáveis qualitativas ordinais.
> cor(Petal.Length,Petal.Width,
+ method="spearman")
[1] 0.9376668
31
Análise exploratória de dados bivariados
Regressão linear simples
Existindo uma correlação linear forte entre x e y, faz sentido determinar a equação da recta dos mínimos quadrados. Em R o modelo linear simples exprime-se através de
lm(y~x) ou lm(y~1+x)
> lm(Petal.Length~Petal.Width) intercept: ordenada na origem
Petal.Width: coeficiente associado à variável
Petal.Width, ou seja o declive da recta. Equação da recta: y=1.084+2.23x - interpretar!
Para informações sobre a qualidade do modelo: > summary(lm(Petal.Length~Petal.Width))
32
Análise exploratória de dados bivariados
Sobrepor a recta de regressão à nuvem de pontos
> plot(Petal.Length~Petal.Width)> abline(lm(Petal.Length~Petal.Width))
“Matriz” de diagramas de dispersão
Representação das nuvens de pontos para todos os pares de variáveis
> plot(iris[-5]) > detach(iris)
33
Exercício 5
O ficheiro
http://knuth.uca.es/repos/ebrcmdr/bases_datos/reproduccion_vir.dat contém dados relativos ao número de vírus reproduzidos em função do tempo (minutos), para diferentes tipos de meio de cultura (ácido, neutro ou básico).
a) Leia o ficheiro para a data frame virus.df.
b) Construa o diagrama de dispersão do número de vírus em função do tempo, representando os pontos que dizem respeito aos três tipos de meio com cores diferentes.
c) Calcule os coeficientes de correlação entre as variáveis “número de vírus” e “tempo” para cada tipo de meio de cultura. Comente tendo em conta a alínea anterior.
d) Determine os coeficientes da recta de regressão de “número de vírus” vs. “tempo” para os dados respeitantes ao meio básico. Qual é a precisão da recta de regressão? Interprete.
34
Bibliografia
The R Manuals, editados por R Development Core Team, Versão 2.14.1 (Dezembro de 2011)
(http://cran.r-project.org/manuals.html).
“Introdução à Programação em R”, Luis Torgo (Outubro de 2006). Contributed Documentation disponível em
http://cran.r-project.org/other-docs.html.
“Análise Exploratória de Dados”, Bento Murteira, McGraw-Hill, 1999.
“Introdução à Probabilidade e à Estatística”, Dinis Pestana e Sílvio Velosa, Fundação Calouste Gulbenkian, 2002.