Universidade Federal do Paraná
Curso de Estatística
CE 083 - Estatística Computacional I - 2014/2
Prof. Dr. Walmes Marques Zeviani


Aula 12

Tabela de conteúdo


Exercícios

Instruções para download dos dados.

##-----------------------------------------------------------------------------
## Leitura e edição dos dados.

setwd("/home/walmes/Dropbox/Ensino/ce083-2014-02/sabatina")
list.files(pattern="*.csv")
## [1] "ipea_demografico.csv"
da <- read.table("ipea_demografico.csv", header=TRUE,
                  sep=",", dec=".", stringsAsFactors=FALSE,
                  quote="")
str(da, vec.len=1)
## 'data.frame':    5596 obs. of  10 variables:
##  $ Sigla                                                              : chr  "AC" ...
##  $ Código                                                             : int  1200013 1200054 ...
##  $ Município                                                          : chr  "Acrelândia" ...
##  $ Mortalidade.até.cinco.anos.de.idade..por.mil.nascidos.vivos...2000.: num  31.5 ...
##  $ Taxa.de.fecundidade..2000.                                         : num  4.36 ...
##  $ Professores.do.fundamental.residentescom.curso.superior..2000.     : num  3.8 ...
##  $ População..2000.                                                   : int  7935 3490 ...
##  $ Esperança.de.vida.ao.nascer..2000.                                 : num  67.4 ...
##  $ Mortalidade.infantil..por.mil.nascidos.vivos...2000.               : num  28.3 ...
##  $ X                                                                  : logi  NA ...
da <- da[,-ncol(da)]
names(da) <- c("sig", "cod", "mun",
               "mort5", "txfec", "prof", "pop", "evn", "minf")
