Вы находитесь на странице: 1из 32

Universidade de Braslia IE-Departamento de Estatstica Planejamento e Pesquisa 1 Professor George Von Borries Grupo: Andr Ramos 09/89533 Bruno

Santos 09/0107969 Joo Renato Falco 10/0107575 Lucas Cusinato 09/122267

Lista Extra PP1

21/05/2012

Contents
1)Entrada de Dados ................................................................................................................................... 3 2) Exemplos .............................................................................................................................................. 4 2.1) Exemplo 1- Supresso do crescimento de bactrias em carne armazenada................................... 4 2.2) Exemplo 2 Deteco de inflamao em terapia com Amidarone ............................................... 7 2.3) Exemplo 3 - Tamanho de amostra por tratamento ........................................................................ 9 2.4) Exemplo 4 Tamanho da amostra em funo do poder do teste (Letra H) ................................ 11 2.5) Exemplo 5 - Flow Rate Through Filters .................................................................................. 13 2.6) Exemplo 6 Tissue Growth of Tomatoes................................................................................. 16 2.7) Exemplo 7 - Pituitary Function of Hens ................................................................................... 18 2.8) Exemplo 8 - Carangueijos .......................................................................................................... 24 3)ANEXO-Programao Completa ........................................................................................................ 26

1)Entrada de Dados Para que o R possa ler os dados recomendado fazer com o ele leia esses dados de um arquivo txt ou Excel, j que para coloc-los diretamente na programao ficaria muito confuso e no muito agradvel visualmente. Dessa forma fica mais fcil tambm fazer alteraes nos dados. Para os exemplos seguintes os dados foram colocados em formato txt. Mais detalhes sobre a leitura sero comentados ao longo do trabalho. Para evitar dificuldades necessrio que o diretrio do R esteja com destino na pasta aonde os dados se encontrem. Isso pode ser feito de duas maneiras: A primeira clicando com o boto direito no cone do R e selecionando propriedades e colar o endereo da pasta dos dados em Start in.

A outra a opo seria abrir o programa R e seguir o caminho File->change Dir..

E ento selecionar as pastas onde esto salvos os dados.

2) Exemplos 2.1) Exemplo 1- Supresso do crescimento de bactrias em carne armazenada Primeiro o dados foram colocados em um arquivo txt para que a leitura fosse feita no R. Os dados foram colocados da seguinte maneira:

Ao contrrio do SAS, para que as anlises possam ser feitas, o R necessita que cada valor observado seja acompanhado do seu respectivo tratamento, como visto acima. importante que os dados estejam separados por tabulao (TAB) e no por espao simples! Tambm se deve verificar o arquivo txt para que no exista espaos ou linhas em branco no desejados e assim evitar problemas futuros. Abaixo segue a programao para que os dados sejam importados para o R e depois lidos:

A funo read.delim l dados separados por tabulao, existem outras derivaes como por exemplo ler dados direto do excel, que seria a funo read.csv, mas para os exemplos vamos utilizar sempre a funo read.delim. Os argumentos dentro da funo so o arquivo que o programa deve ler no caso ex1.txt, seguido de hearder=TRUE(ou = T) que indica que a primeira linha dos dados o cabealho, e por ltimo stringsAsFactors=TRUE , diz para o R que os caracteres ou strings so fatores. A varivel ex1 foi onde foram armazenados os dados. Sendo assim quando executamos ex1 e assim podemos ver como R leu os dados. A sada do R ficou da seguinte forma: Agora que j foi feita a leitura de dados pode-se passar as anlises feitas no SAS em sala de aula. Em seguida vamos fazer uma ANOVA:

Para fazer a ANOVA simplesmente utilizamos o comando aov. Os argumentos da funo devem ser a formula, neste caso queremos comparar o nmero de bactrias por tratamento, em seguida colocamos a base de dados que queremos utilizar, aqui ex1. Nota-se que temos apenas a soma quadradas e os graus de liberdade. Para obter a tabela da ANOVA completa basta usar o seguinte comando: summary. Assim temos a seguinte sada:

A partir da anova podemos utilizar o grfico de resduos e o QQ-plotpara vermos como se comportam os dados. Para isso utilizamos a funo:

Para que todos os quatro grficos na mesma pgina utiliza-se a funo par(mfrow=c(2,2)). Que basicamente organiza 2 grficos por linha e 2 grficos por coluna. Para que possamos ter os intervalos para as mdias usaremos a funo lm, que gera uma regresso com os interceptos sendo nossas prprias mdias. Em seguida usaremos a funo confint para gerar os intervalos.

