---
output:
  html_document:
    css: ~/Dropbox/ridiculas/markdown/ridiculas.css
    self_contained: yes
---

<table class="none">
<tr>
<td colspan="2" align="center"><h2>CE 001 - Bioestatística</h2></td>
</tr>
<tr>
<td>Universidade Federal do Paraná<br></td>
<td align="right"><a href="http://www.leg.ufpr.br/~walmes">Prof. Dr. Walmes M. Zeviani</a></td>
</tr>
<tr>
<td>Curso de Ciências Biológicas - 2015/1<br></td>
<td align="right"><a href="http://www.leg.ufpr.br">Lab. de Estatística e Geoinformação - LEG</a></td>
</tr>
<tr>
<td></td>
<td align="right"><a href="http://www.est.ufpr.br">Departamento de Estatística - UFPR</a></td>
</tr>
</table>

```{r, include=FALSE}
##-----------------------------------------------------------------------------
## Definções do knitr. Não rodar.

opts_chunk$set(
    cache=FALSE,
    tidy=FALSE,
    fig.width=7,
    fig.height=4.5,
    fig.align="center",
    dpi=100,
    dev="png",
    dev.args=list(png=list(family="Ubuntu Light", type="cairo")))
options(width=90)

```

```{r, include=FALSE}
##=============================================================================
## Bioestatítstica                                      www.leg.ufpr.br/ce001mb
## Curso de Ciências Biológicas - 2015/1
##                                                         Prof. Walmes Zeviani
##                                                            LEG - DEST - UFPR
##
##                                                                 (08/04/2015)
##=============================================================================

```

****
# Análise descritiva dos dados do questionário

```{r}
##-----------------------------------------------------------------------------
## Pacotes usados na sessão.

require(lattice)
require(EnvStats)
require(fBasics)

```

```{r, message=FALSE, results="hide"}
##-----------------------------------------------------------------------------
## Leitura dos dados.

da <- read.table("quest.txt", sep="\t",
                 stringsAsFactors=FALSE, header=TRUE,
                 colClasses=c("character","factor","integer")[
                     c(1,2,3,2,2,2,2,2,1,2,2,2,2,2,3,3)])
str(da)

```