da <- transform(da, sig=factor(sig))
str(da, vec.len=1)
## 'data.frame':    5596 obs. of  9 variables:
##  $ sig  : Factor w/ 27 levels "AC","AL","AM",..: 1 1 ...
##  $ cod  : int  1200013 1200054 ...
##  $ mun  : chr  "Acrelândia" ...
##  $ mort5: num  31.5 ...
##  $ txfec: num  4.36 ...
##  $ prof : num  3.8 ...
##  $ pop  : int  7935 3490 ...
##  $ evn  : num  67.4 ...
##  $ minf : num  28.3 ...
  1. Qual o Estado com o maior número de municípios? Qual o número de municípios do Estado de Mato Grosso do Sul? Quantos Estados têm menos de 200 municípios?

    ## Tabela de frequência (número de resgistro por sigla pois cada
    ## registro é de um município).
    n <- xtabs(~sig, data=da)
    sort(n)
    
    ## sig
    ##  DF  RR  AP  AC  RO  AM  SE  MS  ES  RJ  AL  TO  MT  PA  RN  CE  PE  MA  PB  PI  GO  SC 
    ##   1  15  16  22  52  62  75  79  80  94 102 139 142 146 167 188 188 217 223 224 246 296 
    ##  PR  BA  RS  SP  MG 
    ## 403 421 499 646 853
    
    a <- names(n)[which.max(n)]
    b <- n["MS"]
    c <- sum(n<200)
    
    ## Resultado formatado.
    sprintf("%s, %d, %d.", a, b, c)
    
    ## [1] "MG, 79, 17."
    
  2. Quantos municípios tem população superior à 50 mil habitantes? Quantos do municípios com mais de 50 mil habitantes têm uma taxa de fecundidade maior que 3? Quantos municípios no Paraná tem taxa de fecundidade maior que 3?

    a <- sum(da$pop>50000, na.rm=TRUE)
    b <- with(da, sum(pop>50000 & txfec>3, na.rm=TRUE))
    c <- with(da, sum(sig=="PR" & txfec>3, na.rm=TRUE))
    
    sprintf("%d, %d, %d.", a, b, c)
    
    ## [1] "525, 76, 56."
    
  3. Qual o total de municípios da região sul (PR, SC e RS)? Qual a mortalidade infantil média da região sul? Qual destes Estados tem a maior média para a mortalidade infantil?

    ## Sub tabela só com os Estados do sul (torna a coisa mais fácil).
    sul <- droplevels(subset(da, sig%in%c("PR","SC","RS")))
    
    a <- nrow(sul)
    b <- mean(sul$minf, na.rm=TRUE)
    x <- with(sul, tapply(minf, sig, mean, na.rm=TRUE))
    sort(x)
    
    ##    RS    SC    PR 
    ## 16.30 17.55 21.19
    
    c <- names(x)[which.max(x)]
    
    sprintf("%d, %0.3f, %s.", a, b, c)
    
    ## [1] "1198, 18.300, PR."
    
  4. Qual o município do Brasil com maior expectativa de vida ao nascer? Qual a maior expectativa de vida ao nascer dentro do Estado do Paraná? Quantos municípios do Brasil tem expectativa de vida ao nascer superior ao do município com maior expectativa de vida do Paraná?

    ## Sub tabela só com os registros do PR.
    pr <- droplevels(subset(da, sig=="PR"))
    
    ## Os 5 primeiros.
    da$mun[order(da$evn, decreasing=TRUE)][1:5]
    
    ## [1] "São Caetano do Sul"   "Antônio Carlos"       "Planalto Alegre"     
    ## [4] "Massaranduba"         "São José do Inhacorá"
    
    ## head(plyr::arrange(da, -evn))
    
    a <- with(da, mun[which.max(evn)])
    b <- with(pr, max(evn, na.rm=TRUE))
    c <- sum(da$evn>b, na.rm=TRUE)
    
    sprintf("%s, %0.3f, %d.", a, b, c)
    
    ## [1] "São Caetano do Sul, 77.665, 9."
    
  5. Classifique os municípios em termos da esperança de vida ao nascer (evn) em baixa, média e alta considerandos os limites de classificação, abertos à esquerda, 54 - 65 - 75 - 80. Dica: use a função cut(). Qual o número de municípios na classe de alta de evn? Qual a proporção de municípios do Paraná na classe média de evn (desconsidere os dados incompletos)? Qual a média de mortalidade infantil para os municípios da classe alta de env do Paraná?

    ## Classificar os valores.
    ## da$class <- with(da, cut(evn, c(54,65,75,80)))
    da$class <- with(da, cut(evn, c(54,65,75,80), c("B","M","A")))
    
    x <- table(da$class); x
    
    ## 
    ##    B    M    A 
    ## 1533 3709  265
    
    a <- x["A"]
    
    pr <- droplevels(subset(da, sig=="PR" & !is.na(class)))
    x <- with(pr, table(class)/nrow(pr))
    b <- x["M"]
    
    c <- mean(pr$minf)
    
    sprintf("%d, %0.3f, %0.3f.", a, b, c)
    
    ## [1] "265, 0.905, 21.188."
    
  6. O coeficiente de variação é definido como 100 vezes o desvio-padrão da amostra dividido pela média da amostra, \(\text{CV} = 100\cdot \sqrt{S^2}/\bar{X}\). Calcule o coeficiente de variação para cada variável. Dica: crie uma função que calcula o CV. Qual das variáveis presentes na tabela, exceto população, tem o maior coeficiente de variação? Qual o coeficiente de variação da esperança de vida ao nascer para o Paraná? Quantos Estados tem coeficiente de variação superior ao do Paraná para esperança de vida ao nascer?

    ## Função para cálculo do CV.
    cv <- function(x, ...){
       100*sd(x, ...)/mean(x, ...)
    }
    
    x <- apply(da[,c(4:6,8:9)], 2, cv, na.rm=TRUE); x
    
    ##  mort5  txfec   prof    evn   minf 
    ## 66.464 25.987 91.858  7.175 54.193
    
    a <- names(x)[which.max(x)]
    
    b <- cv(pr$evn, na.rm=TRUE)
    c <- sum(with(da, tapply(evn, sig, cv, na.rm=TRUE))>b, na.rm=TRUE)
    
    sprintf("%s, %0.3f, %d.", a, b, c)
    
    ## [1] "prof, 4.311, 13."
    

Quando você perceber o quanto estava fácil (de novo).