Pelo teste F conclui-se que as mdias do nmero de bactrias de cada tratamento so diferentes.
6

2.2) Exemplo 2 Deteco de inflamao em terapia com Amidarone O exemplo 2 segue a mesma ideia do exemplo 1, por isso usaremos basicamente o mesmo cdigo. Primeiro comeamos criando o arquivo txt com os dados (ex2.txt) e em seguida o importamos para o R atravs do comando read.delim.

Lembrando que os argumentos dentro da funo so o arquivo que o programa deve ler no caso ex2.txt, seguido de hearder=TRUE(ou = T) que indica que a primeira linha dos dados o cabealho, e por ltimo stringsAsFactors=TRUE , diz para o R que os caracteres ou strings so fatores. A varivel ex1 foi onde foram armazenados os dados. Em seguida fazemos novamente a ANOVA para testar a igualdade de mdias atravs do aov e para termos a tabela completa usamos o comando summary.

Para que possamos ter os intervalos para as mdias usaremos a funo lm e confint para gerar os intervalos.

Pelo teste F conclumos que as temperaturas mdias dos tratamentos so diferentes.

2.3) Exemplo 3 - Tamanho de amostra por tratamento Para este exemplo teremos que baixar um novo pacote para o R, devido ao mesmo no possuir em seu sistema original a funo para o calculo do tamanho de amostra para certo nvel de poder. Primeiro, vamos a Pacotes>Instalar Pacote(s)... Ser aberto uma nova janela onde aparece os diversos servidores de pacotes R, escolhemos um.

Em seguida outra janela aparece mostrando todos os pacotes presentes no servidor escolhido. No nosso caso precisaremos apenas do pacote {pwr}. Em seguida o R abrir uma janela onde aparecer o progresso download do pacote. Por ultimo o R imprimira em seu logo se o pacote foi instalado com sucesso e local onde ele se encontra no computador.

Para que possamos usar o pacote em nossa programao ser necessrio carrega-lo atravs do comando library. O exemplo j nos fornece alguns dados que so necessrios para o calculo do tamanho de amostra. desejado um poder equivalente a 0.90 para o exemplo ento atravs de erro e tentativa
9

mudamos o valor de r at acharmos uma quantidade de repeties que geram o poder desejado. Em nosso exemplo vemos que 9 um tamanho de amostra que gera um resultado prximo o suficiente ao poder desejado.

10

2.4) Exemplo 4 Tamanho da amostra em funo do poder do teste (Letra H) Importamos os dados presentes no txt para o R, como nos exemplos passados.

Em seguida usamos o comando oav e summary para gerar a ANOVA e conseguirmos o valor do MSE.

11

Logo, usando as informaes fornecidas e os valores encontramos montamos as funes para tentar encontrar o nmero de cruzamentos necessrios para a rejeio da hiptese nula.

Ao final encontramos que 27 cruzamentos so suficientes para rejeitarmos a hiptese nula ao nvel de significncia de 0.01.

12

2.5) Exemplo 5 - Flow Rate Through Filters Neste exemplo j rejeitamos a hiptese de igualdade de mdias do teste F, logo desejamos comparar essas mdias a uma mdia controle e verificar qual o tratamento mais eficaz. Em nosso exemplo o tratamento F ser o nosso controle. Primeiro teremos que baixar e instalar o pacote {multcomp}, como explicado no exemplo 3, para que possamos aplicar o teste de comparao de mdias de Dunnett. Em seguida carregamos o pacote com o comando library e importamos os dados para o R atravs do comando read.delim.

Em seguida calcularemos as medias de cada tratamento com o comando aggregate e pomo nome no cabealho com o mando names.

13

Rodamos agora a ANOVA, oav, para que possamos obter os valores para o calculo do teste de Dunnett e criamos a matriz de contrates com o comando contrMat.

Note que na matriz de contraste os tratamento aparecem como nmeros invs de letras, logo temos A=1, B=2, C=3, D=4, E=5 e F=6. Por ltimo, rodamos o teste de Dunnett pelo comando glht e representamos graficamente os intervalos de confiana pelos comandos confint e plot.

14

Atravs desses resultados vemos que os tratamentos B e C so praticamente iguais ao tratamento F e que os tratamentos A, D e E so efetivos sendo o E o mais eficaz de todos eles.

