R (linguagem de programação)/Distribuições de probabilidade

Origem: Wikilivros, livros abertos por um mundo aberto.
Ir para: navegação, pesquisa

Até agora R foi vista como uma linguagem de programação comum. Este capítulo enfoca na especialidade da linguagem: a estatística.

Para um bom entendimento deste capítulo, é recomendável um bom conhecimento de estatística; para isto consulte:

Distribuição normal[editar | editar código-fonte]

Em geral, para cada distribuição de probabilidade - e seria tentador dizer que para toda distribuição de probabilidade que alguém tenha algum dia inventado - R possui quatro funções associadas.

Vejamos, por exemplo, a distribuição mais importante de todas, a Distribuição normal.

rnorm é a função que simula variáveis normais. A forma de usar é:

  x <- rnorm(n, mean, sd)

em que n é o tamanho da amostra (x será um vetor caso n > 1), e mean e sd são parâmetros (opcionais) dando a média e o desvio-padrão da normal. Se mean ou sd forem omitidos, serão usados os valores, respectivamente, de 0 e 1.

Por exemplo:

  x <- rnorm(sd = 2, n = 10)

gera um vetor com 10 valores independentes e identicamente distribuídos, com média zero e desvio-padrão 2.

Para ver o gerador de normais em ação, siga a sequência abaixo:

  x <- rnorm(1000)
  hist(x)

dnorm é a função que dá a densidade da normal, ou seja, é a implantação da equação

f(x) = \frac{1}{\sigma \sqrt{2 \pi}} \exp(- \frac{(x - \mu)^2}{2 \sigma^2})\,.

Por exemplo, dnorm(1) retorna 0.2419707. Analogamente, dnorm pode receber um vetor de parâmetros, assim dnorm(seq(-1, 1, by=0.1)) gera todos valores da função densidade de probabilidade para os valores entre -1 e 1 (um vetor de 21 valores).

O histograma, gerado acima por simulação, também pode ser facilmente obtido usando-se dnorm:

  x <- seq(-6, 6, by=0.1)
  y <- dnorm(x)
  plot(x, y, type="l")

pnorm é a função que dá a função de probabilidade acumulada da normal. Por exemplo, pnorm(1.96) é aproximadamente 97,5%. pnorm também recebe um vetor, ou seja, a sequência abaixo gera uma curva-S:

  x <- seq(-6, 6, by=0.1)
  y <- pnorm(x)
  plot(x, y, type="l")

Finalmente, qnorm é a inversa de pnorm. q vem de quartil; para gerar o 1o quartil de uma normal de média 5 e desvio-padrão 3, basta fazer qnorm(0.25, mean = 5, sd = 3) (o valor é 2.976531). Analogamente, qnorm também pode receber um vetor de probabilidades, assim, a sequência abaixo é a inversa da curva-S:

  x <- seq(0.001, 0.999, length=1000)
  y <- qnorm(x)
  plot(x, y, type="l")