<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Walmes,<br>
<br>
Foi muito esclarecedor, mas suscitou novas dúvidas quando
trabalho com GLM e são duas, sendo: 1) a ordem dos coeficientes em
glm e a ordem dos níveis da interação e 2) se eu tivesse um
fatorial 2x3x2, sendo as minhas indagações levantadas no CRM abaixo,<br>
<br>
#1) Ordem dos coeficientes em glm e a ordem dos níveis da interação<br>
<br>
#CRM<br>
<br>
require(multcomp)<br>
require(doBy)<br>
require(lattice)<br>
<br>
## Dados artificiais - Status (Atacado x Sadio) x Idade(48 x 72)<br>
d <- data.frame(a=factor(sample(c('atacado','sadio'), 100,
rep=TRUE)),<br>
b=factor(sample(c('48','72'), 100, rep=TRUE)))<br>
<br>
beta <- c(1,1.2,1,-0.9)<br>
d$y <- rpois(nrow(d), lambda=exp(X%*%beta))<br>
<br>
## Crio a interação.<br>
d$ab <- interaction(d$a, d$b)<br>
<br>
## Ordem dos níveis<br>
levels(d$ab)<br>
<br>
## Ajuste do GLM<br>
glmRes <- glm(y~0+ab, family="poisson", data=d)<br>
coef(glmRes)<br>
<br>
<br>
Minha dúvida é sempre que ajustar um glm a ordem dos coeficientes,
vai ser a mesma que a dos meus levels(d$ab) de forma que a
parametrização de meu contraste for o for o primeiro nível
"atacado.48"e o segundo "sadio.48" vou especificar o contrate (1,
-1, 0, 0) e a matriz resultante vai retornar a média e para os
outros níveis sucessivamente?<br>
<br>
<br>
#2)Se eu tivesse um fatorial 2x3x2<br>
<br>
## Dados artificiais - Status (Atacado x Sadio) x Idade(48 x 72 x
96) x Clone (TY01 e VM06)<br>
d <- data.frame(a=factor(sample(c('atacado','sadio'), 100,
rep=TRUE)),<br>
b=factor(sample(c('48','72','96'), 100, rep=TRUE)),<br>
c= factor(sample(c('TY01','VM06'), 100, rep=TRUE)))<br>
<br>
xtabs(~a+b+c, d)<br>
beta <- c(1,1.2,1,-0.9)<br>
d$y <- rpois(nrow(d), lambda=exp(X%*%beta))<br>
<br>
## Interação<br>
d$abc<-interaction(d$a, d$b, d$c)<br>
<br>
## Ajuste do GLM<br>
glmRes2<- glm(y~0+abc, family="poisson", data=d)<br>
coef(glmRes)<br>
<br>
## Especifico os contrastes desejados, neste caso "atacado.48.TY01"
e "sadio.48.TY01" (primeiro nível com o segundo)<br>
cntrMat <- rbind("atacado.48.TY01-sadio.48.TY01"=c(1, -1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0))<br>
<br>
summary(glht(glmRes2, linfct=mcp(abc=cntrMat)),
test=adjusted("none"))<br>
<br>
<br>
E pergunto se esta especificação de coeficientes esta correta no
caso de um fatorial 2x3x2, imaginado a análise em one-way?<br>
<br>
<br>
Novamente obrigado,<br>
<br>
<pre class="moz-signature" cols="72">--
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO)
<a class="moz-txt-link-abbreviated" href="mailto:e-mails:alexandresantosbr@yahoo.com.br">e-mails:alexandresantosbr@yahoo.com.br</a>
<a class="moz-txt-link-abbreviated" href="mailto:alexandre.santos@cas.ifmt.edu.br">alexandre.santos@cas.ifmt.edu.br</a>
Lattes: <a class="moz-txt-link-freetext" href="http://lattes.cnpq.br/1360403201088680">http://lattes.cnpq.br/1360403201088680</a>
======================================================================</pre>
<br>
<br>
<br>
<div class="moz-cite-prefix">Em 08/05/2014 08:27, walmes . escreveu:<br>
</div>
<blockquote
cite="mid:CAFU=EkZEPSWjLjqecRPYxmvM87DGCkcaL0B3vG=oxLgLrAXC3w@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif">Alexandre,<br>
<br>
</div>
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif">Precisa tomar cuidado com a parametrização
usualmente imposta em modelo lineares e generalizados para
estimar os parâmetros. No R o primeiro nível, por padrão, é
assumido como tendo efeito zero, é o contraste tipo tratamento
(contr.treatment). É preciso reconhecer isso para montar as
matrizes de contraste corretamente. No código abaixo ilustra
um pouco disso.<br>
<br>
<span style="font-family:courier new,monospace">##-----------------------------------------------------------------------------<br>
<br>
require(multcomp)<br>
require(doBy)<br>
require(lattice)<br>
<br>
## Dados artificiais - Status (Atacado x Sadio) x Idade(48 x
72)<br>
d <- data.frame(a=factor(sample(c('atacado','sadio'),
100, rep=TRUE)),<br>
b=factor(sample(c('48','72'), 100,
rep=TRUE)))<br>
xtabs(~a+b, d)<br>
<br>
## Crio a interação.<br>
d$ab <- interaction(d$a, d$b)<br>
<br>
X <- model.matrix(~ab, d)<br>
colnames(X)<br>
beta <- c(1,1.2,1,-0.9)<br>
<br>
d$y <- rpois(nrow(d), lambda=exp(X%*%beta))<br>
<br>
xyplot(y~a, groups=b, data=d, jitter.x=TRUE,
type=c("p","a"))<br>
<br>
## Ajusto o GLM de Poisson.<br>
glmRes <- glm(y~ab, family="poisson", data=d)<br>
coef(glmRes)<br>
<br>
## Para específicar contrastes tem que tomar cuidado com a<br>
## parametrização.<br>
<br>
## Específicos os contrastes desejados.<br>
cntrMat <- rbind("atacado.48-sadio.48"=c(1, -1, 0,
0),<br>
"atacado.72-sadio.72"=c(0, 0, 1, -1),<br>
"atacado.48-atacado.72"=c(1, 0, 0, -1),<br>
"sadio.48-sadio.72"=c(0, 1, 0, -1))<br>
<br>
## Testo os contrastes com função glht do pacote multcomp.<br>
summary(glht(glmRes, linfct=mcp(ab=cntrMat)),
test=adjusted("none"))<br>
<br>
summary(glht(glmRes, linfct=cntrMat,
alternative="two.sided"),<br>
test=adjusted("none"))<br>
<br>
## Pela sua lógica, usando essa matriz deveria retornar as
médias (na<br>
## escala do preditor linear) para cada tratamento. Mas não
são as médias.<br>
M <- diag(4)<br>
summary(glht(glmRes, linfct=mcp(ab=M)),
test=adjusted("none"))<br>
summary(glht(glmRes, linfct=M), test=adjusted("none"))<br>
coef(glmRes)<br>
<br>
## Matriz com o coeficientes, já respeitando a
parametrização, para<br>
## obter as médias ajustadas na escala do preditor linear<br>
M <- LSmatrix(glmRes, effect="ab")<br>
summary(glht(glmRes, linfct=M), test=adjusted("none"))<br>
<br>
## Estimado vs paramétrico.<br>
M%*%coef(glmRes)<br>
M%*%beta<br>
<br>
## Se quer facilitar a especificação dos constrastes,
declare o modelo<br>
## sem restrições, por exemplo, usando y~0+ab na fórmula.<br>
<br>
glmRes <- glm(y~0+ab, family="poisson", data=d)<br>
coef(glmRes)<br>
<br>
cntrMat <- rbind("atacado.48-sadio.48"=c(1, -1, 0,
0),<br>
"atacado.72-sadio.72"=c(0, 0, 1, -1),<br>
"atacado.48-atacado.72"=c(1, 0, 0, -1),<br>
"sadio.48-sadio.72"=c(0, 1, 0, -1))<br>
<br>
summary(glht(glmRes, linfct=mcp(ab=cntrMat)),
test=adjusted("none"))<br>
summary(glht(glmRes, linfct=cntrMat), test=adjusted("none"))<br>
<br>
##-----------------------------------------------------------------------------<br>
</span><br>
À disposição.<br>
Walmes.<br>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
R-br mailing list
<a class="moz-txt-link-abbreviated" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a>
<a class="moz-txt-link-freetext" href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a class="moz-txt-link-freetext" href="http://www.leg.ufpr.br/r-br-guia">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">
</pre>
</body>
</html>