15

2.6) Exemplo 6 Tissue Growth of Tomatoes Este exemplo segue a mesma ideia do exemplo anterior. Queremos fazer comparaes de mdias de tratamentos com um tratamento controle e ver a eficcia. Comeamos carregando o pacote {multcomp} com o comando library e importando os dados para o R com o comando read.delim.

Em seguida usamos o comando aov para gerar a ANOVA e o comando glht para fazer o teste de Dunnett.

16

Por ltimo montamos os intervalos de confiana para as mdias atravs do comando confint e os representamos graficamente atravs do comando plot.

Estes resultados nos mostram que os trs tratamentos so efetivos, sendo o C o tratamento mais eficaz.

17

2.7) Exemplo 7 - Pituitary Function of Hens 2.7 Glndulas Pituitrias Para este exemplo necessrio instalar os pacotes {agricolae} e {multicomp} . Como nos exemplos anteriores preciso ler o os dados de um arquivo texto. O banco de dados fica da seguinte forma:

Primeiro vamos fazer o boxplot desses dados. Para isso basta utilizar o comando plot() que o boxplt ser feito, para colocar ttulo grfico fazemos plot(gal, main=Nvel de T3 por Tratamento), o grfico segue na pgina seguinte:

18

Agora temos que fazer a ANOVA para ver se existe diferena significativa entre os tratamentos. Como anteriormente utilizamos o comando aov(), e depois para ver a tabela completa da ANOVA temos que utilizar o comando summary(anova). Obtemos a sada seguinte:

Vemos que o p-valor do teste F foi muito pequeno, logo rejeitamos a hiptese nula, ou seja, no existe igualdade entre as mdias. Para encontrar as mdias de quadrados mnimos temos que utilizar a funo lm() que faz uma regresso, aonde os coeficiente de cada tratamento ser a mdia de quadrados mnimos para aquele tratamento , temos que dizer que no queremos intercepto , caso contrrio o R entende o que o primeiro tratamento o intercepto, para isso dentro da formula da funo colocamos -1.
19

Em seguida para obter a tabela com a estimativa, o valor de t observado e o p-valor, ultilizamos a funo summary():

Para fazer um grfico com essas mdias estimadas, temos que retirar o valor da mdia da tabela gerada pelo output do R. Essa tabela gerada pelo summary(reg7) um data frame, ento precisamos informar ao R qual a coluna do data frame que queremos, para isso basta colocar o nome do data frame seguido de um $ e seguida o nome da coluna. Neste caso ento o data frame se chama summary(reg7) e a coluna que queremos a parte coefficients,que est assinalada acima, logo fazemos summary(reg7)$coefficients obtemos o seguinte:

Agora queremos retirar apenas a coluna Estimate, porm agora o R considera a parte assinalada como uma matriz, ento temos que informar qual a coluna que queremos, para isso utilizamos tab[,1], o que indica que queremos todas as linhas da primeira coluna:

20

Agora finalmente para fazer o grfico com as mdias utilizamos o comando plot(), mas agora temos que dar nomes ao eixo x, seno o R chamara cada tratamento de 1,2,3,4,5. Ento vamos utilizar o argumento xaxt=n dentro da funo plot()indicando que no queremos que o R nomeie o x. E depois para nomear o eixo x utilizamos a funo axis(1,at=1:5,lab=c('60g','80g','Fasting','Mash','Premolt')), sendo o 1 para informar que vamos alterar o eixo x, at=1:5 para dizer que do primeiro at o quinto ponto vamos dar nomes, e lab=c('60g','80g','Fasting','Mash','Premolt'), so os nomes de cada um dos pontos. Finalmente obtemos o grfico:

Pela a ANOVA vimos que a hipteses de igualdade de mdias foi rejeitada. Por isso temos que fazer testes de comparaes mltiplas. Veremos como so feitos os testes LSD de Fisher, SNK e Tukey. O pacote {agricolae} fornece os dois primeiros testes, o teste de Tukey j padro do R. Infelizmente as funes para o teste LDS e SNK somos obrigado a informar o MSE da tabela ANOVA, isso pode ser feito a mo, ou seja, ns mesmos escrevemos o MSE dentro da funo ou podemos fazer com q o R retire o valor da tabela e assim pode-se usar sempre esse programa para diferentes dados. Para fazer com o que o R retire o valor da tabela temos que informa-lo onde est esse valor, lembrando que a tabela ANOVA e dado por summary(anova7)
21

