O R para o cálculo de probabilidades


26 de novembro de 2007

1 Probabilidades com Base em um Conjunto de Dados

Dados contidos no arquivo de nome aeusp.txt  
 
As informações referem-se a uma pesquisa realizada pela Associação dos  
Educadores da USP (AEUSP), sobre aspectos sócio-econômicos e culturais  
de comunidades de baixa renda da região do Butantã, São Paulo. Sendo  
um conjunto de dados reais, poderão aparecer incoerências oriundas de  
equívocos na digitação ou na coleta de dados. Nestes casos, adote uma  
alternativa que permita contornar a dificuldade encontrada.  
 
 
coluna 1: Número do questionário (Num).  
coluna 2: Comunidade (Comun).  
coluna 3: Sexo (Sexo):  
1: masculino  
2: feminino  
coluna 4: Faixas de idade, em anos (Idade):  
1: de 14 (inclusive) a 25 (exclusive)  
2: de 25 (inclusive) a 35 (exclusive)  
3: de 35 (inclusive) a 45 (exclusive)  
4: 45 anos ou mais  
coluna 5: Estado Civil (Ecivil):  
1: solteiro  
2: casado  
3: divorciado  
4: viúvo  
5: outro  
coluna 6: Região de Procedência (Reproce).  
coluna 7: Tempo de residência em São Paulo, em anos (Temposp).  
coluna 8: Número de residentes na casa (Resid).  
coluna 9: Trabalho (Trab):  
1: sim  
2: não  
3: aposentado  
coluna 10: Tipo de trabalho, só para os que responderam trabalham (Ttrab):  
1: empregado com carteira  
2: empregado sem carteira  
3: profissional liberal  
4: autônomo  
5: rural  
coluna 11: Idade que começou a trabalhar, em anos (Itrab).  
coluna 12: Renda familiar em faixas de reais (Renda):  
1: de 0 (inclusive) a 150 (exclusive)  
2: de 150 (inclusive) a 300 (exclusive)  
3: de 300 (inclusive) a 450 (exclusive)  
4: de 450 (inclusive) a 900 (exclusive)  
5: de 900 (inclusive) a 1500 (exclusive)  
6: 1500 ou mais  
coluna 13: Acesso a computador (Acompu):  
1: sim  
2: não  
coluna 14: Série em que parou de estudar (Serief):  
em branco: não parou de estudar  
1 a 8: séries do ensino fundamental  
9 a 12: séries do ensino médio

A leitura deste conjunto de dados é feita via o comando :

  > # Leitura dos dados aeusp
  > aeusp<-read.csv("http://www.leg.ufpr.br/~joel/dados/aeusp.csv")

No exercício 32 do capítulo 2, pergunta-se:

  1. Qual a probabilidade da idade do entrevistado ser inferior a 35 anos ?

      > # Calculando a frequencia relativa de menores de 35 anos
      > table(aeusp$Idade<3)/length(aeusp$Idade)

          FALSE      TRUE
      0.3948052 0.6051948

    O resultado abaixo da coluna TRUE indica a probabilidade requisitada.

    ou então:

      > # Armazenando a tabela com as idades menores que 35 anos
      > tab.menos35<-table(aeusp$Idade<3)
      > # Calculando as frequências relativas
      > prop.table(tab.menos35)

          FALSE      TRUE
      0.3948052 0.6051948
  2. Dado que o morador tem menos de 35 anos, qual é a probabilidade dele ser do sexo feminino?

      > # Criando um subconjunto com os menores de 35 anos
      > aeusp35<-subset(aeusp,aeusp$Idade<3)
      > # Calculando as frequencias da variavel sexo
      > table(aeusp35$Sexo)/length(aeusp35$Sexo)

              1         2
      0.4463519 0.5536481

2 Funções Básicas

O pacote R possui diversos recursos para cálculo de probabilidades, especialmente em modelos usuais.

Existem 4 funções básicas para esta finalidade que começam pelas letras: p,d,q,r

Veja o exemplo com a distribuição normal cuja a média é igual a 10 e o desvio padrão é igual a 4

  1. Qual a probabilidade acumulada até o valor 8?
      > # calculando probabilidades acumuladas na distribuicao normal
      > pnorm(8,10,4)

      [1] 0.3085375
  2. Qual o valor da função densidade de probabilidade quando x = 4?
      > # avaliando a densidade na distribuicao normal
      > dnorm(4,10,4)

      [1] 0.0323794
  3. Qual o valor da distribuição normal cuja probabilidade acumulada até ele é igual a 70% ?
      > # avaliando um quantil da distribuicao normal
      > qnorm(0.7,10,4)

      [1] 12.09760
  4. Gere 5 números aleatórios da distribuição normal ?
      > # 5 numeros aleatorios da distribuicao normal com media 10 e desvio padrao 4
      > rnorm(5,10,4)

      [1]  7.197671  5.909457  7.385443  2.463359 10.799111

