CE-223: Estatística Computacional

Prova final, 04 de Julho de 2007

  1. (3,0 pontos) Seja X uma v.a. com distribuição binomial negativa com função de massa de probabilidade P[X = x] = (x+n-1 n-1 ) pn(1 - p)x,x = 0,1,2,,n > 0 e 0 < p 1, onde x representa o número de falhas que ocorrem em uma sequência de ensaios de Bernoulli antes que o número n desejado de sucessos ocorra. Mostrar os comandos do R para calcular as probabilidades pedidas a seguir para n = 3 e p = 0, 55
    1. P[X = 5]
    2. P[X 6]
    3. P[X < 7]
    4. P[2 < X < 9]
    5. P[X - 3∣≥ 2]
    6. P[X - 6> 3]

      > dnbinom(5, size = 3, prob = 0.55)

      [1] 0.06447182

      > pnbinom(5, size = 3, prob = 0.55, lower = F)

      [1] 0.08845586

      > pnbinom(6, size = 3, prob = 0.55)

      [1] 0.9502272

      > diff(pnbinom(c(2, 8), size = 3, prob = 0.55))

      [1] 0.3920706

      > pnbinom(1, size = 3, prob = 0.55) + pnbinom(4, size = 3, prob = 0.55, lower = F)

      [1] 0.5439089

      > pnbinom(2, size = 3, prob = 0.55) + pnbinom(9, size = 3, prob = 0.55, lower = F)

      [1] 0.6010053
  2. (2,0 pontos) A tabela a seguir mostra a distribuição de frequências de trabalhadores desempregados do setor de serviços em função da idade sexo e duração do período de desemprego.

    duração
    Abaixo de 35 anos
    Acima de 35 anos




    (dias) FemininoMasculinoFemininoMasculino






    1-7 23 30 12 15
    8-30 14 19 21 27
    Mais de 30 18 19 30 35






    Mostre os comandos para:

    1. entrar com estes dados em uma estrutura adequada no R.
    2. encontrar o número total de pessoas em cada faixa etária e para cada tempo de duração do desemprego.
    3. encontrar a proporçao de homens e mulheres entre os que ficaram desempregados por menos de 30 dias
    4. encontrar a probabilidade de uma pessoa sorteada ao acaso deste grupo ter ficado desempregada por mais de 30 dias e ser do sexo feminino
    5. encontrar a probabilidade de uma pessoa sorteada ao acaso deste grupo ter ficado desempregada por mais de 8 dias e ser do sexo masculino

    Resposta:


    1.   > dat <- array(c(23, 14, 18, 30, 19, 19, 12, 21, 30, 15, 27, 35), dim = c(3, 2,
        +     2))
        > dimnames(dat) <- list(c("1-7", "8-30", ">30"), c("F", "M"), c("<35", ">35"))
        > dat

        , , <35
        
              F  M
        1-7  23 30
        8-30 14 19
        >30  18 19
        
        , , >35
        
              F  M
        1-7  12 15
        8-30 21 27
        >30  30 35

    2.   > margin.table(dat, mar = 3)

        <35 >35
        123 140

        > prop.table(margin.table(dat, mar = 3))

              <35       >35
        0.4676806 0.5323194

        > margin.table(dat, mar = 1)

         1-7 8-30  >30
          80   81  102

        > prop.table(margin.table(dat, mar = 1))

              1-7      8-30       >30
        0.3041825 0.3079848 0.3878327

    3.   > prop.table(margin.table(dat[1:2, , ], 2))

                F         M
        0.4347826 0.5652174

    4.   > sum(dat[3, 1, ])/sum(dat)

        [1] 0.1825095

    5.   > sum(dat[c(2, 3), 2, ])/sum(dat)

        [1] 0.3802281
  3. (4,0 pontos) Uma seguradora recebe diariamente um número de notificações de sinistros que segue uma distribuição de Poisson de parâmetro 12. Para cada sinistro o custo associado segue uma distribuição exponencial de com distribuição exponencial de média igual a 500 unidades de valor (u.v.).
    (i) Mostre comandos para se obter, por simulação, a distribuição do custo diário com sinistros.
    (ii) Faça uma representação gráfica adequada desta distribuição, incluindo o uso de estimação de densidades.
    (iii) Obtenha o custo diário médio, mediano, os quartis e o décimo e nonagésimo percentil desta distribuição.

    Resposta:
    (i) Inicialmente geramos uma amostra de tamanho 10000 do número de sinistros por dia. A seguir definimos uma função que recebe o número de sinistros, gera o número equivalente de custos de uma distribuição exponencial e soma valores os amostrados. Usamos sapply() para gerar uma amostra do custo diário, para cada um dos números de sinistros gerados.


      > sin <- rpois(10000, lam = 10)
      > custo <- sapply(sin, function(ns) sum(rexp(ns, rate = 1/500)))

    Uma solução alternativa seria usar o fato de que a soma de v.a.’s independentes com distribuição exponencial tem uma distribuição gamma.


      > custo <- sapply(sin, function(ns) rgamma(1, shape = ns, rate = 1/500))

    (ii) Para visualização vamos usar um histograma das amostras sobreposto por uma estimação de densidade.


      > hist(custo, prob = T, main = "")
      > lines(density(custo))

    pict

    (iii) As estatística pedidas são calculadas a partir da amostra obtida.


      > mean(custo)

      [1] 5021.853

      > median(custo)

      [1] 4766.835

      > quantile(custo, prob = c(0.25, 0.75))

           25%      75%
      3405.071 6382.459

      > quantile(custo, prob = c(0.1, 0.9))

           10%      90%
      2367.256 7971.687
  4. (1,0 pontos) Escreva uma função que receba um vetor numérico e retorne: o número de valores menores ou iguais a 10 e o número de valores maiores que 10, e ainda as médias para todos os dados, para os menores ou iguais a 10 e para os maiores que 10. Resposta:

      > fc <- function(x){
      +   if(any(!is.numeric(x))) stop("elementos não numéricos")
      +   ind <- cut(x, br=c(-Inf, 10, Inf))
      +   ns <- tapply(x,ind, length)
      +   mds <- c(geral=mean(x),tapply(x,ind, mean))
      +   return(list(tamanhos = ns, medias = mds))
      + }
      > ## testando a função com um conjunto de dados simulados
      > dados <- rpois(30, lam=12)
      > fc(dados)

      $tamanhos
      (-Inf,10] (10, Inf]
             10        20
      
      $medias
          geral (-Inf,10] (10, Inf]
       11.86667   8.20000  13.70000