análise exploratória de dados univariados introdução à ... · análise exploratória de dados...
TRANSCRIPT
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ísticaVariávelAmostra
� 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
4
Dados no R
V1 V2 ... Vk
1
2
...
n
Data 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 fisetosa 50 0.3333333versicolor 50 0.3333333virginica 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 FiN 5300 0.04457527 0.04457527B1 30700 0.25820017 0.30277544B2 28800 0.24222035 0.54499579B3 22000 0.18502944 0.73002523Sec 18600 0.15643398 0.88645921Sup 13500 0.11354079 1.00000000
10
Variável qualitativa ordinal
� Indicadores de localização
– quartis, moda, média////////// (porquê?)
> quantile(nivel) #dá erroError 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 (altura proporcional 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.384115attr(,"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.586300attr(,"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
xnobs 12.000000NAs 0.000000Minimum 0.000000Maximum 50.0000001. Quartile 2.7500003. Quartile 8.250000Mean 8.750000Median 5.500000Sum 105.000000SE Mean 3.859512LCL Mean 0.255271UCL Mean 17.244729Variance 178.750000Stdev 13.369742Skewness 2.384115Kurtosis 4.586300
23
Exercí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, 51, 3, 3, 2, 2, 4, 3, 3, 2, 2, 4, 4, 3, 6, 3, 3, 2, 2, 43, 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. 28
Análise exploratória de dados bivariados
� Objectivo: evidenciar as relações (eventualmente existentes) entre variáveis através de indicadores numéricos e representações gráficas
– n observações do par de variáveis (x,y), ou seja n pares de valores (x
i,y
i) ,i=1,...,n
– admite-se que ambas as variáveis são quantitativas
29
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 origemPetal.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.