Minicurso de estatística experimental com o R - III SIC IFNMG

838 visualizações

Publicada em

Slides do minicurso de Estatística Experimental Com R no III Simpósio de Iniciação Científica do IFNMG - Campus Januária, 2014.

Publicada em: Dados e análise
1 comentário
1 gostou
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
838
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
65
Comentários
1
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Minicurso de estatística experimental com o R - III SIC IFNMG

  1. 1. Minicurso de Estatística com Dilermando Pacheco e Petrônio Cândido
  2. 2. Agenda ● O Pacote R ● Carregando Dados ● Estatística Descritiva ○ Medidas de tendência central e dispersão ○ Gráficos ● Estatística Inferencial ○ Regressão ○ Testes Estatísticos
  3. 3. O pacote estatístico R
  4. 4. O que é o R ● Um programa de estatística para uso geral; ○ Um conjunto de bibliotecas/plugins ○ Uma linguagem de programação ● FOSS ○ Free open source software ○ Programa gratuito de código aberto
  5. 5. Porquê usar o R? ● Primeiro: ELE É GRATUITO! ○ Ao contrário do SPSS, SAS… ● Ele é não é voltado para nenhuma área específica ○ Ao contrário do SPSS... ● Muita documentação, em todas as linguagens
  6. 6. Porquê usar o R? ● No R é possível programar! ○ Grande base de plugins para todo o tipo de tarefa de análise de dados ● Interoperabilidade ○ Abre diversos tipos de arquivos ○ Comunica-se com outros sistemas
  7. 7. Características do R? ● O R originalmente usa uma interface de linha de comando que é pouco amigável para usuários que não vem das exatas/tecnológicas e engenharias… ● Para tarefas mais complexas algum conhecimento em programação é bastante recomendado!
  8. 8. Características do R ● Atualmente já existem interfaces gráficas com o usuário, tais como o: ○ R Commander ○ R Studio
  9. 9. Instalando o R ● R Básico ○ http://www.r-project.org/ ● R Studio ○ https://www.rstudio.com/
  10. 10. Pacotes ● Pacotes são extensões ao programa básico escritos pela comunidade de usuários; ● Com os pacotes podemos agregar novas funcionalidades ao R
  11. 11. Pacotes ● Baixa o pacote da internet e instalar no computador install.packages("pacote") ● Carregar o pacote na memória (antes de começar a utilizá-lo) library("mypkg")
  12. 12. Carregando e explorando dados
  13. 13. Variáveis ● Uma variável armazena um ou mais valores nome <- valor
  14. 14. Tipos de Dados no R ● Escalar ● Vetores ● Matrizes ● Fatores ● Data Frames
  15. 15. Tipos de Dados no R ● Escalar ○ Um único dado. ○ Número ■ 1, -1, 1.5 ○ Caractere ■ “texto” ○ Lógico ■ TRUE / FALSE
  16. 16. Tipos de Dados no R ● Vetores ○ Conjunto de dados de um mesmo tipo, com uma única dimensão [linha OU coluna] v1 <- c(1,2,3,5) # vetor numérico v2 <- c("A","BB","CCC") # vetor de caracteres v3 <- c(TRUE,TRUE,FALSE) #vetor de valores lógicos
  17. 17. Tipos de Dados no R ● Intervalos ○ seq(from = inicio, to = fim, by = passo) ■ v1 <- seq(from = 1, to = 50, by = 10) ○ início : fim ■ v1 <- c(1:20)
  18. 18. Tipos de Dados no R ● Fatores ○ Associa um índice a cada valor nominal; ○ Variáveis categóricas/nominais sem relação de ordem dados <- c(“M”,”F”,”F”,”M”,”F”,”M”,”M”,”F”) sexos <- factor(dados)
  19. 19. Tipos de Dados no R ● Matrizes ○ Um conjunto de dados de um único tipo, com duas dimensões ○ Tabela do um mesmo tipo de dados, com várias linhas e colunas m<-matrix(dados, nrow=linhas,ncol=colunas)
  20. 20. Tipos de Dados no R ● Data Frames ○ Tabela com várias linhas e colunas, em que cada coluna pode ser de um tipo de dados diferente: ■ Linhas : Observações ■ Colunas : Variáveis ○ As colunas em um data frame podem ter nomes;
  21. 21. Tipos de Dados no R ● Data Frames ○ idades <- c(20, 30, 25) ○ sexos <- c(“M”,”F”,”F”) ○ pesos <- c(70.5, 64.3, 60.1) ○ df <- data.frame(idades, sexos, pesos) ○ df$idades
  22. 22. Funções Úteis ● Gera uma matriz a partir da combinação em colunas de dois vetores dados <- cbind(vetor, vetor, …) ● Gera uma matriz a partir da combinação em linhas de dois vetores dados <- rbind(vetor, vetor, …) ● Edita os dados de um objeto (vetor, matriz, data frame etc…) dados <- edit(dados)
  23. 23. Funções Úteis ● O somatório de todos os itens de um vetor soma <- sum(vetor) ● A quantidade de itens de um vetor n <- length(vetor) ● Edita os dados de um objeto (vetor, matriz, data frame etc…) dados <- edit(dados)
  24. 24. Carregar dados ● Ler um arquivo de dados simples mydata <- read.table("c:/mydata.csv", header=TRUE, sep=",") ● Gravar um arquivo de dados simples write.table(mydata, "c:/mydata.txt", sep="t")
  25. 25. Carregar dados ● Existem pacotes para interagir com diversas outras fontes de dados: ■ Excell ■ SPSS ■ Bancos de Dados ● Consulte: (CRAN, 2014)
  26. 26. Estatística Descritiva Tendências e Gráficos
  27. 27. Funções úteis Função Utilidade abs(x) Valor absoluto sqrt(x) Raiz quadrada ceiling(x), floor(x) Arredondamento para cima e para baixo trunc(x) Retorna a parte inteira cos(x), sen(x), tan(x) Funções trigonométricas log(x), log10(x), exp(x) Logaritmos e exponenciação
  28. 28. Estatísticas Descritivas ● Resumo: summary(dados) ● Média: mean(dados) ● Mediana: median(dados) ● Quantis: quantile(dados) ● Variância: var(dados) ● Desvio Padrão: sd(dados)
  29. 29. Tabelas de Frequência tabela <- table(dados) tabela <- table(dados$variavel, dados$variavel) tabela <- xtabs(dados$variavel ~ dados$variavel)
  30. 30. Correlação e Covariância ● Coeficiente de correlação entre dois vetores cor(vetor,vetor) ● Matriz de correlação em matrizes e data frames cor(dados)
  31. 31. Gráficos
  32. 32. Função Plot plot(dados, main = ”titulo”, sub=”sub título”, type =”tipo”, col = vetordecores, xlab = “rótulo do eixo x”, ylab = “rótulo do eixo y” pch = simbolo, lty = tipo de linha, ltw = expessura da linha )
  33. 33. Parâmetros ● Type ○ l = Linha ○ p = Pontos ○ b = Linha e ponto não sobrepostos ○ o = Linha e ponto sobrepostos ○ h = Histograma ○ s = Degraus
  34. 34. Parâmetros ● pch ● lty
  35. 35. Parâmetros ● Color
  36. 36. Outras funções úteis ● legend(“orientação”, valores, fill=cores) ○ Acrescenta uma legenda no gráfico ● text(x, y, “texto”) ○ Acrescenta uma anotação no gráfico ● mtext(“texto”, side=n) ○ Acrescenta uma anotação na bordas do gráficos
  37. 37. Gráficos barplot(dados) dotchart(dados) hist(dados) lines(dados) pie(dados) points(dados) polygon(dados)
  38. 38. Gráficos 3D ● Scatterplot 3D library(scatterplot3d) scatterplot3d(x,y,z) ● Plot 3D (Gráfico Interativo) library(rgl) plot3d(x,y,z)
  39. 39. Estatística Inferencial Amostra -> População
  40. 40. Probabilidades
  41. 41. Distribuições de Probabilidades ● ddist(valor, …) ○ Retorna a densidade de probabilidade (Probabilidade de um valor dentro da distribuição) ● pdist(valor, …) ○ Retorna a densidade acumulada de probabilidade
  42. 42. Distribuições de Probabilidades ● qdist(quantis,...) ○ Retorna os valores, dentro da distribuição, para as probabilidades informadas; ○ Pode ser um escalar ou um vetor com os quantis; ● rdist(n,...) ○ Gera um vetor de n números aleatórios dentro da distribuição;
  43. 43. Distribuições de Probabilidades ● Distribuição Normal
  44. 44. Distribuições de Probabilidades ● d <- dnorm(valor, media, desviopadrao) ○ dnorm(95, 70, 15) ● p <- pnorm(valor, media, desviopadrao) ○ dnorm(95, 70, 15) ● valor <- qnorm(quantis, media, desviopadrao) ○ dnorm(c(0.05, 0.95), 70, 15) ● vetor <- rnorm(n, media, desviopadrao) ○ dnorm(30, 70, 15)
  45. 45. Distribuições de Probabilidades ● qqnorm(dados) ○ dnorm(95, 70, 15) ● qqline(valores) ○ dnorm(95, 70, 15)
  46. 46. Outras distribuições ● Binomial dbinom(x, tamanho, prob) pbinom(q, tamanho, prob) qbinom(p, tamanho, prob) rbinom(n, tamanho, prob) ● Poisson dpois(x, lamda) ppois(q, lamda) qpois(p, lamda) rpois(n, lamda)
  47. 47. Distribuições Empíricas w <- density(dados) plot(w)
  48. 48. Modelos e Fórmulas Relações entre variáveis
  49. 49. Modelo ● Um modelo é uma fórmula que expressa algum relacionamento entre variáveis; ● Variáveis Dependentes ● Variáveis Independentes
  50. 50. ● dependentes ~ independentes Y = β0 + β1Xa + β2Xb + … + ϵ ● Dependente: Y ● Independentes: Xa, Xb, … ● Coeficientes: β0, β1, β2, ... Y ~ Xa + Xb Fórmulas
  51. 51. Regressão Ajustando os coeficientes...
  52. 52. Análise de Variáncia - ANOVA ● Dados segmentados em blocos; ● Há diferenças significativas nas médias e variâncias nas amostras colhidas entre os blocos?
  53. 53. Análise de Variáncia - ANOVA ● Data Frame ○ Variável de Bloco : Factor ○ Variável quantitativa mensurada modelo <- aov(Variavel ~ Bloco)
  54. 54. Análise de Variáncia - ANOVA A <- c(78, 88, 87, 88, 83, 82, 81, 80, 80, 89) B <- c(78, 78, 83, 81, 78, 81, 81, 82, 76, 76) C <- c(79, 73, 79, 75, 77, 78, 80, 78, 83, 84) D <- c(77, 69, 75, 70, 74, 83, 80, 75, 76, 75) dados <- data.frame(Localidade=gl(4,10), Massa=c(A,B,C,D)) dados$Localidade <- as.factor(dados$Localidade) # Análise de variância modelo <- aov(Massa ~ Localidade) summary(modelo) # o teste de Tukey HSD para mostrar os pares de grupos TukeyHSD(modelo) plot(TukeyHSD(modelo)) Fonte: (BASLEY, 2004, p. 32)
  55. 55. Regressão Linear Simples ● Ajusta os coeficientes das variáveis independentes de uma fórmula a partir de um conjunto de dados modelo <- lm(formula = y ~ x, data = dados)
  56. 56. Exemplo x <- c(1,2,3,4,5,6,7,8) y <- c(9.6, 18.0, 18.7,26.0,4.6,18.3,19.7,37.8) modelo <- lm(y ~ x) plot(x, y) abline(modelo)
  57. 57. Exemplo x <- c(1,2,3,4,5,6,7,8) y <- c(9,3,2,7,3,3,1,1) z <- c(9.6, 18.0, 18.7,26.0,4.6,18.3,19.7,37.8) modelo <- lm(z ~ x + y) library(scatterplot3d) grafico <- scatterplot3d(x, y, z) grafico$plane3d(modelo)
  58. 58. Regressão Não Linear ● Ajusta os coeficientes das variáveis independentes de uma fórmula a partir de um conjunto de dados ● Os coeficientes e seus valores iniciais devem ser indicados modelo <- nls(formula = z ~ a^x + b*y + c, data = dados, start=c(a=0, b=0, c=0))
  59. 59. Teste e simulação dos modelos ● Gera predições para a variável dependente a partir de um conjunto de dados para as variáveis independente utilizando o modelo. dados <- predict(modelo, dadossimulacao) modelo <- lm(y ~ x) predicao <- predict(modelo, x)
  60. 60. Teste e simulação dos modelos x <- c(1,2,3,4,5,6,7,8) y <- c(9.6, 18.0, 18.7,26.0,4.6,18.3,19.7,37.8) modelo_linear <- lm(y ~ x) teste_linear <- predict(modelo_linear, list(x)) modelo_naolinear1 <- nls(y ~ cos(x)*a + b, start=c(a=0, b=0)) teste_naolinear1 <- predict(modelo_naolinear1, list(x)) modelo_naolinear2 <- nls(y ~ exp(x)*a + cos(x)*b + c, start=c(a=0, b=0, c=0)) teste_naolinear2 <- predict(modelo_naolinear2, list(x))
  61. 61. Ajuste de Modelos plot(x, y, main="Modelos de Regressão", sub="Ajuste de modelos lineares e não lineares") legend("topleft",c("a.x+b","a.cos(x) +b","a.e^x + b.cos(x) + c"), fill=c ("black","blue","red")) lines(teste_linear, col="black") lines(teste_naolinear1, col="blue") lines(teste_naolinear2, col="red")
  62. 62. Intervalos de Confiança
  63. 63. Intervalo de Confiança ● Intervalo de confiança para a média populacional (μ) quando a variância populacional (σ2) é desconhecida: α = Nível de confiança (99% ou 95%)
  64. 64. Intervalo de Confiança dados <- c() a <- 0.95 n <- length(dados) z <- qnorm( (1 + a) / 2 ) s <- sqrt( var(dados) ) x <- mean(dados) ic <- c( x - z*s/sqrt(n) , x + z*s/sqrt(n) )
  65. 65. Testes Estatísticos Testes de Hipóteses ou Testes de Significância
  66. 66. Teste T ● Teste de hipótese para médias ● Valida se a diferença entre as médias é significativa ou se pode ser gerada pelo acaso; ● A probabilidade da diferença ser gerada pelo acaso H0: μa = μb Ha: μa ≠ μb
  67. 67. Teste T ● Erro Tipo I ○ Rejeitar H0 quando H0 é verdadeira ● Erro Tipo II ○ Aceitar H0 quando H0 é falsa Situação H0 Verdadeira H0 Falsa Decisão Rejeitar H0 Erro Tipo I Sem Erro Aceitar H0 Sem Erro Erro Tipo II
  68. 68. Teste T t.test(vetor1, vetor2, conf = .95) Welch Two Sample t-test data: vetor1 and vetor2 t = 3.4843, df = 14.894, p-value = 0.00336 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 1.861895 7.738105 sample estimates: mean of x mean of y 113.4 108.6 H0: μa ≠ μb Ha: μa = μb
  69. 69. Teste T macho <- c(120, 107, 110, 116, 114, 111, 113, 117, 114, 112) femea <- c(110,111,107, 108, 110, 105, 107, 106, 111, 111) t.test(macho, femea) Fonte: (BATISTA ; PRADO, 2014)
  70. 70. Teste χ2 ● Frequências observadas x Frequências Observadas ● Testa se duas variáveis são independentes ou associadas, e se o grau de associação é significativo; ● É utilizado para validar se uma variável adere à uma determinada distribuição: H0: As freq. observadas não são diferentes das esperadas Ha: As freq. observadas são diferentes das esperadas
  71. 71. Teste χ2 chisq.test(dados, p = distribuição) H0: “dados” é aderente à distribuição Ha: “dados” não é adere à distribuição Chi-squared test for given probabilities data: x X-squared = 15.68, df = 2, p-value = 0.0003937
  72. 72. Teste χ2 ● Se χ2 calculado >= χ2 tabelado: Rejeita-se H0. ● Se χ2 calculado < χ2 tabelado: Aceita-se H0. ● Observações: ○ As amostras devem ser independentes; ○ Os itens de cada amostra devem ser selecionados aleatoriamente; ○ As observações devem ser frequências ou contagens. ● O número de graus de liberdade, nesse caso é assim calculado: ○ G.L. = número de classes - 1
  73. 73. Teste χ2 amostra <- c(14, 25, 81) probabilidades <- c(1/4, 1/8, 5/8) chisq.test(amostra, p = probabilidades)
  74. 74. Teste de Correlação ● Testa se há correlação significativa (não casual) entre duas variáveis: H0: Não existe correlação (ρ = 0) Ha: Existe correlação (ρ ≠ 0)
  75. 75. Teste de Correlação cor.test(variável, variável) Pearson's product-moment correlation data: anos and diversidade t = 4.3848, df = 8, p-value = 0.002334 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.4474675 0.9613274 sample estimates: cor 0.840339 H0: Não existe correlação (ρ = 0) Ha: Existe correlação (ρ ≠ 0)
  76. 76. Teste de Correlação anos <- c(0, 1, 3, 5, 9, 12, 13, 15, 21, 25) diversidade <- c(0, 0.19, 0.15, 1.49, 1.10, 1.12, 1.61, 1.42, 1.48, 1.92) cor.test(anos, diversidade) Fonte: (BASLEY, 2004, p. 45)
  77. 77. Referências
  78. 78. CRAN. The Comprehensive R Archive Network. Disponível em: http://cran.r-project. org/. Acesso em: 01/03/2014. BASLEY, Colin R. Bioestatística Usando o R: Apostila de exemplos para o biólogo. Bragança: UFPA, 2004. Disponível em :http://cran.r-project. org/doc/contrib/Beasley-BioestatisticaUsandoR.pdf. Acesso em: 10/03/2014. BATISTA, João L. F.; PRADO, Paulo I. K. Introdução ao R: Apostila on-line. Disponível em: http://ecologia.ib.usp.br/bie5782/doku.php?id=bie5782: 03_apostila:start. Acesso em: 09/03/2014. WILD, Christopher J.; SEBER, George AF. Encontros com o acaso: um primeiro curso de análise de dados e inferência. Rio de Janeiro: LTC, 2004.

×