```{r}
##-----------------------------------------------------------------------------
## Sexo.

tb <- xtabs(~sexo, data=da)
tb
prop.table(tb)

par(mfrow=c(1,2))
pie(tb)
barplot(tb, ylab="Frequência absoluta")
layout(1)

##-----------------------------------------------------------------------------
## Origem.

tb <- xtabs(~origem, data=da)
tb

tp <- prop.table(tb)
tp

pie(tb)

## barplot(tb, ylab="Frequência absoluta", horiz=TRUE)
barchart(tb, xlab="Frequência absoluta")

##-----------------------------------------------------------------------------
## Número de irmãos.

tb <- xtabs(~irmaos, data=da)
tp <- prop.table(tb)
tp

barplot(tb,
        xlab="Número de irmãos",
        ylab="Frequência absoluta")

##-----------------------------------------------------------------------------
## Para as demais variáveis.

pie(table(da$torcida))
pie(table(da$cnh))
pie(table(da$mora))
pie(table(da$transporte))

##-----------------------------------------------------------------------------
## Tabelas de frequência cruzada.

xt <- xtabs(~sexo+pet, data=da)
xt

addmargins(xt)
addmargins(prop.table(xt))

mosaicplot(xt)

0.16/0.29

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

xt <- xtabs(~cnh+sexo, data=da)
xt

addmargins(xt)
addmargins(prop.table(xt))

mosaicplot(xt)

da$cnhs <- da$cnh
levels(da$cnhs) <- c("S","S","S","N")

xt <- xtabs(~cnhs+sexo, data=da)
xt

addmargins(xt)
addmargins(prop.table(xt))

mosaicplot(xt)

##-----------------------------------------------------------------------------
## Histogramas.

hist(da$alt, xlab="Altura (cm)", col="blue4")
rug(da$alt)
head(da$alt, 10)

hist(da$peso, xlab="Peso (kg)")
rug(da$peso)

plot(ecdf(da$alt))
plot(ecdf(da$peso))

##-----------------------------------------------------------------------------
## Tabela de frequência.

x <- cut(da$alt, breaks=seq(150, 200, 10))
fq <- xtabs(~x)

cbind(f=fq, Fq=cumsum(fq), fr=prop.table(fq), Fr=cumsum(prop.table(fq)))

##-----------------------------------------------------------------------------
## Densidade Kernel.

plot(density(da$alt, kernel="rectangular")); rug(da$alt)
plot(density(da$alt, kernel="gaussian")); rug(da$alt)

plot(density(da$alt, kernel="gaussian", width=2)); rug(da$alt)
plot(density(da$alt, kernel="gaussian", width=10)); rug(da$alt)
plot(density(da$alt, kernel="gaussian", width=20)); rug(da$alt)

##-----------------------------------------------------------------------------
## Diagramas de dispersão.

plot(peso~alt, data=da, xlab="Altura (cm)", ylab="Peso (kg)")

xyplot(peso~alt, data=da, xlab="Altura (cm)", ylab="Peso (kg)")

xyplot(peso~alt, data=da, groups=sexo,
       xlab="Altura (cm)", ylab="Peso (kg)")

xyplot(peso~alt|sexo, data=da,
       ## type=c("p","smooth"),
       xlab="Altura (cm)", ylab="Peso (kg)")

db <- head(da[,c("peso","alt")], 10)

cor(db$peso, db$alt)
coef(lm(peso~alt, data=db))

summary(lm(peso~alt, data=da))
sqrt(0.5557)
cor(da$peso, da$alt)

x <- rnorm(100)
y <- rnorm(100, mean=x^2, sd=0.3)
cbind(x, y)
plot(x, y)

cor(x, y)

cor(x, y)

rank(c(3,4,4.5,4.5,5,8))

n <- length(da$alt)
## d <- rank(da$alt)-rank(da$peso)
## d <- rank(da$alt-da$peso)
## 1-6*sum(d)/(n*(n^2-1))

cor(da$alt, da$peso, method="spearman")
cor(da$alt, da$peso, method="pearson")

par(mfrow=c(1,2))
qqnorm(da$alt)
qqnorm(da$peso)
layout(1)

shapiro.test(da$alt)
shapiro.test(da$peso)


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

boxplot(alt~sexo, data=da)
bwplot(alt~sexo, data=da, pch="|")

bwplot(peso~sexo, data=da, pch="|")

##-----------------------------------------------------------------------------
## Tratamento dos dados de comprimento na mão.

da$mao
s <- strsplit(da$mao, split=";")
s <- lapply(s,
            function(x){
                x <- as.numeric(gsub(",", ".", x))
                as.data.frame(rbind(x))
            })

s <- do.call(plyr::rbind.fill, s)
names(s) <- c("polmin","indmin")
str(s)

da <- cbind(da, s)

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

hist(da$polmin)
hist(da$indmin)

xyplot(polmin~indmin, data=da,
       xlab="Polegar - mínimo (cm)", ylab="Indicador - mínimo (cm)")

## Razão áurea: (1+sqrt(5))/2.
da$r <- da$polmin/da$indmin

hist(da$r); rug(da$r)
plot(ecdf(da$r)); rug(da$r)

boxplot(da$r)

##-----------------------------------------------------------------------------
## Medidas descritivas.

basicStats(x=da$r)
summaryStats(da$r)

## stem(da$r)

```

```{r, eval=FALSE}

N <- 1000
n <- 2

xbar <- replicate(N,
                  mean(rnorm(n, mean=1.8, sd=0.1)))
hist(xbar)


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

N <- 1000
n <- c(1,2,3,5,10,20)
da <- data.frame(tam=rep(n, each=N))

da$xbar <- 
do.call(c,
        lapply(as.list(n),
               function(ni){
                   replicate(N, {
                       ## mean(rnorm(n=ni, mean=0, sd=1))
                       ## mean(runif(ni, min=0, max=1))
                       ## median(runif(ni, min=0, max=1))
                       ## sd(runif(ni, min=0, max=1))
                       ## mean(sample(c(1,2,5), size=ni, replace=TRUE))
                       ## median(sample(c(1,2,5), size=ni, replace=TRUE))
                       mean(rbeta(ni, 0.2, 0.2))
                   })
               }))
str(da)

require(lattice)

densityplot(~xbar|factor(tam), data=da,
            as.table=TRUE)

densityplot(~xbar|factor(tam), data=da,
            as.table=TRUE, scales="free")


qqmath(~xbar|factor(tam), data=da,
            as.table=TRUE)

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

N <- 500
n <- c(1,2,3,5,10,20)
da <- data.frame(tam=rep(n, each=N))

da$estim <- 
t(do.call(cbind,
        lapply(as.list(n),
               function(ni){
                   replicate(N, {
                       ## c(mean(runif(ni, 0, 1)),
                       ## mean(range(runif(ni, 0, 1))))
                       c(mean(rexp(ni, 1)),
                       mean(range(rexp(ni, 1))))
                   })
               })))
str(da)

require(lattice)

densityplot(~da[,"estim"][,1]+da[,"estim"][,2]|factor(tam), data=da,
            as.table=TRUE, scales="free")

densityplot(~xbar|factor(tam), data=da,
            as.table=TRUE, scales="free")


```
