01-discretas:01-discretas
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
01-discretas:01-discretas [2020/11/01 17:05] – [Distribuições discretas mais usadas] paulo | 01-discretas:01-discretas [2022/11/24 14:12] (atual) – edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== 1. Distribuições Discretas ====== | ||
+ | |||
+ | Os //Modelos de Distribuição de Probabilidades// | ||
+ | Nesse tópicos são apresentados o conceito de Distribuição de Probabilidades e a distinção entre variáveis discretas e contínuas. Segue-se uma apresentação dos principais modelos de distribuição de probabilidades de variáveis discretas, que são contagens ou ranqueamentos. **Assim, uma variável discreta é aquela que pode ter valores no conjunto dos [[https:// | ||
+ | |||
+ | Com os tutoriais desta página você vai simular em computador os cenários que algumas distribuições de probabilidade descrevem matematicamente. Com isso poderá verificar características destes construtos matemáticos com " | ||
+ | |||
+ | |||
+ | ====== Conceitos ====== | ||
+ | * Distribuição de probabilidade | ||
+ | * Variáveis discretas e contínuas | ||
+ | * Função de Densidade Probabilística | ||
+ | * Função de Probabilidade Acumulada | ||
+ | * Parâmetros da distribuição | ||
+ | * Esperança e variância | ||
+ | * Distribuições discretas mais usadas em Ecologia | ||
+ | |||
+ | ====== Tutoriais ====== | ||
+ | |||
+ | ===== Distribuição Binomial ===== | ||
+ | |||
+ | Qual a probabilidade de que nasça apenas um macho em uma ninhada de cinco filhotes de cachorro-do-mato, | ||
+ | |||
+ | Essa probabilidade é obtida pela distribuição binomial, com o seguinte comando no R: | ||
+ | <code rsplus> | ||
+ | dbinom(x=1, | ||
+ | </ | ||
+ | |||
+ | Esta função retorna a probabilidade do número de // | ||
+ | |||
+ | Qual sua expectativa se alterarmos os parâmetros? | ||
+ | <code rsplus> | ||
+ | dbinom(x=1, | ||
+ | </ | ||
+ | |||
+ | E se aumentarmos o tamanho da ninhada? | ||
+ | <code rsplus> | ||
+ | dbinom(x=1, | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | //__Antes de prosseguir, certifique-se que você compreendeu os motivos das diferenças dos três resultados.__// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Esperança Matemática da Binomial ===== | ||
+ | |||
+ | Voltando ao primeiro caso de variável binomial, os resultados possíveis para uma ninhada são 0, 1, 2, 3, 4 ou 5 machos. Suas probabilidades são: | ||
+ | <code rsplus> | ||
+ | p1<- dbinom(x=0: | ||
+ | names(p1) <- 0:5 | ||
+ | p1 | ||
+ | </ | ||
+ | |||
+ | O que podemos colocar em um gráfico: | ||
+ | <code rsplus> | ||
+ | plot(0: | ||
+ | </ | ||
+ | |||
+ | Todos os valores entre zero e cinco machos podem ocorrer, mas alguns são mais prováveis. Se tivéssemos uma amostra de muitas ninhadas, qual seria o número médio de machos? Podemos simular essa situação, sorteando mil valores de uma distribuição binomial, com os mesmos parâmetros: | ||
+ | <code rsplus> | ||
+ | sim1 <- rbinom(n=1000, | ||
+ | </ | ||
+ | Os primeiros valores são: | ||
+ | <code rsplus> | ||
+ | head(sim1) | ||
+ | </ | ||
+ | E a média dos mil valores é obtida com: | ||
+ | <code rsplus> | ||
+ | mean(sim1) | ||
+ | </ | ||
+ | |||
+ | Este número faz sentido para você? Ele é uma aproximação da // | ||
+ | |||
+ | O valor teórico da esperança matemática de uma variável aleatória discreta é obtido multiplicando-se cada valor por sua probabilidade, | ||
+ | |||
+ | |||
+ | $$ E[X] = \sum_{i=1}^n x_i P(X=x_i) $$ | ||
+ | |||
+ | No R podemos calcular isto com os comandos: | ||
+ | |||
+ | <code rsplus> | ||
+ | esper <- sum(0:5*p1) | ||
+ | esper | ||
+ | </ | ||
+ | |||
+ | Marque este valor no eixo x do gráfico: | ||
+ | <code rsplus> | ||
+ | mtext(at=esper, | ||
+ | </ | ||
+ | |||
+ | Uma interpertação da esperança é que ela é o centro de massa de uma distribuição de probabilidades. Se o eixo do gráfico fosse uma balança, a média seria o ponto de apoio para que os dois lados se equilibrassem. A esperança é a média da distribuição, | ||
+ | |||
+ | |||
+ | ===== Alterando Parâmetros da Distribuição Binomial ===== | ||
+ | |||
+ | Calcule as probabilidades para ninhadas de 5 e 10 filhotes, com probabilidades de 1/3 e 0,5 de nascimento de machos: | ||
+ | <code rsplus> | ||
+ | p2 <- dbinom(0: | ||
+ | p3 <- dbinom(0: | ||
+ | p4 <- dbinom(0: | ||
+ | </ | ||
+ | |||
+ | Faça gráficos das distribuições de probabilidade para avaliar o efeito das mudanças dos parâmetros: | ||
+ | <code rsplus> | ||
+ | maxp <- max(c(p1, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Distribuição Poisson ===== | ||
+ | |||
+ | A distribuição Poisson é um modelo para o número de eventos observados numa unidade de tempo ou de espaço, dado que a taxa de eventos por unidade é constante, e os eventos ocorrem de modo independente. O único parâmetro da Poisson é $\lambda$, a taxa de eventos por unidade. | ||
+ | |||
+ | Portanto, se um certo número de objetos está distribuído ao acaso por uma área, e esta área é dividida em quadrículas de mesmo tamanho, o número de objetos por quadrículas pode ser descrito por uma distribuição Poisson. Neste caso, o parâmetro **λ** será o total de objetos dividido pelo total de quadrículas. | ||
+ | |||
+ | Para simular uma situação como esta, vamos distribuir ao acaso 1.000 plantas em uma área de 20 x 20 metros, divida em quadrículas de 1 x 1 m, como na figura abaixo | ||
+ | |||
+ | <box 80% center red| Plantas distribuídas ao acaso em uma área de 20 x 20. > | ||
+ | {{poisson1.png}} | ||
+ | </ | ||
+ | |||
+ | Primeiro geramos mil coordenadas $(x,y)$ entre 0 e 20, de uma distribuição uniforme((veremos esta distribuição na aula sobre variáveis contínuas. Por ora basta saber que com ela obtemos qualquer número entre um máximo e um mínimo com a mesma probabilidade)): | ||
+ | |||
+ | <code rsplus> | ||
+ | set.seed(42) ## fixa a semente de números aleatórios | ||
+ | x <- runif(n=1000, | ||
+ | y <- runif(n=1000, | ||
+ | </ | ||
+ | |||
+ | |||
+ | Para simular as quadrículas, | ||
+ | |||
+ | <code rsplus> | ||
+ | x.parc <- cut(x, | ||
+ | y.parc <- cut(y, | ||
+ | </ | ||
+ | |||
+ | E então usamos a função '' | ||
+ | |||
+ | <code rsplus> | ||
+ | cont <- data.frame(table(x.parc, | ||
+ | </ | ||
+ | |||
+ | O objeto resultante terá a contagem de pontos em cada combinação dos rótulos de linhas e colunas, ou seja, quantos plantas há em cada quadrícula: | ||
+ | |||
+ | <code rsplus> | ||
+ | > head(cont) | ||
+ | x.parc y.parc Freq | ||
+ | 1 1 A 1 | ||
+ | 2 2 A 1 | ||
+ | 3 3 A 3 | ||
+ | 4 4 A 3 | ||
+ | 5 5 A 1 | ||
+ | 6 6 A 3 | ||
+ | > tail(cont) | ||
+ | x.parc y.parc Freq | ||
+ | 395 | ||
+ | 396 | ||
+ | 397 | ||
+ | 398 | ||
+ | 399 | ||
+ | 400 | ||
+ | </ | ||
+ | |||
+ | Contamos o número de parcelas com cada abundância com a função '' | ||
+ | <code rsplus> | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Dividimos estas contagens pelo total de parcelas para obter proporções, | ||
+ | |||
+ | <code rsplus> | ||
+ | plot(freq.ab/ | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Em seguida adicionamos as probabilidades previstas para uma variável Poisson com a mesma taxa de ocorrência, | ||
+ | <code rsplus> | ||
+ | points(x=0: | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Avalie visualmente a concordância entre os valores previstos e simulados. | ||
+ | ==== Extras ==== | ||
+ | |||
+ | Caso queira reproduzir a primeira figura deste tutorial, os comandos são: | ||
+ | <code rsplus> | ||
+ | plot(x=x, | ||
+ | | ||
+ | segments(x0=rep(0, | ||
+ | | ||
+ | segments(x0=0: | ||
+ | | ||
+ | text(y=seq(0.5, | ||
+ | text(x=seq(0.5, | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Distribuição Geométrica ===== | ||
+ | |||
+ | A distribuição geométrica é um modelo para o número de tentativas negativas até que se obtenha o primeiro resultado positivo, com uma probabilidade constante de ter um resultado positivo em cada tentativa. | ||
+ | |||
+ | Formalmente, | ||
+ | |||
+ | Um exemplo biológico seria a sobrevivência de indivíduos em intervalos discretos de tempo, com uma taxa de mortalidade constante. A cada intervalo discreto de tempo, cada indivíduo da população tem a probabilidade $p$ de morrer, portanto a probabilidade de que a morte ocorra após $x$ intervalos será: | ||
+ | |||
+ | |||
+ | $$P(x) = p(1-p)^x$$ | ||
+ | |||
+ | Que é a distribuição de probabilidades da variável aleatória geométrica. | ||
+ | |||
+ | Com o R, podemos simular, para um indivíduo, uma sequência de intervalos, sendo que em cada intervalo sorteamos se o indivíduo morrerá ou não, com uma probabilidade fixa. Usamos a função '' | ||
+ | |||
+ | <code rsplus> | ||
+ | > p.morte <- 0.2 | ||
+ | > result <- 0 | ||
+ | > while(sample(c(" | ||
+ | result <- result+1 | ||
+ | } | ||
+ | > result | ||
+ | [1] 8 | ||
+ | </ | ||
+ | |||
+ | Agora vamos criar uma função que repete esta simulação para vários indivíduos. Seus argumentos são o número de indivíduos ('' | ||
+ | |||
+ | <code rsplus> | ||
+ | sobrevive <- function(N=1000, | ||
+ | result <- rep(0,N) | ||
+ | for(i in 1:N){ | ||
+ | while( | ||
+ | sample( c(" | ||
+ | prob= c(1-p.morte, | ||
+ | result[i] <- result[i]+1 | ||
+ | } | ||
+ | } | ||
+ | result | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | E podemos fazer uma simulação para 2.000 indivíduos, | ||
+ | |||
+ | <code rsplus> | ||
+ | sim2 <- sobrevive(N=2000) | ||
+ | </ | ||
+ | |||
+ | E agora vamos fazer um gráfico do número de indivíduos que viveram até cada valor de intervalo. Para isto, primeiro criamos uma variável de fator com valores observados de intervalo, mas com níveis de zero ao valor máximo, para garantir que mesmo valores sem observações na amostra sejam representados: | ||
+ | <code rsplus> | ||
+ | | ||
+ | </ | ||
+ | |||
+ | E então aplicamos a função '' | ||
+ | |||
+ | <code rsplus> | ||
+ | plot(table(sim2.f)/ | ||
+ | ylab=" | ||
+ | </ | ||
+ | |||
+ | Por fim acrescentamos os valores de probabilidade da variável geométrica: | ||
+ | <code rsplus> | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Avalie a correspondência entre os valores simulados das proporções de indivíduos e as probabilidades teóricas. | ||
+ | |||
+ | |||
+ | ===== Distribuição Binomial Negativa ===== | ||
+ | |||
+ | A distribuição binomial negativa é uma extensão da distribuição geométrica, | ||
+ | |||
+ | Esta variável pode ser reparametrizada, | ||
+ | |||
+ | |||
+ | $$\mu=\frac{n(1-p)}{p}$$ | ||
+ | |||
+ | Nesta formulação, | ||
+ | |||
+ | Por esta propriedade, | ||
+ | London.)). | ||
+ | |||
+ | <box centered 90% red| Simulação de plantas distribuídas em agregados em uma área de 20 x 20 m. Pontos azuis são os focos de agregação, | ||
+ | {{nbinom1.png}} | ||
+ | </ | ||
+ | |||
+ | Para simular este padrão, primeiro sorteamos 20 coordenadas entre 0 e 20 m de uma distribuição uniforme. Estes 20 pontos distribuídos ao acaso serão os centros dos agregados, representados em azul na figura. | ||
+ | |||
+ | <code rsplus> | ||
+ | set.seed(42) | ||
+ | cx <- runif(20, | ||
+ | cy <- runif(20, | ||
+ | </ | ||
+ | |||
+ | Em seguida sorteamos 2.000 coordenadas de uma distribuição normal padronizada ((isto é, com média zero e desvio-padrão um, detalhes na unidade sobre variáveis aleatórias contínuas)), | ||
+ | |||
+ | <code rsplus> | ||
+ | px <- rnorm(2000) | ||
+ | py <- rnorm(2000) | ||
+ | x1 <- cx+px | ||
+ | y1 <- cy+py | ||
+ | </ | ||
+ | |||
+ | Em seguida usamos a [[http:// | ||
+ | |||
+ | <code rsplus> | ||
+ | x2 <- x1[x1> | ||
+ | y2 <- y1[x1> | ||
+ | </ | ||
+ | |||
+ | Para simular as quadrículas, | ||
+ | |||
+ | <code rsplus> | ||
+ | x2.parc <- cut(x2, | ||
+ | y2.parc <- cut(y2, | ||
+ | </ | ||
+ | |||
+ | E então usamos a função '' | ||
+ | <code rsplus> | ||
+ | cont2 <- data.frame(table(x2.parc, | ||
+ | </ | ||
+ | |||
+ | O número de indivíduos de cada parcela, que é a coluna '' | ||
+ | <code rsplus> | ||
+ | cont2.f <- factor(cont2$Freq, | ||
+ | </ | ||
+ | |||
+ | Dividimos estas contagens pelo total de parcelas para obter proporções, | ||
+ | |||
+ | <code rsplus> | ||
+ | plot(table(cont2.f)/ | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Em seguida adicionamos as probabilidades previstas para uma variável Poisson com a mesma taxa de ocorrência, | ||
+ | |||
+ | <code rsplus> | ||
+ | points(x=0: | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | A distribuição Poisson não é um bom modelo, o que era esperado, já que ela descreve eventos independentes, | ||
+ | |||
+ | Vamos então comparar o desempenho da Poisson com o da Binomial Negativa. Sabemos que um dos parâmetros desta distribuição, | ||
+ | <code rsplus> | ||
+ | require(MASS) # basta uma vez por seção | ||
+ | cont2.nb <- coef(fitdistr(cont2$Freq," | ||
+ | cont2.nb | ||
+ | </ | ||
+ | |||
+ | Com os valores estimados dos parâmetros podemos acrescentar ao gráfico as probabilidades previstas pela Binomial Negativa para cada abundância: | ||
+ | |||
+ | <code rsplus> | ||
+ | points(x=0: | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | e adicione uma legenda ao gráfico com | ||
+ | |||
+ | legend(" | ||
+ | | ||
+ | Note como a probabilidade de valores pequenos é maior na Binomial Negativa, em comparação com a Poisson, embora ambas tenham a mesma taxa de ocorrência. É isto que você esperaria no caso de agregação espacial? | ||
+ | |||
+ | O próximo tutorial mostra como a Binomial Negativa se aproxima de uma Poisson se aumentamos o valor do parâmetro '' | ||
+ | |||
+ | ==== Extras ==== | ||
+ | Caso queira reproduzir a figura do padrão espacial, os comandos são: | ||
+ | |||
+ | <code rsplus> | ||
+ | plot(x=x2, | ||
+ | points(cx, | ||
+ | segments(x0=rep(0, | ||
+ | segments(x0=0: | ||
+ | text(y=seq(0.5, | ||
+ | text(x=seq(0.5, | ||
+ | x2.parc <- cut(x2, | ||
+ | y2.parc <- cut(y2, | ||
+ | </ | ||
+ | |||
+ | ===== Binomial Negativa e Poisson ===== | ||
+ | |||
+ | Use os comandos abaixo para plotar gráficos da distribuição Poisson com média 4 e das distribuições Binomiais negativas com mesma média e parâmetro de dispersão crescentes. Quais suas conclusões? | ||
+ | |||
+ | <code rsplus> | ||
+ | par(mfrow=c(2, | ||
+ | plot(0:30, dpois(0: | ||
+ | | ||
+ | | ||
+ | plot(0:30, dnbinom(0: | ||
+ | | ||
+ | | ||
+ | plot(0:30, dnbinom(0: | ||
+ | | ||
+ | | ||
+ | plot(0:30, dnbinom(0: | ||
+ | | ||
+ | | ||
+ | par(mfrow=c(1, | ||
+ | </ | ||
+ | ===== Binomial Negativa e Geométrica ===== | ||
+ | |||
+ | Compare a distribuição Geométrica com parâmetro $p$ (probabilidade de sucesso em cada tentativa) igual a 0,2 e a distribuição Binomial Negativa com o mesmo valor de $p$ e com parâmetro $n$ (número de sucessos desejados) igual a um. | ||
+ | |||
+ | <code rsplus> | ||
+ | par(mfrow=c(1, | ||
+ | plot(0: | ||
+ | | ||
+ | plot(0:30, dnbinom(0: | ||
+ | | ||
+ | par(mfrow=c(1, | ||
+ | </ | ||
+ | |||
+ | Como você explica este resultado? | ||
+ | |||
+ | ===== Binomial e Poisson ===== | ||
+ | |||
+ | Compare a distribuição Binomial com parâmetro $n$ alto e parâmetro $p$ baixo com a distribuição Poisson de mesma média ((a média da Binomial é $np$ portanto 0,2 neste exemplo)): | ||
+ | <code rsplus> | ||
+ | par(mfrow=c(1, | ||
+ | plot(0:10, dbinom(0: | ||
+ | | ||
+ | plot(0:10, dpois(0: | ||
+ | | ||
+ | par(mfrow=c(1, | ||
+ | </ | ||
+ | |||
+ | - Quais suas conclusões? | ||
+ | - Há uma interpretação biológica para isto? | ||
+ | |||
+ | \\ | ||
+ | ------------------ | ||
+ | \\ | ||
+ | |||
+ | |||
+ | ====== Distribuições discretas mais usadas===== | ||
+ | |||
+ | |||
+ | ^ Distribuição | ||
+ | | [[http:// | ||
+ | | [[http:// | ||
+ | | [[http:// | ||
+ | | [[http:// | ||
+ | | [[http:// | ||
+ | \\ | ||
+ | ------------------ | ||
+ | \\ | ||
+ | |||
+ | ====== Exercícios ====== | ||
+ | |||
+ | Faça os exercícios 201.1 a 201.4 no sistema [[http:// | ||
+ | ====== Questões Motivadoras para Discussão ====== | ||
+ | |||
+ | - Qual a relação entre o conceito de distribuição de probabilidade e a variabilidade/ | ||
+ | - A distribuições discretas frequentemente são utilizadas como modelos de " | ||
+ | - Por que é necessária a distinção entre variáveis __discretas__ e variáveis __contínuas__? | ||
+ | ====== Recursos para Estudo ====== | ||
+ | |||
+ | ===== Leituras ===== | ||
+ | |||
+ | === Principal === | ||
+ | |||
+ | * Probability and stochastic distributions for ecological modeling. Capítulo 4, itens 4.4, e 4.5.1 de Bolker, B.M. Ecologial Models and Data in R, Princeton University Press, 2008. | ||
+ | | ||
+ | === Complementares === | ||
+ | * Probability and stochastic distributions for ecological modeling. Capítulo 4, itens 4.1, 4.2 e 4.3 de: Bolker, B.M. 2008 Ecological Models and Data in R Princeton: Princeton University Press. | ||
+ | |||
+ | * Random variables and probability distributions. Cap.2 de: Gotelli, N.J. & Ellison, A.M. 2004. A primer of ecological statistics. Sinauer. | ||
+ | |||
+ | * Probability theory. Cap.3 de: Otto, S. P. & Day, T. (2007). A biologist' | ||
+ | |||
+ | ===== Na Internet ===== | ||
+ | |||
+ | * Portal sobre distribuições de probabilidades na Wikipedia: [[http:// | ||
+ | |||
+ | * O [[https:// | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * Distribuições interativas //on-line// do Statistics Online Computational Resource da UCLA: [[http:// | ||
+ | |||
+ | * Capítulo sobre variáveis aleatórias do //e-book// de Probabilidade e Estatística da UCLA: [[http:// | ||
+ | | ||
+ | * Excelente vídeo-aula sobre o conceito de momentos de distribuições probabilísticas, | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * Um excelente resumo das propriedades e relações entre distribuições de probabilidade: | ||
+ | * Leemis, L. M., and J. T. McQueston. 2008. Univariate Distribution Relationships. The American Statistician 62: | ||
+ | |||
+ | * Tópico sobre [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | | ||
+ | * [[http:// | ||
+ | |||
+ | * **Sobre o conceito matemático de infinito**: alguns bons vídeos: | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | * Bombas V1 sobre Londres: um exemplo de livro didático de distribuição espacial aleatória. | ||
+ | * Clarke, R.D., 1946. An application of the Poisson distribution. [[https:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | === Visualizador de distribuições usado em aula=== | ||
+ | |||
+ | O [[https:// | ||
+ | é um aplicativo em [[https:// | ||
+ | | ||
+ | Você pode executá-lo de seu [[https:// | ||
+ | ou localmente em seu computador. | ||
+ | |||
+ | Veja [[https:// | ||
+ | |||
+ | Para executar a interface em seu computador abra o R execute os comandos: | ||
+ | |||
+ | <code rsplus> | ||
+ | ## Pacotes necessários | ||
+ | packages <- c(" | ||
+ | " | ||
+ | " | ||
+ | | ||
+ | ## Verifica se todos os pacotes estão instalados. | ||
+ | ## Instala os faltantes se for caso | ||
+ | if (length(setdiff(packages, | ||
+ | install.packages(setdiff(packages, | ||
+ | } | ||
+ | |||
+ | ## Carrega os pacotes | ||
+ | lapply(packages, | ||
+ | | ||
+ | ## Baixa o código do app do GitHub e executa o app localmente | ||
+ | ## A página deve abrir em seu navegador padrão | ||
+ | runGitHub(" | ||