e o MSE se encontra na terceira coluna e na segunda linha fazemos: mse7=summary(anova7)[[1]][[3]][[2]]. Tambm precisamos informar os graus de liberdade, pelo mesmo pensamento temos gl7= summary(anova7)[[1]][[1]][[2]]. Vamos fazer os testes LSD e SNK, LSD.test() e SNK.test() , nessas duas funes do pacote {agricolae} temos que informar primeiro a varivel resposta, neste caso gal$T3, depois os tratamentos, gal$Tratamento. Em seguida temos que informar o MSE e os graus de liberdade, mse7 e gl7 respectivamente. Obtemos:

Por ltimo vamos fazer o teste de Tukey, temos apenas que informar a anova que estamos analisando e o tratamento:

22

A seguintes funes so do pacote {multcomp}. Temos que pegar a mdia de cada grupo ento vamos utilizar a funo aggregate(), informando de qual varivel queremos tirar a mdia:

Agora com a funo contrMat{} monta a matriz de contrastes, colocando pelo mtodo de tukey para que seja possvel comparar todas duas a duas:

Agora podemos fazer o teste de comparao mltipla utilizando a matriz de contrastes com a funo ghlt(), aonde temos que informar a tabela ANOVA que estamos utilizando, neste caso anova7 e a varivel que vamos comparar, aqui o Tratamento:

23

2.8) Exemplo 8 - Carangueijos Neste exemplo utilizaremos os pacotes {geoR} e {car} para que possamos utilizar o mtodo de Box-Cox. Primeiro baixamos e instalamos estes pacotes e importamos os dados para o R pelo comando read.delim. Note que fazemos uma transformao, somamos um rudo, nos dados para que no tenhamos zeros e assim podemos fazer a transformao sem problemas.

Em seguida carregaremos a funo {geoR}e a utilizaremos para calcular o melhor lambda pra realizar a transformao.

24

Agora carregando a funo {car} fazemos a transformao dos dados.

25

3)ANEXO-Programao Completa

################################# Exemplo1 ################################# #Lendo os dados ex1=read.delim('ex1.txt', header=T,stringsAsFactors=T ) ex1 #Boxplot plot(Bacterias~Tratamento,data=ex1) #Fazendo a ANOVA anova=aov(Bacterias~Tratamento,ex1) anova summary(anova) #Grficos de dinostico par(mfrow=c(2,2)) plot(anova) #regresso para obter as mdas e intervalo de confiana reg1=lm(Bacterias~Tratamento-1,ex1) inter.ex1=confint(reg1,level=0.95) inter.ex1 #Teste de Tukey tukey=TukeyHSD(anova,'Tratamento') tukey plot(tukey) ################################## Exemplo2 ################################## #Lendo os dados ex2=read.delim('ex2.txt', header=T,stringsAsFactors=T ) ex2 #Boxplot plot(Temp~Tratamento,data=ex2) 26

#Fazendo a ANOVA anova2=aov(Temp~Tratamento,ex2) anova2 summary(anova2) #Grficos de diagntico da ANOVA par(mfrow=c(2,2)) plot(anova2)

################################## Exemplo3 ############################################################# # Lendo o pacote library(pwr) #Informando os dados e montando a funo phi mse=0.22 trat=3 r=9 N=trat*r ui=c(0.5,-0.2,-0.3) u=mean(ui) ti=ui-u t=sum(ti^2) a=0.05 fsq= r*t/(N*mse) fsq f=sqrt(fsq) f #Funo para obter o poder poder=pwr.anova.test(k=trat,n=r,f=f,sig.level=a) poder #Utilizando o pacote library(pwr) #Lendo os dados ex4=read.delim('ex4.txt', header=T,stringsAsFactors=T ) ex4

27

#Boxplot plot(Tempo~Tratamento,data=ex4) #Fazendo a ANOVA anova4=aov(Tempo~Tratamento,ex4) anova4 summary(anova4) #Montando uma matriz para deixar todos os grficos numa sada s par(mfrow=c(2,2)) # grficos de diagnstico da ANOVA plot(anova4) # Retirando o MSE da ANOVA, Informando mdias e Montando a funao phi mse4=summary(anova4)[[1]][[3]][[2]] trat4=3 mi=c(20,16,18) m=mean(mi) taui=mi-m tau=sum(taui^2) a4=0.01 #Fazendo o Looping para ir testando quantas repeties at o poder 0.9 rep=0 for(rep in 1:30 ){ rep=rep+1 tr=trat4*rep fisq= rep*tau/(tr*mse4) fi=sqrt(fisq) pod=pwr.anova.test(k=trat4,n=rep,f=fi,sig.level=a4) if(pod$power>=0.9) {break} } pod$n

