Ajuste de modelos lineares e mistos no ambiente R

09 e 10 de Outubro de 2014 - Piracicaba - SP
Prof. Dr. Walmes M. Zeviani
Escola Superior de Agricultura “Luiz de Queiroz” - USP
Lab. de Estatística e Geoinformação - LEG
Pós Graduação em Genética e Melhoramento de Plantas Departamento de Estatística - UFPR

Análise exploratória

##-----------------------------------------------------------------------------
## Dados de carros Duster à venda no webmotors em 26/03/2014.

dus <-
    read.table("http://www.leg.ufpr.br/~walmes/data/duster_venda_260314.txt",
               header=TRUE, sep="\t", encoding="utf-8")
dus$ano <- factor(gsub(x=as.character(dus$ano), "/\\d{4}$", ""))
str(dus)

## Quantidade de NA em cada coluna.
apply(dus, MARGIN=2, function(x) sum(is.na(x)))

## Elimina registros com NA.
dus <- na.omit(dus)

##-----------------------------------------------------------------------------
## Gráfico de barras e setores.

x <- table(dus$cambio)
class(x)

## Se vem da xtabs() também tem classe `table`.
x <- xtabs(~cambio, data=dus)
class(x)

## barplot(x)
barplot(x,
        xlab="Tipo de câmbio",
        ylab="Frequência absoluta",
        col=c("seagreen", "yellowgreen"))

plot of chunk unnamed-chunk-2

barplot(x, horiz=TRUE,
        xlab="Tipo de câmbio",
        ylab="Frequência absoluta",
        col=c("seagreen", "yellowgreen"))
box(bty="L")

plot of chunk unnamed-chunk-2

## Cores com `green` no nome.
colors()
grep("green", colors(), value=TRUE)

## Gráfico de setores.
pie(x, col=c("seagreen", "yellowgreen"),
    main="Tipo de câmbio")

plot of chunk unnamed-chunk-2

## Para as cores do carro.
x <- xtabs(~cor, data=dus)
levels(dus$cor)

par(mar=c(4.1,7.1,2.1,2.1))
barplot(x, horiz=TRUE, las=1,
        col=c("blue", "white", "gray50", "Yellow", "gray90", "black",
            "green4", "red", "red4"))
mtext(side=2, text="Cor", line=5)
mtext(side=1, text="Frequência absoluta", line=2)
box(bty="L")

plot of chunk unnamed-chunk-2

##-----------------------------------------------------------------------------
## Gráficos de barras emplilhadas (stacked) e lado a lado.

x <- xtabs(~ano+cambio, data=dus)
x

## Barras empilhadas.
barplot(x, xlab="Câmbio", ylab="Frequência absoluta")

plot of chunk unnamed-chunk-2

colcamb <- c("seagreen", "yellowgreen")
barplot(t(x),
        xlab="Ano",
        ylab="Frequência absoluta",
        col=colcamb)
legend("topleft", legend=levels(dus$cambio),
       fill=colcamb, bty="n")

plot of chunk unnamed-chunk-2

## Barras lado a lado.
barplot(t(x), beside=TRUE,
        xlab="Ano", ylab="Frequência absoluta",
        col=colcamb)
legend("topleft", legend=levels(dus$cambio),
       fill=colcamb, bty="n")

plot of chunk unnamed-chunk-2

##-----------------------------------------------------------------------------
## Anotações nas barras.

x <- xtabs(~cambio+poten, data=dus); x

## Cores de preenchimento para as barras.
cols <- c("seagreen", "yellowgreen")

## Barras lado a lado.
bp <- barplot(t(x), beside=TRUE, col=cols,
              xlab="Tipo de câmbio", ylab="Frequência absoluta")

plot of chunk unnamed-chunk-2

bp

## Calcula a altura de uma palavra em termos da escala y do gráfico.
sh <- strheight("um texto qualquer"); sh
lim <- par()$usr[4]+3*sh

## Refaz o gráfico com espaço para o texto.
barplot(t(x), beside=TRUE, col=cols, ylim=c(0, lim),
              xlab="Tipo de câmbio", ylab="Frequência absoluta")
legend("topleft", title="Potência",
       legend=c("1.6","2.0"), fill=cols, bty="n")
text(x=c(bp), y=t(x), labels=x, pos=3)
box()

plot of chunk unnamed-chunk-2

##-----------------------------------------------------------------------------
## Gráficos de mosaico.

x <- xtabs(~ano+cambio, data=dus)
x

mosaicplot(x, ylab="Tipo de câmbio", xlab="Ano")

plot of chunk unnamed-chunk-2

mosaicplot(t(x), xlab="Tipo de câmbio", ylab="Ano")

plot of chunk unnamed-chunk-2

x <- xtabs(~novo+poten, data=dus); x

## Não dependência entre as variáveis.
mosaicplot(x, xlab="Condição", ylab="Potência",
           col=c("#009054","#900039"))

plot of chunk unnamed-chunk-2

## Pode-se especificar cores com a trinca RGB (red, green, blue),
## pode-se usar o padrão hexadecimal html para cores.

## Visite estes sites para pegar cores.
## browseURL("http://www.w3schools.com/html/html_colors.asp")
## browseURL("http://html-color-codes.info/")

##-----------------------------------------------------------------------------
## Histograma.

hist(dus$valor)

plot of chunk unnamed-chunk-2

hist(dus$valor, xlab="Preço de venda (R$)",
     ylab="Frequência absoluta", col="orange")
rug(dus$valor)

plot of chunk unnamed-chunk-2

## Se breaks é um escalar então entende-se que é uma *sugestão* para o
## número de clases.
hist(dus$valor,
     breaks=15,
     xlab="Preço de venda (R$)",
     ylab="Frequência absoluta",
     col="orange")
rug(dus$valor)

plot of chunk unnamed-chunk-2

## Se breaks é um vetor então entende-se que são os limites para
## classificação dos valores.
hist(dus$valor, breaks=seq(35000, 75000, 2500),
     xlab="Preço de venda (R$)",
     ylab="Frequência absoluta", col="#7700B7",
     sub="Amplitude de classe de R$ 2500", main=NULL)

plot of chunk unnamed-chunk-2

## Gráfico onde a altura é a densidade e não a frequência.
hist(dus$valor, prob=TRUE, breaks=seq(35000, 75000, 2500),
     xlab="Preço de venda (R$)",
     ylab="Frequência absoluta", col="#7700B7",
     sub="Amplitude de classe de R$ 2500", main=NULL)