Modelo linear

# primeiro vamos baixar o conjunto de dados utilizado no exemplo, baixando direto da web

dados<-read.table("https://19e31fa08e.cbaul-cdnwnd.com/fd58c287e8dcea635dc0088984f5a026/200000019-4d5374e4d0/suinos.txt",header=TRUE, sep="", dec=".")
 

# vamos carregar o pacote lattice e usar a função xyplot()

require(lattice)
 

# observe que a medida que o nível de proteína aumenta a conversão alimentar diminui

# note que cada leitegada tem valores bem distintos de conversão

xyplot(Conversao.Alimentar~Nivel.de.Proteina, group=Leitegada, data=dados, type="o")
 

# sabe-se que o efeito de leitegada existe e deve ser retirado da variação residual

 

# via modelo fixo pode-se retirar o efeito de leitegada analisando em "blocos ao acaso"

require(easyanova)
resultado1=ea1(dados, design=2)
resultado1
 

# via modelo misto pode-se retirar o efeito de leitegada incluindo a mesma como efeito aleatório

require(lme4)
modelo=lmer(Conversao.Alimentar~as.factor(Nivel.de.Proteina)+(1|Leitegada), data=dados)
 

# observe que o resultado do teste F foi o mesmo da análise em modelo fixo

anova(modelo) 
 

# para obter as médias criamos um modelo sem o intercepto

modelo2=lmer(Conversao.Alimentar~-1+as.factor(Nivel.de.Proteina)+(1|Leitegada), data=dados)
fixef(modelo2)
 

# assim, tando no modelo fixo quanto no misto tem-se o resultado mais adequado quanto retirado o efeito da leitegada 

# qual a melhor opção? Modelo misto ou fixo? Neste caso o resultado é o mesmo e usar modelo fixo é mais prático, de solução matemática mais fácil, apenas esta vantagem. Um modelo misto pode ter algumas vantagens em experimentos maiores e mais complexos, com dados perdidos e muitos efeitos no modelo. Também utiliza-se modelo misto quando se pretende fazer estimativas de componentes de variância.

 

# vamos considerar nível de proteína como variável quantitativa e avaliar o experimento em um modelo de regressão

 

# uma maneira prática de fazer este estudo seria utilizando a função pr2() do pacote epr

pr2(dados, design=2)
 

# ou então via modelo misto

 

# modelo linear

modelor1=lmer(Conversao.Alimentar~Nivel.de.Proteina+(1|Leitegada), data=dados)
modelor1
 

# modelo quadrático

modelor2=lmer(Conversao.Alimentar~Nivel.de.Proteina+I(Nivel.de.Proteina^2)+(1|Leitegada), data=dados)
modelor2