Tabela de conteúdos
1. Distribuições Discretas
Os Modelos de Distribuição de Probabilidades são o tema dessa disciplina. 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 números naturais, ou em um subconjunto deles.
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 “experimentos in silico”.
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, se a definição do sexo é independente para cada um, e as chances de nascerem machos e fêmeas são iguais?
Essa probabilidade é obtida pela distribuição binomial, com o seguinte comando no R:
dbinom(x=1,size=5,prob=0.5)
Esta função retorna a probabilidade do número de sucessos de um total de tentativas independentes, dada a probabilidade de sucesso em cada tentativa. O número de tentativas (size
) e a probabilidade (prob
) são os parâmetros da função.
Qual sua expectativa se alterarmos os parâmetros? Por exemplo, experimente reduzir as chances de nascimento de machos para um terço:
dbinom(x=1,size=5,prob=1/3)
E se aumentarmos o tamanho da ninhada?
dbinom(x=1,size=10,prob=0.5)
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:
p1<- dbinom(x=0:5, size=5, prob=0.5) names(p1) <- 0:5 p1
O que podemos colocar em um gráfico:
plot(0:5,p1,type="h",lwd=5,col="blue",xlab="N de machos",ylab="Probabilidade")
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:
sim1 <- rbinom(n=1000,size=5,prob=0.5)
Os primeiros valores são:
head(sim1)
E a média dos mil valores é obtida com:
mean(sim1)
Este número faz sentido para você? Ele é uma aproximação da esperança matemática (ou valor esperado) da variável que segue a distribuição binomial.
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 então somando-se estes resultados1):
$$ E[X] = \sum_{i=1}^n x_i P(X=x_i) $$
No R podemos calcular isto com os comandos:
esper <- sum(0:5*p1) esper
Marque este valor no eixo x do gráfico:
mtext(at=esper,text="^",side=1,line=0.5,cex=2,col="red")
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, o valor médio esperado para a variável aleatória.
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:
p2 <- dbinom(0:5,size=5,prob=1/3) p3 <- dbinom(0:10,size=10,prob=0.5) p4 <- dbinom(0:10,size=10,prob=1/3)
Faça gráficos das distribuições de probabilidade para avaliar o efeito das mudanças dos parâmetros:
maxp <- max(c(p1,p2,p3,p4)) par(mfrow=c(2,2)) plot(0:5,p1,main="n=5, p=0.5", xlim=c(0,10), ylim=c(0,maxp),type="h",lwd=5,xlab="N de machos",ylab="Probabilidade") plot(0:5,p2,main="n=5, p=1/3", xlim=c(0,10),ylim=c(0,maxp),type="h",lwd=5,xlab="N de machos",ylab="Probabilidade") plot(0:10,p3,main="n=10, p=0.5",xlim=c(0,10),ylim=c(0,maxp),type="h",lwd=5,xlab="N de machos",ylab="Probabilidade") plot(0:10,p4,main="n=10, p=1/3",xlim=c(0,10),ylim=c(0,maxp),type="h",lwd=5,xlab="N de machos",ylab="Probabilidade") par(mfrow=c(1,1))
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. > </box>
Primeiro geramos mil coordenadas $(x,y)$ entre 0 e 20, de uma distribuição uniforme2):
set.seed(42) ## fixa a semente de números aleatórios x <- runif(n=1000,min=0, max=20) y <- runif(n=1000,min=0, max=20)
Para simular as quadrículas, dividimos as coordenadas em fatores com intervalo de um, que representam segmentos de um metro. As linhas recebem rótulos de 1 a 20, e as colunas rótulos de A a T:
x.parc <- cut(x,breaks=0:20, labels=1:20) y.parc <- cut(y,breaks=0:20, labels=LETTERS[1:20])
E então usamos a função table
para contar quantos valores há em cada combinação destes fatores. Esta tabela cruzada é então transformada em um data frame e o resultado atribuído a um objeto:
cont <- data.frame(table(x.parc,y.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:
> 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 15 T 1 396 16 T 2 397 17 T 3 398 18 T 1 399 19 T 2 400 20 T 2
Contamos o número de parcelas com cada abundância com a função table
freq.ab <- table(cont$Freq)
Dividimos estas contagens pelo total de parcelas para obter proporções, e as representamos em um gráfico aplicando a função plot
:
plot(freq.ab/400, xlab="N de indivíduos na parcela", ylab="Proporção das parcelas")
Em seguida adicionamos as probabilidades previstas para uma variável Poisson com a mesma taxa de ocorrência, que é de 1.000 plantas em 400 parcelas ($\lambda = 2,5$).
points(x=0:max(cont$Freq), y=dpois(0:max(cont$Freq), lambda=1000/400), type="b", col="blue", lty=2)
Avalie visualmente a concordância entre os valores previstos e simulados.
Extras
Caso queira reproduzir a primeira figura deste tutorial, os comandos são:
plot(x=x,y=y,axes=F, xlab="", ylab="", xlim=c(-1,20),ylim=c(0,21)) segments(x0=rep(0,20),y0=0:20, x1=rep(20,20),y1=0:20, col="gray", lty=2) segments(x0=0:20,y0=rep(0,20), x1=0:20,y1=rep(20,20),col="gray", lty=2) text(y=seq(0.5,19.5,by=1),x=-1, labels=20:1) text(x=seq(0.5,19.5,by=1),y=21, labels=LETTERS[1:20])
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, é o número de fracassos até o primeiro sucesso em uma sequência de ensaios de Bernoulli.
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 sample
para sortear entre “vivo” e “morto” com probabilidades $1-p$ e $p$ a cada intervalo. Usamos a função while
para manter o sorteio correndo até a morte do indivíduo (primeiro sorteio do valor “morto”), e contamos quantos sorteios ocorreram até que isto aconteça:
> p.morte <- 0.2 > result <- 0 > while(sample(c("vivo","morto"),prob=c(1-p.morte,p.morte),size=1)=="vivo"){ 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 (N
) e a probabilidade de morrer a cada intervalo (p.morte
):
sobrevive <- function(N=1000, p.morte=0.2){ result <- rep(0,N) for(i in 1:N){ while( sample( c("vivo","morto"), prob= c(1-p.morte,p.morte),size=1)=="vivo"){ result[i] <- result[i]+1 } } result }
E podemos fazer uma simulação para 2.000 indivíduos, com probabilidade de morte de 0,2:
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:
sim2.f <- factor(sim2,levels=0:max(sim2))
E então aplicamos a função plot
sobre a tabulação desta variável, divida pelo total de indivíduos para ser uma proporção:
plot(table(sim2.f)/length(sim2), xlab="Tempo de vida", ylab="Proporção dos Indivíduos")
Por fim acrescentamos os valores de probabilidade da variável geométrica:
points(0:max(sim2),dgeom(0:max(sim2),prob=0.2),type="b",col="blue")
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, que descreve a probabilidade de fracassos em uma sequência de ensaios de Bernoulli até que se obtenha $n$ sucessos, dado que a probabilidade $p$ de sucesso a cada tentativa é constante.
Esta variável pode ser reparametrizada, substituindo-se o $p$ por um parâmetro $\mu$ que corresponde à esperança da distribuição, ou seja, sua média.
$$\mu=\frac{n(1-p)}{p}$$
Nesta formulação, $n$ pode ter qualquer valor real positivo e pode ser interpretado como um índice de dispersão. Recebe entao o nome de $k$ para distinguí-lo da outra parametrização. Quanto menor o $k$ maior a concentração da massa da distribuição nos valores baixos, o que dá à distribuição uma forte assimetria à direita.
Por esta propriedade, a binomial negativa é um modelo simples para descrever contagens de eventos agregados por unidade amostral. Neste tutorial seguiremos a mesma lógica do tutorial sobre o processo Poisson, mas agora simulando uma planta distribuída em agregados em uma área de 20 x 20 m, como na figura abaixo3).
<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, veja explicação no texto. > </box>
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.
set.seed(42) cx <- runif(20,0,20) cy <- runif(20,0,20)
Em seguida sorteamos 2.000 coordenadas de uma distribuição normal padronizada 4), e somamos a cada uma destas coordenadas as coordenadas dos centros. Com isto teremos 100 pontos agregados em torno de cada centro 5).
px <- rnorm(2000) py <- rnorm(2000) x1 <- cx+px y1 <- cy+py
Em seguida usamos a indexação para ficar apenas com os pontos que estão dentro da área (com coordenadas entre 0 e 20):
x2 <- x1[x1>0&x1<20&y1>0&y1<20] y2 <- y1[x1>0&x1<20&y1>0&y1<20]
Para simular as quadrículas, dividimos as coordenadas em fatores com intervalo de um, que representam segmentos de um metro. As linhas recebem rótulos de 1 a 20, e as colunas rótulos de A a T:
x2.parc <- cut(x2,breaks=0:20, labels=1:20) y2.parc <- cut(y2,breaks=0:20, labels=LETTERS[1:20])
E então usamos a função table
para contar quantos valores há em cada combinação destes fatores. Esta tabela cruzada é então transformada em um data frame e o resultado atribuído a um objeto:
cont2 <- data.frame(table(x2.parc,y2.parc))
O número de indivíduos de cada parcela, que é a coluna Freq
deste objeto, é transformado em um fator, que tem níveis de zero ao máximo de indivíduos observado em uma parcela:
cont2.f <- factor(cont2$Freq, levels=0:max(cont2$Freq))
Dividimos estas contagens pelo total de parcelas para obter proporções, e as representamos em um gráfico aplicando a função plot
:
plot(table(cont2.f)/400, xlab="N de indivíduos na parcela", ylab="Proporção das parcelas")
Em seguida adicionamos as probabilidades previstas para uma variável Poisson com a mesma taxa de ocorrência, que é o total de plantas dividido por 400 parcelas:
points(x=0:max(cont2$Freq),y=dpois(0:max(cont2$Freq), lambda=sum(cont2$Freq)/400), type="b", col="blue", lty=2)
A distribuição Poisson não é um bom modelo, o que era esperado, já que ela descreve eventos independentes, isto é, distribuídos aleatoriamente.
Vamos então comparar o desempenho da Poisson com o da Binomial Negativa. Sabemos que um dos parâmetros desta distribuição, $\mu$ corresponde à taxa de ocorrência, mas precisamos estimar o outro, que é o índice de dispersão $k$ Para isto usaremos a função fitdistr
do pacote MASS
. Aplicada a um vetor numérico, esta função retorna a estimativa dos parâmetros6), que podem ser extraídos com a função coef
:
require(MASS) # basta uma vez por seção cont2.nb <- coef(fitdistr(cont2$Freq,"negative binomial")) cont2.nb
Com os valores estimados dos parâmetros podemos acrescentar ao gráfico as probabilidades previstas pela Binomial Negativa para cada abundância:
points(x=0:max(cont2$Freq),y=dnbinom(0:max(cont2$Freq), mu=cont2.nb[2],size=cont2.nb[1]), type="b", col="red", lty=2)
e adicione uma legenda ao gráfico com
legend("topright", c("Poisson", "Binomial negativa"), lty=1, col=c("blue", "red"))
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 k
Extras
Caso queira reproduzir a figura do padrão espacial, os comandos são:
plot(x=x2,y=y2,axes=F, xlab="", ylab="", xlim=c(-1,20),ylim=c(0,21)) points(cx,cy, col="blue", pch=19) segments(x0=rep(0,20),y0=0:20,x1=rep(20,20),y1=0:20, col="gray", lty=2) segments(x0=0:20,y0=rep(0,20),x1=0:20,y1=rep(20,20),col="gray", lty=2) text(y=seq(0.5,19.5,by=1),x=-1, labels=20:1) text(x=seq(0.5,19.5,by=1),y=21, labels=LETTERS[1:20]) x2.parc <- cut(x2,breaks=0:20, labels=1:20) y2.parc <- cut(y2,breaks=0:20, labels=LETTERS[1:20])
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?
par(mfrow=c(2,2)) plot(0:30, dpois(0:30,lambda=4),type="b", xlab="x", ylab="p", ylim=c(0,0.35), main=expression(paste("Poisson, ", lambda,"=4"))) plot(0:30, dnbinom(0:30,mu=4,size=0.5),type="b", ylim=c(0,0.35), xlab="x", ylab="p", main=expression(paste("Bin. Neg., ", mu,"=4", ", k=0.5"))) plot(0:30, dnbinom(0:30,mu=4,size=1.5),type="b", ylim=c(0,0.35), xlab="x", ylab="p", main=expression(paste("Bin. Neg., ", mu,"=4", ", k=1.5"))) plot(0:30, dnbinom(0:30,mu=4,size=20),type="b", ylim=c(0,0.35), xlab="x", ylab="p", main=expression(paste("Bin. Neg., ", mu,"=4", ", k=20"))) par(mfrow=c(1,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.
par(mfrow=c(1,2)) plot(0:30,dgeom(0:30,prob=0.2),xlab="N de fracassos", ylab="P", main="Geométrica, p=0,2") plot(0:30, dnbinom(0:30,size=1,prob=0.2),xlab="N de fracassos", ylab="P", main="Bin. Neg., n=1, p=0,2") par(mfrow=c(1,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 7):
par(mfrow=c(1,2)) plot(0:10, dbinom(0:10, prob=0.01, size=200), xlab="x", ylab="P", main="Binomial, n=200, p=0,01") plot(0:10, dpois(0:10,lambda=0.01*200), xlab="x", ylab="P", main=expression(paste("Poisson, ", lambda,"=2"))) par(mfrow=c(1,1))
- Quais suas conclusões?
- Há uma interpretação biológica para isto?
Distribuições discretas mais usadas
Distribuição | Parâmetros | Parâmetros no R | Função no R [dpqr] | Suporte | Assimetria | Esperança | Variância |
---|---|---|---|---|---|---|---|
BINOMIAL | $(p,n)$ | prob ,size | binom | $[0 , n]$ | direita, esquerda, nenhuma | $n p$ | $np(1-p)$ |
BINOMIAL NEGATIVA: parametrização 1 | $(p,n)$ | prob ,size | nbinom | $[0, \infty]$ | direita | $\frac{n(1-p)}{p}$ | $\frac{n(1-p)}{p^2}$ |
BINOMIAL NEGATIVA: parametrização 2 | $(\mu,k)$ | mu ,size | nbinom | $[0, \infty]$ | direita | $\mu$ | $\mu+\frac{\mu^2}{k}$ |
GEOMÉTRICA | $ p $ | prob | geom | $[0, \infty]$ | direita | $\frac{1-p}{p}$ | $\frac{1-p}{p^2}$ |
POISSON | $\lambda$ | lambda | pois | $[0, \infty]$ | direita | $\lambda$ | $\lambda$ |
Exercícios
Faça os exercícios 201.1 a 201.4 no sistema notaR.
Questões Motivadoras para Discussão
- Qual a relação entre o conceito de distribuição de probabilidade e a variabilidade/heterogeneidade observada nos dados dos estudos de Ecologia e Recursos Naturais? Como essa questão está ligada ao conceito de “variância” da Inferência Estatística Clássica?
- A distribuições discretas frequentemente são utilizadas como modelos de “contagens” associadas a fenômenos naturais que ocorrem continuamente no tempo e/ou no espaço. Como é a relação entre as distribuições discretas e o comportamento temporal e/ou espacial dos fenômenos observados?
- Por que é necessária a distinção entre variáveis discretas e variáveis contínuas? Essa distinção é de natureza puramente matemática ou reflete aspectos objetivos e práticos referentes à coleta de dados nos estudos de Ecologia e Recursos Naturais?
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's guide to mathematical modelling in ecology and evolution. Princenton, Princenton University Press.
Na Internet
- Portal sobre distribuições de probabilidades na Wikipedia: http://en.wikipedia.org/wiki/Probability_distribution
- O Probability Distributions Viewer é um aplicativo em shiny que cria uma página html com gráficos interativos de distribuições de probabilidade. Você pode executá-lo de seu site interativo, ou localmente em seu computador. Instruções para executar localmente abaixo
- Distributions of Random Variables, simulações de amostras de diferentes distribuições de probabilidades, programadas em shiny.
- Virtual Laboratories in Probability and Statistics: portal completo e aprofundado sobre probabilidade, teoria estatística e processos estocásticos. Excelentes textos de estudo, aplicativos, dados, bibliografia e recursos para programação.
- Distribuições interativas on-line do Statistics Online Computational Resource da UCLA: http://www.socr.ucla.edu/htmls/SOCR_Distributions.html
- Capítulo sobre variáveis aleatórias do e-book de Probabilidade e Estatística da UCLA: http://wiki.stat.ucla.edu/socr/index.php/EBook#Chapter_IV:_Probability_Distributions
- Excelente vídeo-aula sobre o conceito de momentos de distribuições probabilísticas, do projeto STEM do MIT: https://ocw.mit.edu/resources/res-tll-004-stem-concept-videos-fall-2013/videos/probability-and-statistics/moments-of-distributions/.
- Mapa interativo de relações entre as distribuições de probabilidades. Um resumo em html do execelente mapa de Leemis & McQueston (2008).
- 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:45-53.pdf na página do autor
- Tópico sobre distribuições estatísticas no R na apostila on-line do curso Uso da Linguagem R para Análise de dados Ecológicos.
- ProbFact, um canal no twiter que posta fatos sobre distribuições de probabilidades.
- Probability cheatsheet: teoria básica da probabilidade em 10 páginas.
- Sobre o conceito matemático de infinito: alguns bons vídeos:
- O infinito é maior do que você acredita, do fantástico canal de popularização da matemática Numberphille
- Paradoxos da infinitude, do mesmo canal
- Como um hotel de infinitos quartos pode lotar, uma animação do canal Veritasium
- O Hotel do Paradoxo do Infinito, TED Talk por Jeff Dekofsky
- 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. Journal of the Institute of Actuaries, 22.
- Bomb sight: mapa interativo dos locais atingidos.
Visualizador de distribuições usado em aula
O Probability Distributions Viewer é um aplicativo em shiny que cria uma página html com gráficos interativos de distribuições de probabilidade. Você pode executá-lo de seu site interativo, ou localmente em seu computador.
Veja aqui um vídeo que explica o uso da interface.
Para executar a interface em seu computador abra o R execute os comandos:
## Pacotes necessários packages <- c("shiny", "dplyr", "shiny.i18n", "purrr", "shiny.i18n", "R6", "hypergeo", "shinydashboard", "rmarkdown") ## Verifica se todos os pacotes estão instalados. ## Instala os faltantes se for caso if (length(setdiff(packages, rownames(installed.packages()))) > 0) { install.packages(setdiff(packages, rownames(installed.packages()))) } ## Carrega os pacotes lapply(packages, require, character.only = TRUE) ## Baixa o código do app do GitHub e executa o app localmente ## A página deve abrir em seu navegador padrão runGitHub("ProbabilityDistributionsViewer", "ksmzn")