Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Beasley - Bioestatistica Usando R, Notas de estudo de Estatística

A Estatística aplicada na Biologia

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 05/12/2009

tatiane-guimaraes-5
tatiane-guimaraes-5 🇧🇷

3 documentos

1 / 56

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
BIOESTATÍSTICA USANDO R
APOSTILA DE EXEMPLOS PARA O BIÓLOGO
Colin Robert Beasley
beasley@ufpa.br
Universidade Federal do Pará,
Campus de Bragança
Laboratório de Moluscos
Bragança
2004
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38

Pré-visualização parcial do texto

Baixe Beasley - Bioestatistica Usando R e outras Notas de estudo em PDF para Estatística, somente na Docsity!

BIOESTATÍSTICA USANDO R

APOSTILA DE EXEMPLOS PARA O BIÓLOGO

Colin Robert Beasley

beasley@ufpa.br

Universidade Federal do Pará,

Campus de Bragança

Laboratório de Moluscos

Bragança

O QUE É R?^1

Introdução a R R é uma linguagem e ambiente para computação estatística e gráficos. É um projeto GNU que é similar à linguagem e ambiente S que foi desenvolvida no Bell Laboratories (anteriormente AT&T, agora Lucent Technologies) por John Chambers e colegas. R pode ser considerada como uma implementação diferente da S. Há algumas diferenças importantes, mas muito código para S funciona inalterado em R. R fornece uma ampla variedade de técnicas estatísticas (modelagem linear e não linear, testes estatísticos clássicos, análise de séries temporais, classificação, agrupamento, ...) e gráficos, e é altamente extensível. A linguagem S é muitas vezes o veículo de escolha para pesquisa em metodologia estatística, e R fornece uma rota Open Source para participação naquela atividade. Um dos pontos fortes de R é a facilidade com que gráficos bem-desenhados com qualidade para publicação podem ser produzidos, incluindo símbolos matemáticos e fórmulas quando necessário. Muitos cuidados têm sido feitos sobre as definições padrão para as menores escolhas em desenho, entretanto o usuário retém controle total. R é disponível como Software Livre sob os termos da Licença Pública Geral GNU da Free Software Foundation na forma de código fonte. Ela compila e funciona em uma grande variedade de plataformas UNIX e sistemas similares (incluindo FreeBSD e Linux). Ele compila e funciona em Windows 9x/NT/2000 e MacOS. O ambiente R R é um conjunto integrado de facilidades de software para manipulação de dados, cálculo e visualização gráfica. Ele inclui

  • uma facilidade efetiva para manipulação e armazenagem de dados,
  • um conjunto de operadores para cálculos sobre quadros de dados, em particular as matrizes,
  • uma grande e coerente coleção integrada de ferramentas intermediárias para análise de dados,
  • facilidades gráficas para análise de dados e visualização na tela ou impressa,
  • uma linguagem de programação bem desenvolvida, simples e efetiva que inclui condicionais, alças, funções recursivas definidas pelo usuário, e facilidades para entrada e saída. O termo “ambiente” pretende caracterizar R como um sistema totalmente planejado e coerente, em vez de uma aglomeração de ferramentas muito específicas e inflexíveis, como é o caso com outros softwares de análise de dados. R, bem como S, é desenhada ao redor de uma verdadeira linguagem de computador, e permite aos usuários acrescentar funcionalidade adicional por definição de novas funções. Muito do sistema é escrita 1 Tradução da página What is R? (O que é R) no site do Projeto R: http://www.r-project.org/about.html

