#==========================================================================================
# Aula 13 da disciplina ce223 (03/05/2011)
# Gabarito da avaliação assistida do conteúdo dado
#                                                               Professor Walmes M. Zeviani
#                                                                     www.leg.ufpr.br/ce223
#==========================================================================================

##*****************************************************************************************
## nome: Gabarito Tirei Dez
## GRR: 2011xxxx
## e-mail: g@g
#******************************************************************************************

#******************************************************************************************
# instruções:
# * resolver o que se pede no próprio script;
# * enviar arquivo de soluções com extensão .R e não em .doc, .txt, ou outros!
# * enviar para o e-mail walmeszeviani@gmail.com;
# * usar a palavra "ce223" no título da mensagem, ex "ce223 trabalho 2";
# * não usar CE223, nem ce 223, nem ce-233, você receberá uma notificação de recebimento;
# * enviar o trabalho até dia 26/04/11 às 19:00 horas;
# * sinalizar as suas dúvidas com comentários dentro do script.
#******************************************************************************************

#------------------------------------------------------------------------------------------
# X tem distribuição normal(0, 1), qual a P(X<-1)?

pnorm(-1, mean=0, sd=1)

#------------------------------------------------------------------------------------------
# X tem distribuição normal(0, 1), qual a P(X>0.5)?

pnorm(0.5, mean=0, sd=1, lower.tail=FALSE)
1-pnorm(0.5, mean=0, sd=1)

#------------------------------------------------------------------------------------------
# X tem distribuição normal(0, 1), qual a P(-0.33<X<1.33)?

pnorm(1.33, mean=0, sd=1)-pnorm(-0.33, mean=0, sd=1)

#------------------------------------------------------------------------------------------
# X tem distribuição normal(mu=-5, sd=2), qual a P(-7<X<-3)?

pnorm(-3, mean=-5, sd=1)-pnorm(-7, mean=-5, sd=2)

#------------------------------------------------------------------------------------------
# X tem distribuição beta(3, 3), qual a P(0.2<X<0.45)?

pbeta(0.45, 3, 3)-pbeta(0.2, 3, 3)

#------------------------------------------------------------------------------------------
# X tem distribuição binomial(n=40, p=0.35), qual a P(X=14)?

dbinom(14, size=40, prob=0.35)

#------------------------------------------------------------------------------------------
# X tem distribuição binomial(n=40, p=0.35), qual a P(X<8)?

pbinom(8, size=40, prob=0.35)-dbinom(8, size=40, prob=0.35)
pbinom(7, size=40, prob=0.35) # porque sabemos que só assume valores inteiros

#------------------------------------------------------------------------------------------
# X tem distribuição binomial(n=40, p=0.35), qual a P(X<=8)?

pbinom(8, size=40, prob=0.35)

#------------------------------------------------------------------------------------------
# X tem distribuição binomial(n=40, p=0.35), qual a P(20<X<=32)?

pbinom(32, size=40, prob=0.35)-pbinom(20, size=40, prob=0.35)

#------------------------------------------------------------------------------------------
# X tem distribuição Poisson(taxa=5), qual a P(X>10)?

1-ppois(10, lambda=5)
ppois(10, lambda=5, lower.tail=FALSE)

#------------------------------------------------------------------------------------------
# faça o gráfico da função densidade da normal(10, sd=2) de 0 à 20

curve(dnorm(x, mean=10, sd=2), 0, 20)

#------------------------------------------------------------------------------------------
# represente com uma linha vertical a média dessa distribuição no gráfico

abline(v=10)

#------------------------------------------------------------------------------------------
# faça o gráfico da beta(3,6), coloque uma vertical para a média e classifique a assimetria

curve(dbeta(x, 3, 6), 0, 1)
abline(v=3/(3+6)) # assimétrica a direita

#------------------------------------------------------------------------------------------
# faça o gráfico de ditribuição de probabilides da binomial(n=12, p=45)