28

############################## PARTE 2############################################ ################################################################################## #################################################################################

####exemplo5 #Baixano o pacote library(multcomp) #Lendo os dados ex5=read.delim('ex5.txt', header=T,stringsAsFactors=T) ex5 #Boxplot plot(ex5) #Pegando a mdas de cada tratamento medias= aggregate(ex5[,c('Flowrate')],ex5['Filtro'],mean) names(medias)=c('Filtro','Flowrate') medias #Fazendo a ANOVA anova5=aov(Flowrate~Filtro,data=ex5) summary(anova5) #Contrastes contrat=contrMat(medias$Flowrate,type='Dunnett',base=6) contrat #Teste de Dunnett dun <- glht(anova5, linfct = mcp(Filtro=contrat)) dun #Intravalo de Confiana inter=confint(dun,level=0.95) inter #Grfico dos intervalos de confiana plot(inter)

29

####exemplo6### #Lendo os Dados tomates=read.delim('tomate.txt', header=T,stringsAsFactors=T) tomates #Fazendo a ANOVA anova6=aov(resp~trat,data=tomates) summary(anova6) #Contrastes dun.to <- glht(anova6, linfct = mcp(trat='Dunnett')) dun.to #Intervalo de confiana inter.to=confint(dun.to,level=0.95) inter.to plot(inter.to,xlim=c(-20,10)) #########Exemplo7### #Mandando abrir o pacote agricolae library(agricolae) library(multcomp) #Lendo os dados gal=read.delim('gal.txt', header=T,stringsAsFactors=T) gal #Fazendo a ANOVA anova7=aov(T3~Tratamento,gal) summary(anova7)

#Fazendo o Boxplot plot(gal,main='Nvel de T3 por tipo de Tratamento')

#Regresso para MQ reg7=lm(T3~Tratamento-1,gal) summary(reg7) tab=(summary(reg7)$coefficients) tab tab[,1] 30

#Grfico dos MQ plot(tab[,1],main='Mdias de Mnimos Quadradros por Tratamento',xaxt='n') axis(1,at=1:5,lab=c('60g','80g','Fasting','Mash','Premolt')) #Retirando o MSE e GL mse7=summary(anova7)[[1]][[3]][[2]] mse7 gl7=summary(anova7)[[1]][[1]][[2]] gl7

#Testes de comparo mltipla LSD.test(gal$T3,gal$Tratamento,DFerro=gl7,MSerror=mse7)

SNK.test(gal$T3,gal$Tratamento,DFerro=gl7,MSerror=mse7)

Tukey7=TukeyHSD(anova7,'Tratamento') Tukey7

# medias7= aggregate(gal[,c('T3')],gal['Tratamento'],mean) names(medias7)=c('Tratamento','T3') medias7 #Contrastes contrat7=contrMat(medias7$T3,type='Tukey') contrat7 #Teste de comparao multipla comp7 <- glht(anova7, linfct = mcp(Tratamento=contrat7)) comp7

##Exemplo 8 setwd('F:/PP1/trabalho') #exportei o dataset do sas para um "tab delimited" (acho que isso) file chamado 'crabs boxcox.txt' crab = read.delim('crabs boxcox.txt') crab2 = transform(crab, crabs = crabs+1e-6) #soma um milionesimo aos dados pra nao ter zeros 31

### o pacote mais simples e mais chato de usar (parece um pouco com o sas) library(MASS) bc.mass = MASS::boxcox(crab2$crabs ~ crab2$habitat, lambda = seq(.1, .2, length=1000)) (bc.mass$x)[which.max(bc.mass$y)] # o lambda maximo do.call(cbind, bc.mass) str(bc.mass) ### funes mais rpidas para determinar o melhor lambda e/ou fazer a transformao library(car) ?car::box.cox(crab2$crabs ~ crab2$habitat) bc.car1 = car::bcPower(crab2$crabs, 0.1416926) #com essa preciso setar o lambda pra transformar bc.car2 = car::boxCoxVariable(crab2$crabs) #essa calcula o lambda e transforma ja library(geoR) geoR::boxcoxfit(crab2$crabs) #calcula o lambda

32