(http://www.r-project.org) há manuais e questões freqüentemente perguntadas (FAQ's) e estes estão também disponíveis localmente quando R é instalado. Há também um boletim, páginas de ajuda, e listas de publicações em revistas científicas. As listas de e-mail são fontes extremamente úteis de informações sobre como executar tarefas em R, além de dicas úteis de como resolver problemas em que não há ajuda documentada. Veja a Lista de Recursos de Ajuda na pagina 3 para iniciar aprendizagem do R. Referência é feita aos exemplos tirados do livro de Fowler & Cohen (1990). OS OBJETIVOS DESTA APOSTILA Esta apostila foi originalmente escrita para alunos da disciplina de Biometria do curso de Ciências Biológicos do Campus de Bragança, Universidade Federal do Pará, Brasil. Depois achei que também poderia ser útil para alunos de biologia (e de outros cursos) em outras instituições de ensino superior no Brasil. Assim, gostaria contar com o apoio dos leitores quanto às sugestões, críticas e melhorias no texto. Fornecer exemplos do uso do R no contexto de biologia porque, em geral, há carência de exemplos biológicos na documentação atual do R. Estimular a aprendizagem da estatística dando exemplos claros e simples da funcionalidade e flexibilidade do R. Estimular os alunos aproveitarem do Software Livre e portanto evitando as restrições de softwares comerciais e o uso não autorizado destes. LISTA DE RECURSOS DE AJUDA Das páginas do Projeto R na Internet http://r-project.org. O home page do projeto R http://cran.br.r-project.org O servidor mirror (espelho) brasileiro (UFPr) http://r-project.org/mail r-help é a lista mais apropriado para usuários http://cran.r-project.org/other-docs.html documentos de ajuda e tutoriais em vários formatos Nesta última página é particularmente recomendado o documento R for Beginners (Inglês) da autoria de Emanuel Paradis, ou R para Principiantes (a tradução da R for Beginners para o Espanhol feita por Jorge A. Ahumadal). Outras páginas na Internet sobre R http://www.agr.kuleuven.ac.be/vakken/StatisticsByR/index.htm Introdução à análise de dados usando R http://www.math.csi.cuny.edu/Statistics/R/simpleR/index.html Introdução usando o pacote Simple em R http://www.est.ufpr.br/Rtutorial/contents.html Tutorial sobre R em Português Algumas páginas chaves sobre Software Livre (SL) http://www.fsf.org/home_pt.html Free Software Foundation (GNU) http://www.softwarelivre.rs.gov.br Site sobre SL do Governo do RS http://www.softwarelivre.unicamp.br/sl Site sobre SL da UNICAMP, SP

http://gufsc.lcmi.ufsc.br Grupo de usuários de SL da UFSC http://focalinux.cipsga.org.br/guia/inic_interm/ch-intro.htm Introdução ao GNU/Linux Livros Dalgaard P (2002) Introductory Statistics with R. Springer, New York, ISBN 0-387-95475-9. Fox J (2002) An R and S-PLUS Companion to Applied Regression. Sage Publications, ISBN 0-761- 92280-6 (softcover) ou 0-761-92279-2 (hardcover) Comandos de ajuda do R

> help.start() inicia documentação na forma de arquivos html visualizados no seu browser

> help ( tópico ) inicia uma janela de ajuda sobre tópico

> ?( tópico ) a mesma coisa

DICAS GERAIS ANTES DE COMEÇAR

Sempre iniciar no seu diretório de trabalho (p. ex. meuprojeto) Em Windows: File=> Change dir e seleciona C:\meunome\meuprojeto ou alternativamente, usa

> setwd(“C:\Meus Documentos\meuprojeto”)

Em Linux:

> setwd(“/home/meunome/meuprojeto”)

Texto pode ser digitado após o prompt de comando >

Funções em R sempre são acompanhados com parênteses ()

Há uma distinção entre minúsculas e MAIÚSCULAS. Você pode ver o histórico de comandos colocados por você durante a sua sessão pressionando a tecla da seta para cima (↑). Isso é muito útil para verificar novamente os comandos anteriores ou reeditá-los. Pode copiar e colar na linha de comando: primeiro seleciona o texto a ser copiado e, em Windows clique com o botão direito do mouse, selecione Copy e clique novamente no botão direta e selecione Paste. Alternativamente use Crtl+C e Ctrl+V. Para copiar e colar em Linux, clique sobre o texto selecionado com o botão esquerdo do mouse com a tecla Ctrl pressionada (ou Ctrl+C). Para colar, clique com o botão do meio (ou os dois no mesmo tempo, se não tiver um mouse com três botões).

Você pode designar nomes a objetos R usando a combinação “<-”

CÁLCULOS SIMPLES

Usando a linha de comando de R podemos somar..

[1] 2

..subtrair,

[1] 8

..multiplicar,

[1] 12

..dividir,

[1] 4.

e realizar cálculos mais complexos como se fosse uma calculadora científica.

> sin(5)

[1] -0.

Considere o seguinte cálculo:

[1] 4.

Erros podem ocorrer quando R não entende o que foi digitado

Error: syntax error

> sib(5)

Error: couldn't find function "sib"

Lembrando resultados: podemos designar um nome ao resultado do cálculo

> 47/11-> resultado

> resultado

[1] 4.

> resultado*

[1] 47

> resultado+42->resultado

> resultado

[1] 46.

Cálculos repetitivos podem ser automatizados

> x<-

> x

[1] 17

> for (i in 1:5) {x+2->x}

> x

[1] 27

Para ir de x=17 e chegar a x=27, o número 2 foi somado cinco vezes ao valor de x que foi armazenado cada vez como x. O cálculo a mão seria: 17+2=19, 19+2=21, 21+2=23, 23+2=25, 25+2= A seqüência de números 1 a 5 pode ser obtida usando

[1] 1 2 3 4 5

Podemos designar x como a seqüência 1 a 5

> x<-1:

> x

[1] 1 2 3 4 5

Podemos calcular com a seqüência x

> x+

[1] 3 4 5 6 7

É possível somar duas seqüências..

> y<-6:

> y

[1] 6 7 8 9 10

> x+y

[1] 7 9 11 13 15

..ou multiplica-las.

> x

[1] 1 2 3 4 5

> y

[1] 6 7 8 9 10

> x*y

[1] 6 14 24 36 50

Duas seqüências podem ser juntadas para criar uma terceira usando c(). O "c" significa concatenar, ou seja, juntar.

> y[y!=0]

[1] 4 2 1 4 3 3 3 3 4 4 2 2

Determinar o número de observações em um jogo de dados

> length (y)

[17]

Determinar o número de valores igual a zero

> length(y[y==0])

[1] 5

EXPLORAÇÃO PRELIMINAR DOS DADOS

Estatística descritiva, boxplots , gráficos de barra e histogramas. A teoria e os cálculos detalhados de procedimentos nesta seção podem ser encontrados nos Capítulos 3, 4 e 5 de Vieira (1980), 4 e 5 de Levin (1985), 3 a 6 de Fowler & Cohen (1990) e 3 e 4 de Zar (1999). Importar os dados no arquivo de valores separados por virgulas, larvas.csv

> x<-read.csv("larvas.csv")

Renomear as colunas com títulos com acentos e depois mostrar o novo jogo de dados x

> names(x)<-c("Tocantins", "Melgaço", "Ourém", "Irituia", "Guamá")

> x

Obter um resumo das estatísticas descritivas: a observação mínima, 1 a^ quartil (25%), mediana (50%), média aritmética, 3a^ quartil (75%) e a máxima são exibidos para cada amostra

> summary(x)

Tocantins Melgaço Ourém Irituia Guamá Min. : 232.0 Min. : 218.0 Min. : 232.0 Min. : 232.0 Min. : 218. 1st Qu.:255.0 1st Qu.:255.0 1st Qu.:255.0 1st Qu.:255.0 1st Qu.:218. Median :255.0 Median :278.0 Median :255.0 Median :255.0 Median :232. Mean : 251.2 Mean : 265.8 Mean : 251.2 Mean : 251.2 Mean : 229. 3rd Qu.:255.0 3rd Qu.:278.0 3rd Qu.:255.0 3rd Qu.:255.0 3rd Qu.:232. Max. : 255.0 Max. : 289.0 Max. : 255.0 Max. : 255.0 Max. : 255. Podemos representar as estatísticas em uma forma gráfica, o boxplot, mas primeiro vamos importar um novo jogo de dados: massa.csv e mostrar as estatísticas (não mostrados aqui)

> y<-read.csv(“massa.csv”)

> summary(y)

Boxplot mostrando a mediana (linha horizontal, quartis 25 % e 75 % (caixa verde) e observações máxima e mínima (linhas verticais) – Figura1. ylab e xlab são as etiquetas dos eixos y e x, respectivamente.

> boxplot(y, col=3, ylab="Massa(g)", xlab="Local do ninho")

Usa range=0 para não mostrar os outliers (observações extremas representadas como pontos, p. ex. em

amostra D) - Figura 2

> boxplot(y, range=0, col=3, ylab="Massa(g)", xlab="Local do

ninho")

Brincadeira: tente usar diferentes cores variando o parâmetro col

Ajuda geral sobre a função plot utiliza help(plot)

Os dados não são mostrados aqui. Lembra que os valores (e as suas estatísticas!) serão ligeiramente diferentes devido a maneira aleatória de gerar as observações. Calcule o erro padrão e nomeie esta como o objeto R errpad

> errpad<-sd(sim.dados)/sqrt(length(sim.dados))

Calcule o Intervalo de Confiança 95 %. A amostra é grande (n>30) então basta multiplicar o erro padrão pelo valor crítico de z para a probabilidade p=0,

> errpad*1.

[1] 0.4419679 (ou um valor muito parecido)

Calcule o Intervalo de Confiança 95 % para uma pequena amostra (n<30). Neste caso, amostra A do jogo de dados y, é preciso usar o valor crítico de t para a probabilidade 0,05 e com o número de graus de liberdade (gl) apropriado. Lembre: pequenas amostras de dados de contagem talvez precisem ser transformadas antes! O erro padrão da amostra A

> errpad<-sd(y$A)/sqrt(length(y$A))

Obter o valor crítico de t com 9 graus de liberdade. O valor de 2,262 representa o valor crítico da cauda superior com P=0,025. Olhe para um gráfico da curva normal para ver a distribuição da probabilidade em

duas caudas.

> qt(0.025,9,lower.tail=FALSE)

[1] 2.

Intervalo de confiança 95% da amostra A

> errpad*2.

[1] 2.

Se quiser, pode também calcular estatísticas descritivas em planilhas como Gnumeric ou OpenOffice. Mais detalhes sobre o erro padrão e intervalos de confiança podem ser obtidos em Capítulo 14 de Vieira (1980), 7 de Levin e 11 de Fowler & Cohen (1990).

Figura 1. Boxplot dos dados sobre massa Figura 2. O mesmo boxplot sem os outliers (g) de pássaros em quatro locais (A-D). da amostra D. Figura 3. Barplot mostrando as observações cruas individuais de massa (g) da amostra A.

Inicie uma ligação com o jogo de dados z para permitir acesso fácil aos dados.

> attach(z)

NOTA IMPORTANTE: Sempre use detach () antes de ligar um novo jogo de dados, especialmente

se as colunas dos dois jogos tenham nomes idênticas, se não haverá problemas! Plote as médias primeiro com os eixos devidamente etiquetados. Criamos um objeto do gráfico chamado centros que lembra a posição do centro das barras de cada rio. O tamanho das etiquetas dos eixos é reduzida pelo cex.names enquanto o ylim controla o valor mínimo e máximo do eixo-y.

> centros<-barplot(mean(z), cex.names=0.7, xlab="Rios",

ylab="Comprimento médio (±sd)", ylim=c(0,max(mean(z)+sd(z)*2)))

Acrescente as barras de erro como valores de desvio padrão da média

> arrows(centros,mean(z)-sd(z), centros,mean(z)+sd(z), length=0.1,

angle=90, code=3)

Brincadeira: experimente valores diferentes de angle, length e code. Faça o gráfico com uma única

cor para cada barra (p.ex. col=3)

Você deve ver no final um gráfico mostrando as médias de cada amostra e com barras de erro mostrando o desvio padrão – Figura 6 Termine a ligação com o jogo de dados z

> detach(z)

> q()

Figura 6. Média (± desvio padrão) dos dados (larvas.csv) sobre comprimento de larvas de bivalves de água doce em cinco diferentes rios amazônicos.

TRANSFORMAÇÃO DE OBSERVAÇÃOES

Excelentes discussões sobre transformações de dados podem ser encontrados em Capítulo 13 de Zar (1999) e 10 de Fowler & Cohen (1990). No R, log() é o logaritimo natural (ln) enquanto log10() é o logaritmo à base de 10. Na verdade, log b () é o logaritmo à base do número b. Crie uma amostra chamada meusdados e verifique os dados em seguida

> meusdados<-c(12,19,0,15,145,0,32,5,17); meusdados

[1] 12 19 0 15 145 0 32 5 17

Calcule a média e a variância da amostra. A variância da amostra é muito maior que a média, então a transformação log (x+1) é apropriada. Lembre a razão que é log (x+1) e não apenas log (x)?

>mean(meusdados); var(meusdados)

[1] 27.

[1] 2052.

Transforme usando log10 (x+1) e crie um novo jogo de dados transformados chamado logmeusdados. Em seguida digite logmeusdados para visualizar as observções transformadas

> logmeusdados<-log10(meusdados+1); logmeusdados

[1] 1.1139434 1.3010300 0.0000000 1.2041200 2.1643529 0.

[8] 0.7781513 1.

Calcule a média e a variância da amostra transformada. O que aconteceu com a razão entre a média e a variância? Experimente outras funções como a raiz quadrada: sqrt()

> mean(logmeusdados); var(logmeusdados)

[1] 1.

[1] 0.

Para vocês que estão com pressa para entregar aquele relatório ou TCC (!!), tente a seguinte:

> mean(log10(meusdados+1))

> var(log10(meusdados+1))

ANÁLISE DE FREQÜÊNCIAS (QUI-QUADRADO)

Mais exemplos podem ser obtidos nos Capítulos 11 de Vieira (1980), 10 de Levin (1985), 13 de Fowler & Cohen (1990) e 22 e 23 de Zar (1999). Freqüências observadas dos 10 integers 0 a 9 obtidos em uma amostra gerada aleatoriamente (n=100) pelo computador:

> obs<-c(10, 7, 10, 6, 14, 8, 11, 11, 12, 11)

A freqüência esperada ( f esperada) para cada integer é 10, mas vocês já devem ter pensado nisso ;-) Rode qui-quadrado

> chisq.test(obs)

Chi-squared test for given probabilities

data: obs

X-squared = 5.2, df = 9, p-value = 0.

O valor de probabilidade indica que as freqüências observadas não diferem das freqüências esperadas, ou seja as observações são verdadeiramente aleatórias. Verifique as freqüências esperadas

> chisq.test(obs) $expected

[1] 10 10 10 10 10 10 10 10 10 10

Um exemplo sobre as freqüências de moscas em uma pequena lagoa

> moscas<-c("D. autumnalis"=24, "D. aestivalis"=32, "D.

amphibia"=10, "D. attica"=9)

Verifique as freqüências de quatro espécies de mosca

> moscas

D. autumnalis D. aestivalis D. amphibia D. attica

Plote as freqüências – Figura 7

> barplot(moscas,xlab="Espécie",ylab="Freqüência",cex.names=0.7)

As freqüências observadas são significativamente diferentes da homogeneidade? (lembra como se calcula a f esperada=18.75?)

>chisq.test(moscas)

Chi-squared test for given probabilities

data: moscas

X-squared = 19.9867, df = 3, p-value = 0.

As freqüências das quatro espécies são diferentes de uma distribuição homogênea. UM GRAU DE LIBERDADE Quando há apenas duas categorias, há um grau de liberdade e a correção de Yates é usada. Podemos testar a hipótese nula que a razão entre macho : fêmea não é diferente de 1 : 1. Uma amostra de 16 larvas coletadas e criadas até adulto contém 12 machos e 4 fêmeas (Fowler & Cohen, 1990). Esta razão é significativamente diferente de 1 : 1? Coloque as freqüências observadas numa matriz com duas colunas

> x<-matrix (c (12,4), nc=2)

> x

[,1] [,2]

[1,] 12 4

Rode o teste para proporções iguais e com correção de Yates (correct=TRUE)

> prop.test (x, correct=TRUE)

1-sample proportions test with continuity correction

data: x, null probability 0.

X-squared = 3.0625, df = 1, p-value = 0.

alternative hypothesis: true p is not equal to 0.

95 percent confidence interval:

sample estimates:

p

O valor de qui-quadrado 3,0625 é menor que o valor crítico com v=1, portanto aceitamos a hipótese nula. Importante: os indivíduos de cada sexo devem ser dispersos em uma maneira independente.