Considere agora o seguinte exemplo, com uma distribuição discreta: Uma moeda é arremessada 5 vezes e a variável de interesse é o número de caras.

  1. Qual a chance de ocorrência de duas caras ?

      > # calculando a densidade binomial para x=2,n=5,p=0.5
      > dbinom(2,5,0.5)

      [1] 0.3125
  2. Qual a distribuição das probabilidades?

      > # avaliando a densidade binomial de 0 a 5 para n=5 e p=0.5
      > dbinom(0:5,5,0.5)

      [1] 0.03125 0.15625 0.31250 0.31250 0.15625 0.03125
  3. Qual a probabilidade de obter 3 caras ou menos ?
      > # probabilidade acumulada ate 3 da distribuicao binomial
      > pbinom(3,5,0.5)

      [1] 0.8125
  4. Qual a probabilidade de obter pelo menos uma cara ?
      > # densidade binomial para o valor 0,
      > 1-dbinom(0,5,0.5)

      [1] 0.96875

Um estudo assegura que o número de gols em uma partida de copa do mundo segue um processo de Poisson com média igual a 2,4584 gols por jogo. Lembre-se que na distribuição de Poisson, a intensidade de ocorrência do evento de interesse (gol) é suficiente para especificar completamente a distribuição de probabilidades. Em outras palavras, conhecendo a média, é possível obter as probabilidades para esta variável aleatória.

Neste estudo sobre os gols, a distribuição teórica seria :

  > dpois(0:10,2.4584)

   [1] 0.0855717563 0.2103696057 0.2585863193 0.2119028691 0.1302355034
   [6] 0.0640341923 0.0262369431 0.0092144144 0.0028315895 0.0007734644
  [11] 0.0001901485

O conjunto de dados de gols, por partida, limitando o máximo em 5 gols, segue o padrão abaixo:

  > gols<-rep(c(0,1,2,3,4,5),c(19,49,60,47,32,18))
  > tab.gols<-table(gols)
  > barplot(tab.gols)

pict

Compare a frequência esperada e a freqência observada

  > freq.esp<-dpois(0:5,2.4584)
  > freq.obs<-matrix(prop.table(tab.gols))
  > freqs<-data.frame(esp=freq.esp,obs=freq.obs)
  > plot(freqs$esp,freqs$obs)
  > abline(0,1)

pict

Com este modelo probabilístico, qual a chance de que numa partida sejam feitos mais do que 5 gols?

  > 1-ppois(4,2.4584)

  [1] 0.1033339

3 Gráficos de Funções de probabilidade

Caso o interesse seja no comportamento da função de densidade de probabilidade, no caso discreto, o gráfico pode ser obtido por meio de:

3.1 Distribuição de Bernoulli

X ~ Bernoulli(0.5)

  > bernoulli<-dbinom(0:1,1,0.5)
  > plot(0:1,bernoulli,type="h")

pict

  > barplot(table(rbinom(100,10,0.5)))

pict

3.2 Distribuição Binomial

X ~ Binomial(10,0.5)

  > binomial<-dbinom(0:10,10,0.5)
  > plot(0:10,binomial,type="h")

pict

  > barplot(table(rbinom(100,10,0.5)))

pict

3.3 Distribuição Geométrica

X ~ Geométrica(0.5)

  > geometrica<-dgeom(0:5,0.5)
  > plot(0:5,geometrica,type="h")

pict

  > barplot(table(rgeom(100,0.5)))

pict

3.4 Distribuição Uniforme

X ~ Uniforme Contínua(0,1)

  > curve(dunif(x,0,1),0,1)

pict

  > boxplot(runif(100,0,1))

pict

3.5 Distribuição Exponencial

X ~ Exponencial(1)

  > curve(dexp(x,1),0,10)

pict

  > boxplot(rexp(100,1))

pict

3.6 Distribuição Normal

X ~ Normal(0,1)

  > curve(dnorm(x),-4,4)

pict

  > boxplot(rnorm(100))

pict