x <- 0:12
px <- dbinom(x, size=12, p=0.45)
plot(x, px, type="h")

#------------------------------------------------------------------------------------------
# adicione ao gráfico a função densidade da normal com a correspondente média e variância

curve(dnorm(x, mean=12*0.45, sd=sqrt(12*0.45*(1-0.45))), add=TRUE, col=2)

#------------------------------------------------------------------------------------------
# faça o gráfico de densidade da gamma(shape=4, scale=4) de 0 à 50

curve(dgamma(x, shape=4, scale=4), 0, 50)

#------------------------------------------------------------------------------------------
# adicione ao gráfico verticais representando os quantis de 0.05, 0.25, 0.50, 0.75 e 0.95

qts <- c(0.05,0.25,0.50,0.75,0.975)
abline(v=qgamma(qts, shape=4, scale=4))

#------------------------------------------------------------------------------------------
# faça o gráfico de densidade acumulada da gamma(shape=4, scale=4) de 0 à 50

curve(pgamma(x, shape=4, scale=4), 0, 50)

#------------------------------------------------------------------------------------------
# adicione ao gráfico verticais representando os quantis de 0.05, 0.25, 0.50, 0.75 e 0.95

abline(v=qgamma(qts, shape=4, scale=4), h=qts)

#------------------------------------------------------------------------------------------
# obtenha 1000 valores da distribuição triangular(min=0, max=2), use soma de 2 uniforme(0,1)

x <- matrix(runif(20000,0,1), ncol=2)
x <- apply(x, 1, sum)

#------------------------------------------------------------------------------------------
# faça o histograma com frequencias relativas desses valores

hist(x)

#------------------------------------------------------------------------------------------
# adicione a linha density e os traços junto ao eixo x (rug)

hist(x, freq=FALSE)
lines(density(x), col=2)
rug(x)

#------------------------------------------------------------------------------------------
# refaça o histograma com amplitude de classe igual à 0.1

hist(x, freq=FALSE, breaks=seq(0,2,by=0.1))

#------------------------------------------------------------------------------------------
# refaça o histograma com 12 classes

hist(x, freq=FALSE, nclass=12)
hist(x, freq=FALSE, breaks=seq(0,2,length=12+1))

#------------------------------------------------------------------------------------------
# adicione ao histograma verticais representando a média, mediana, 1 e 3 quartis

qts <- fivenum(x)
abline(v=c(qts[2:4], mean(x)), col=2)

#------------------------------------------------------------------------------------------
# refaça o histograma usando uma cor diferente para a classe modal

ht <- hist(x, freq=FALSE, breaks=seq(0,2,length=12+1))
modal <- which.max(ht$counts)
cols <- rep("white", times=length(ht$counts))
cols[modal] <- "yellow"
hist(x, freq=FALSE, breaks=seq(0,2,length=12+1), col=cols)

#------------------------------------------------------------------------------------------
# importe os conjuntos de dados disponíveis nos links
# use a função read.table(..., header=TRUE, sep="\t", quote="")
# * http://www.leg.ufpr.br/~walmes/ensino/ce223-2011-01/bovinos.txt (use nome bov)
# * http://www.leg.ufpr.br/~walmes/ensino/ce223-2011-01/ovinos.txt (use nome ovi)
# * http://www.leg.ufpr.br/~walmes/ensino/ce223-2011-01/producao-la.txt (use nome la)

bov <- read.table("http://www.leg.ufpr.br/~walmes/ensino/ce223-2011-01/bovinos.txt",
                  header=TRUE, sep="\t", quote="")
str(bov)
ovi <- read.table("http://www.leg.ufpr.br/~walmes/ensino/ce223-2011-01/ovinos.txt",
                  header=TRUE, sep="\t", quote="")
str(ovi)
la <- read.table("http://www.leg.ufpr.br/~walmes/ensino/ce223-2011-01/producao-la.txt",
                  header=TRUE, sep="\t", quote="")
