# É er(R)ando que se aprende - 4 Uma introdução a linguagem R para análise de dados - 4. Parte 4: http://bit.ly/aprendeerrando4 Parte 1: http://bit.ly/aprendeerrando Parte 2: http://bit.ly/aprendeerrando2 Parte 3: http://bit.ly/aprendeerrando3 https://drive.google.com/drive/folders/1Up7qIFrxjaAlCkdOQZpNrEM_JOYIQvsZ?usp=sharing ## Conceitos Estatísticos * O R², é uma medida de ajuste de um modelo estatístico linear, como a regressão linear, em relação aos valores observados. Quanto maior o R², mais explicativo é o modelo, melhor ele se ajusta à amostra. * O p-valor é a evidência contra uma hipótese nula. Quanto menor o p-valor, mais forte é a evidência de rejeição da hipótese nula. * O F-estatístico É semelhante a uma estatística T de um teste T; O teste T informará se uma única variável é estatisticamente significativa e um teste F indicará se um grupo de variáveis é significativo em conjunto. É obtido com o teste ANOVA ou uma análise de regressão para descobrir se as médias entre duas populações são significativamente diferentes * O erro padrão de uma estatística (geralmente uma estimativa de um parâmetro) é o desvio padrão de sua distribuição amostral ou uma estimativa desse desvio padrão. ![](https://i.imgur.com/qN4PQt0.png) ## Regressão ![](https://i.imgur.com/c9YJ5Da.png) ###### Mesma regressão linear e R-square de 0,816. Dado que uma maior area disponivel permite o desenvolvimento das populacoes residentes e introducao de novas especies. Coletamos dados da riqueza de bromélias em paredoes rochosos na serra do mar e gostaríamos de verificar qual a relacao entre a Área do paredao e o numero de especies presentes. ```r #importar dados dados=read.table('dados_regressao.txt', header=T, dec=',') summary(dados) #verifica-los graficamente plot(density(dados$area)) plot(density(dados$riqueza)) plot(dados$area, dados$riqueza, bty="l", ylab="Riqueza", xlab="Área") #efetuar teste teste=lm(riqueza~area, data=dados) summary(teste) anova(teste) ### gráfico final - opcao I par(mar=c(4,4,3,1), family="serif", font.axis=1) plot(dados$area,dados$riqueza, bty="l", ylab = "Espécies de bromélias (S)", xlab= "Área do paredãoo rochoso (km²)") # reta da estimativa abline(a=6.779, b=25.818) # equacao da reta (não é necessário, mas fica legal!) text(1, 20,"Y=6.779 + 25.818 * X") # resultados modelo (não é necessário, mas fica legal!) text(1, 21.7,expression(R^2==~"0.78;"~F["(1,43)"]==~"161.4;"~p<"0.0001")) ```` ### Reportando o resultado ###### Existe uma maior riqueza de bromélias em paredões maiores (R2=0,78; gl=43; p<0,001). A área do paredão explica 78% da variação na riqueza de bromélias. ### Correlação > Dado que o cerrado possui espécies arbóreas com diversas caracteristicas morfológicas e anatômicas. Há correlação entre a massa e o volume de madeira obtido em uma área de cerrado? ```r #importar os dados dados<-read.table("dados_correlacao.txt", header=T, dec=",") summary(dados) #verificar gráficamente plot(density(dados$massa)) plot(density(dados$volume)) par(mar=c(5,4,3,2), family="serif", bty="l", cex.axis=1.3, cex.lab=1.2, font.axis=1) plot(dados$massa, dados$volume, bty="l", yaxp= c(0,60,10), ylim=c(0,60), ylab="Volume", xlab="Massa") #efetuar teste cor.test(dados$massa,dados$volume,method="pearson",alternative="two.sided") ``` ## Regressão >Dado que uma maior area disponível permite o desenvolvimento das populações residentes e introdução de novas espécies. Coletamos dados da riqueza de bromélias em paredões de rocha na Serra do mar e gostaríamos de verificar qual a relacao entre a área do paredao e o número de espécies presentes. ```r #importar dados dados=read.table('dados_regressao.txt', header=T, dec=',') summary(dados) #verifica-los graficamente plot(density(dados$area)) plot(density(dados$riqueza)) plot(dados$area, dados$riqueza, bty="l", ylab="Riqueza", xlab="Área") #efetuar teste teste=lm(riqueza~area, data=dados) summary(teste) anova(teste) ### gráfico final - opcao I par(mar=c(4,4,3,1), family="serif", font.axis=1) plot(dados$area,dados$riqueza, bty="l", ylab = "Espécies de bromélias (S)", xlab= "Área do paredãoo rochoso (km²)") # reta da estimativa abline(a=6.779, b=25.818) # equacao da reta (não é necessário, mas fica legal!) text(1, 20,"Y=6.779 + 25.818 * X") # resultados modelo (não é necessário, mas fica legal!) text(1, 21.7,expression(R^2==~"0.78;"~F["(1,43)"]==~"161.4;"~p<"0.0001")) ```` ### Reportando o resultado ###### Existe uma maior riqueza de broméias em paredões maiores (R2=0,78; gl=43; p<0,001). A área do paredão explpica 78% da variação na riqueza de bromelias. ## Teste T * O teste t de Student ou somente teste t é um teste de hipótese que usa conceitos estatísticos para rejeitar ou não uma hipótese nula. Normalmente se utiliza quando os dados segue uma distribuição normal e sua variância da população é desconhecida. Assim, utiliza-se a variância amostral e, com esse ajuste, a estatística de teste passa a seguir uma distribuição t de Student. * Por exemplo, é usado na estimativa da média populacional a partir de uma distribuição amostral de médias amostrais se o desvio padrão da população for desconhecido. >Sabendo que aranhas são predadores e podem utilizar flores como possível local de forrageamento, obtivemos o número de visitas diárias em plantas com presença e ausência de aranhas. Qual o efeito da presença do predador sobre o comportamento de visita dos visitantes florais? Os dados estão no arquivo: "dados_aula5_2.txt" >Identifique as variáveis: #variável resposta (dependente) -> número de visitas #variável prediotra (independente) -> presença de aranhas ### Entenda o teste que você vai aplicar (comparar duas amostras) ```r dados<-read.table('dados_aula5_2.txt', header=T, dec=',') dados summary (dados) install.packages("sciplot") #Verificar os dados graficamente com médias! library(sciplot) lineplot.CI(tratamento, polinizadores, ylim=c(28,32), bty="l", ylab = "Nº de polinizadores", xlab = "Tratamento", type="p", data=dados) #Avaliando as premissas do teste plot(density(dados$polinizadores[dados$tratamento=="com-aranha"])) plot(density(dados$polinizadores[dados$tratamento=="sem-aranha"])) qqnorm(dados$polinizadores[dados$tratamento=="com-aranha"]) qqline(dados$polinizadores[dados$tratamento=="com-aranha"]) qqnorm(dados$polinizadores[dados$tratamento=="sem-aranha"]) qqline(dados$polinizadores[dados$tratamento=="sem-aranha"]) #Faça o teste t.test(polinizadores~tratamento, alternative='two.sided', var.equal=T, data=dados) ```` ### Apresente os resultados do teste ###### Não há evidências de que o número de polinizadores seja diferente entre plantas com e sem aranhas (t = -1.8704, df = 38, p-value = 0.06914) ## Teste ANOVA ![](https://i.imgur.com/nuNWV9k.jpg) ![](https://i.imgur.com/65OwQci.png) > Considere um estudo onde se quis analisar a influência do tamanho do macho de uma espécie de aranha no tempo de cópula ```r # Importar dados dados<-read.table('dadosanova_aula.txt', h=T) attach(dados) dados summary(dados) # Para os tamanhos tem-se: "Pequeno" "Médio", "Grande" (Tamanho é um fator que possui 3 níveis) # Para a amostra tem-se 120 unidades experimentais # Verificando os dados graficamente plot(tamanho_macho, duracao_copula, ylab="Duração da cópula", xlab = "Tamanho corporal do macho") # Verificando os dados graficamente install.packages(c("sciplot", "multcomp") library("sciplot") library("multcomp") #Gráfico de intervalo de confiança. Calcula-se a média e o desvio padrão de cada fator e com isso tem-se o desvio padrão agrupado. Consecutivamente usa-se o t-student para construir o intervalo de confiança das médias lineplot.CI(tamanho_macho, duracao_copula, data=dados) lineplot.CI(tamanho_macho, duracao_copula, ylim=c(10,30), bty="l", ylab = "Duração da cópula (min)", xlab = "Tamanho corporal do macho", type="p", cex.axis=1.2, cex.lab=1.3, data=dados) #ANOVA teste<-lm(duracao_copula~tamanho_macho, data=dados) # Teste das premissas plot(teste) # Resultados da ANOVA anova(teste) # Teste a posteriori ou post hoc de Tukey ?glht comp=glht(teste, linfct = mcp(tamanho_macho="Tukey")) summary(comp) # Comparações planejadas summary(teste) complanejada=?rbind('G vs M' = c(1,-1,0), 'G vs P' = c(1,0,-1), 'M vs P' = c(0,1,-1)) View(complanejada) comp2=glht(teste, complanejada) summary(comp2) mean(duracao_copula[tamanho_macho=="pequeno"]) mean(duracao_copula[tamanho_macho=="médio"]) mean(duracao_copula[tamanho_macho=="grande"]) ```` ## Qui-quadrado(X²) Este teste serve para avaliar quantitativamente a relação entre o resultado de um experimento e a distribuição esperada para o fenômeno. Isto é, ele nos diz com quanta certeza os valores observados podem ser aceitos como regidos pela teoria em questão. ```r data('HairEyeColor') HairEyeColor[,,] # Mostra todos os dados HairEyeColor[,,”Male”] # Mostra todos os dados do gênero masculino HairEyeColor[1,,] # Mostra todos os dados daqueles que têm cabelo preto chisq.test(HairEyeColor[,,1]) chisq.test(HairEyeColor[,,2]) chisq.test(HairEyeColor[1,,]) library(MASS) # load the MASS package tbl = table(survey$Smoke, survey$Exer) tbl # the contingency table tbl[,1] chisq.test(tbl[,1]) chisq.test(tbl[,2:3]) chisq.test(tbl[,]) ````