Vous êtes sur la page 1sur 15

Estatstica Circular

Principais anlises utilizando o R

Julia Caram Sfair (juliacaram@gmail.com)

ndice:

1.

Introduo ............................................................................................................................................ 3

2.

Preparando os dados no Excel .............................................................................................................. 4

3.

Importando os dados no R .................................................................................................................... 6

4.

Abrindo o pacote circular .................................................................................................................. 7

5.

Manipulando e visualizando os dados ................................................................................................... 8

6.

Estatstica descritiva ............................................................................................................................10

7.

Distribuio dos dados ........................................................................................................................11

8.

Comparando amostras .........................................................................................................................12

9.

Relaes entre variveis ......................................................................................................................15

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

1.

Introduo

Esse pequeno tutorial tem por objetivo ajudar nas anlises mais comuns em estatstica circular.
A estatstica circular vem sendo bastante utilizada em estudos com dados fenolgicos. Mas tambm
pode ser utilizada para dados direcionais no espao.
O principal software de anlises circulares o Oriana (http://www.kovcomp.co.uk/oriana/ ).
Entretanto, o programa possui o cdigo fechado e no gratuito. Alm do Oriana, a verso 5 do
Biostat (http://www.mamiraua.org.br/download/) tambm trabalha com algumas anlises circulares.
Esse software possui duas vantagens: gratuito e totalmente em portugus. Entretanto, ele costuma ter
alguns bugs e no possui captulo para estatstica circular em seu arquivo de ajuda. H ainda um
pacote para Matlab para estatstica circular
(http://www.mathworks.com/matlabcentral/fileexchange/10676) e um programa chamado Axis
(http://www.pisces-conservation.com/index.html?softaxis.html$softwaremenu.html ). Vale lembrar
que tanto o pacote para Matlab quanto o Axis so pagos.
Devido a esses pequenos problemas com programas estatsticos com interface amigvel, este
tutorial apresenta os principais testes estatsticos circulares para ambiente de programao R
(http://cran.r-project.org/). Esse ambiente tem sido cada vez mais utilizado para anlises estatsticas,
pois (1) totalmente gratuito, (2) o cdigo aberto e constantemente corrigido, (3) permite que o
usurio escreva as suas prprias funes, dando maior liberdade em relao a softwares de interface
amigvel. Esse ambiente possui inmeros pacotes com funes estatsticas especficas. Neste tutorial
usaremos o pacote chamado circular, especfico para estatstica circular. Utilizamos tambm como
base alguns testes descritos em Zar (1999). O pacote utilizado no possui todos os testes apresentados
no livro, principalmente os testes no-paramtricos. Esses testes devem ser implementados em verses
futuras deste tutorial.
A primeira verso desse tutorial possui alguns problemas ainda. Peo que as pessoas que o
utilizem me dem algum retorno com crticas e sugestes por meio do e-mail juliacaram@gmail.com .
Recomendo que esse tutorial seja utilizado conjuntamente com os seguintes livros:
DAVIS, J.C. 1986. Statistics and Data Analysis in Geology, 2nd edn. John Wiley & Sons, New
York.
MORELLATO, L. P. C.; ALBERTI, L. F.; HUDSON, I. Applications of circular statistics in
plant phenology: a case studies approach.. In: Phenological Research: Mathematical and
Statistical Methods, Design and Applications. KEATLEY M.; HUDSON I. (Org.).
Germany: Springer, 2009
ZAR, J. H. 1999. Biostatistical analysis. Upper Saddle River : Prentice Hall, Princeton
Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

2.

Preparando os dados no Excel

Assim como o Oriana e o Biostat, o pacote que trabalha com estatstica circular no R trabalha
diretamente com as freqncias de ngulos. Voc pode ter seus dados de diferentes formas no Excel.
Assim:
freqncia florao borda

freqncia florao interior

120

30

150

180

180

210

180

210

210

240

210

240

210

240

240

240

240

270

240

270

240

270

270

270

270

300

270

300

270

330

300
300
300
330

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

Ou assim:
ms

ngulo

freqncia florao borda

freqncia florao interior

janeiro

fevereiro

30

maro

60

abril

90

maio

120

junho

150

julho

180

agosto

210

setembro

240

outubro

270

novembro

300

dezembro

330

No primeiro caso, o pesquisador precisa montar a planilha na mo, o que trabalhoso. A


segunda planilha mais fcil de montar e pode ser facilmente manipulada no R. Vamos considerar a
segunda planilha nesse tutorial.

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

3.

Importando os dados no R

O R capaz de abrir diferentes tipos de arquivos. Darei o exemplo para um arquivo salvo como
.csv . Para abrir esse arquivo, use o seguinte comando no R:

> dados <- read.table("A:/dados.csv", header = T, sep = ";")


Onde A:/dados.csv deve conter as pastas onde est o arquivo mais o nome do arquivo.

Para detalhes de como importar dados para o R, vasculhe na internet. H inmeros tutoriais
detalhados sobre o assunto.

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

4.

Abrindo o pacote circular

Existem alguns pacotes que trabalham com estatstica circular no R:


CircNNTSR

CircNNTSR: An R package for the statistical analysis of


circular data using nonnegative trigonometric sums
(NNTS) models

CircSpatial

Functions For Circular Spatial Data

CircStats

Circular Statistics, from "Topics in circular Statistics"


(2001)

circular

Circular Statistics

Como o objetivo desse tutorial trabalhar com os testes estatsticos circulares mais elementares,
vamos nos ater no pacote circular, que cumpre muito bem o objetivo. Para instalar esse pacote, faa
o seguinte:

1.

Instale-o

>install.packages(circular)
Escolha o mirror mais prximo (para que o trfego de dados seja rpido). Em seguida, clique em
circular e espere o R fazer o resto. Voc s precisa instalar o pacote uma vez.
2.

Chame o pacote

>library(circular)
Faa isso para toda vez que abrir o R e precisar utilizar o pacote

3. Abra o help do pacote


> ?circular
Sempre utilize o R com o help aberto. Veja o tanto de funes que o pacote possui. As pginas
de help do R seguem sempre o mesmo padro. Procure em outros tutoriais para ver como se organiza
a pgina de help.

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

5.

Manipulando e visualizando os dados

Nossa planilha deve ter uma coluna para os ngulos e duas colunas para freqncias. Para fazer
as anlises no R, precisamos apenas dos valores dos ngulos. Para fazer isso, s usar a funo rep
> borda <- rep(dados$ngulo, dados$frequencia.florao.borda)
> interior <- rep(dados$ngulo, dados$frequencia.florao.interior)

Para trabalharmos com os dados corretamente, temos que transform-los em radianos:


>borda.rad <- rad(borda)
>interior.rad <- rad(interior)

O prximo passo transformar os dados em circular:


> borda.circ <- as.circular(borda.rad)
> interior.circ <- as.circular(interior.rad)

Dessa maneira, criamos dois vetores, cujos valores dos ngulos se repetem. Podemos, dessa
maneira, comear a visualizar os dados. Para isso, vamos colocar os dados no grfico:
>plot.circular(cbind(borda.circ, interior.circ), rotation = "clock", units = "rads")

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

Podemos tambm visualizar a freqncia dos ngulos:


>rose.diag(cbind(interior.circ, borda.circ))

Como possvel perceber, aparentemente h uma diferena no incio e no fim da florao da


borda e do interior.

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

10

6.

Estatstica descritiva

A estatstica circular possui as mesmas medidas de mdia, varincia, intervalo de confiana, etc.
que a estatstica no circular. Lembre-se de transformar seus dados em radianos (funo rad) e
transformar os objetos para o tipo circular (funo as.circular).

1.

Mdia ()

>mean(interior.circ)

2.

Comprimento do vetor mdio (r)

>rho.circular(interior.circ)

3.

Varincia

>var(interior.circ)

4.

Desvio angular

> sqrt(2*(1-rho.circular(interior.circ)))

5.

Desvio padro angular

>sqrt(-2*log(rho.circular(interior.circ)))

6.

Mediana

>median(interior.circ)

7.

moda (e freqncia dos dados)

>table(interior.circ)

8.

Intervalo de confiana

>mle.vonmises.bootstrap.ci(interior.circ)
Ateno: os valores so um pouco diferentes do Biostat, pois essa funo do R faz um bootstrap
dos dados.

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

11

7.

Distribuio dos dados

Podemos testar a Uniformidade e a Normalidade dos dados:

1.

Uniformidade dos dados

Teste de Rayleigh
>rayleigh.test(interior.circ)

H ainda o teste de Rao e de Kuiper para uniformidade dos dados.

Obs: Teste de Rayleigh para um ngulo especfico. O pesquisador pode estar interessado em
saber se a poca de florao concentra-se na estao seca, por exemplo:
>rayleigh.test(interior.circ, mu=circular(180))
onde 180 o ngulo referente estao seca.

2.

Normalidade dos dados:

>watson.test(interior.circ, dist = vonmises)

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

12

8.

Comparando amostras

Podemos comparar duas ou mais amostras:

1.

Duas amostras:

O pacote possui o teste apenas para dados paramtricos, ou seja, cujo pressuposto : normalidade dos
dados e disperso das populaes so as mesmas entre as duas amostras. Esse teste chamado de
Watson (Watson-Williams, segundo Zar 1999)
>watson.two.test(borda.circ, interior.circ)

Segundo o Zar (1999), esse teste tambm pode ser utilizado para distribuies no paramtricas.
Recomenda-se apenas que utilize o teste equivalente no paramtrico quando a distribuio violar
claramente os pressupostos de normalidade e disperso dos dados (como uma distribuio bimodal).

Implementar o teste no paramtrico

2.

Mais de duas amostras

O pacote circular no possui o teste de Watson-Williams para mais de duas amostras. Entretanto, o Zar
(1999) apresenta as frmulas, que podem ser aplicadas perfeitamente no R. (implementar)

Em contrapartida, o pacote circular apresenta a anlise de varincia para dados circulares:


> aov.circular(x = borda.circ, group = c(rep(0, 7), rep(1, 9)))

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

13

Obs: A anlise de varincia pode ser utilizada para valores de intensidade. Considere uma matriz
de intensidade estipulada pelo autor (0, 1, 2, 3, 4, sendo zero a menor e quatro a maior intensidade):

Intensidade
ngulo (em

90

180

210

240

graus))

Onde cada valor da clula em branco o nmero de indivduos da espcie com dado valor de
intensidade em determinado ms (ngulo).

Podemos transformar essa matriz em:


Intens
idade

ngulo (em
graus)

90

90

90

90

90

240

240

90

90

180

180

210

210

90

90

90

210

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

14

210

240

90

180

210

210

210

210

240

240

90

180

180

180

que entendida pelo R. Aps transformar os dados em radiados, s aplicar a funo de anlise
de varincia para os dados.

Implementar funo para mais de duas amostras para dados no paramtricos

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

15

9.
1.

Relaes entre variveis

Correlao

O pacote possui a correlao apenas para entre dados circulares:


>cor.circular(borda.circ, interior.circ[1:16], test = T)
Os vetores devem ter o mesmo comprimento. Para realizar o teste estatstico, usar test = T)
O pacote no possui uma funo para correlaes circulares-lineares. Escrever uma funo para
isso...

Escrever funo para correlacao no paramtrica

2.

Regresso

O pacote possui funes para regresses linear-circular e circular-circular


1. circular-circular:
>lm.circular(borda.circ, interior.circ[1:16], type = "c-c")

2.circular-linear
>lm.circular(borda.circ, rnorm(16), init = c(1), type = "c-l")

Para qualquer dvida, crtica e sugesto: juliacaram@gmail.com

Vous aimerez peut-être aussi