str(la)

#------------------------------------------------------------------------------------------
# quantos dados completos possui os dados de bovinos e ovinos?

bov.c <- bov[complete.cases(bov),]
nrow(bov.c)

ovi.c <- ovi[complete.cases(ovi),]
nrow(ovi.c)

#------------------------------------------------------------------------------------------
# faça a justaposição (merge) dos dados de ovinos e produção de lã

ovila <- merge(ovi, la[,-c(1,2)], by.x="Micro.região", by.y="Micro.região")
str(ovila)

#------------------------------------------------------------------------------------------
# pegue o arquivo resultado e remova os NAs. complete.cases()

ovila.c <- ovila[complete.cases(ovila),]

#------------------------------------------------------------------------------------------
# faça o gráfico da la em função do número de ovinos separado por estado. xyplot()

require(lattice)
xyplot(X2007.y~X2007.x|Sigla, data=ovila.c)

#------------------------------------------------------------------------------------------
# obtenha o número de microregiões em cada estado que possuem bovinos

with(bov.c, tapply(X2007, Sigla, length))

#------------------------------------------------------------------------------------------
# obtenha o número total de cabeças de bovinos por estado

with(bov.c, tapply(X2007, Sigla, sum))

#------------------------------------------------------------------------------------------
# faça a justaposição (merge) dos dados de ovinos e bovinos

ovibov <- merge(ovi, bov[,-c(1,2)], by.x="Micro.região", by.y="Micro.região")

#------------------------------------------------------------------------------------------
# faça o gráfico do nº de bovinos em função do nº de ovinos separado por estado. xyplot()

xyplot(X2007.x~X2007.y|Sigla, data=ovibov)

#------------------------------------------------------------------------------------------
# qual o estado que possui maior produção de lã?

la.c <- la[complete.cases(la),]
lamax <- with(la.c, tapply(X2007, Sigla, sum))
levels(la.c$Sigla)[which.max(lamax)]

#------------------------------------------------------------------------------------------
# qual o rebanho bovino total do Centro-Oeste? (GO, MT, MS, DF)

sum(bov.c$X2007[bov.c$Sigla%in%c("GO", "MT", "MS", "DF")])

#------------------------------------------------------------------------------------------
# das microregiões do PR, qual produz mais lã, e qual o seu número de bovinos e ovinos?

PR.la <- subset(la.c, Sigla=="PR")
PR.la[which.max(PR.la$X2007),]

PR.ovi <- subset(ovi.c, Sigla=="PR")
PR.ovi[which.max(PR.ovi$X2007),]

PR.bov <- subset(bov.c, Sigla=="PR")
PR.bov[which.max(PR.bov$X2007),]

#------------------------------------------------------------------------------------------
# faça o gráfico de boxplot do número de bovinos em função do estado

boxplot(X2007~Sigla, data=bov.c)

#------------------------------------------------------------------------------------------
# divida em 10 clases de igual aplitude o número de bovinos

clas1 <- cut(bov.c$X2007, seq(min(bov.c$X2007), max(bov.c$X2007), length=10+1))
str(clas1)
table(clas1)

#------------------------------------------------------------------------------------------
# divida em 10 clases com aprox o mesmo número de elementos o número de bovinos

aux <- sort(bov.c$X2007)
breaks <- round(seq(1, length(aux), l=10+1), digits=0)
seq <- aux[breaks]
clas2 <- cut(bov.c$X2007, seq)
str(clas2)
table(clas2)

#------------------------------------------------------------------------------------------
# faça o histograma do número de bovinos e adicione uma linha de density

hist(bov.c$X2007, freq=FALSE)
lines(density(bov.c$X2007), col=2)

hist(log(bov.c$X2007), freq=FALSE)
lines(density(log(bov.c$X2007)), col=2)

#------------------------------------------------------------------------------------------
