[R-br] Desdobramento de vários níveis dentro de um fator

ASANTOS alexandresantosbr em yahoo.com.br
Quinta Fevereiro 12 21:54:24 BRST 2015


Obrigado Walmes, mas os contrastes não pareceram ficar muito corretos, 
sendo meu CRM corrigido:

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

require(multcomp)
require(doBy)
require(latticeExtra)
require(wzRfun)


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

d <- data.frame(a=factor(sample(c(paste("Tratamento_",letters,sep="")), 
1000, rep=TRUE)))

xtabs(~a, d)

d$y <- rpois(nrow(d), lambda=10)

##Niveis
levels(d$a)

## O padrão de funcionamento faz assim, o primeiro fator troca níveis
## dentro do segundo que troca níveis dentro do terceiro, etc, veja.
do.call(rbind, strsplit(levels(d$a), "\\."))

## Sabendo disso você pode passar da a, b e c na forma que lhe for mais
## conveniente. Por outro lado, é desperdício de tempo operar assim
## porque eu considero mais fácil declarar o modelo fatorial, usar a
## LSmatrix para gerar a matriz de contraste e usá-la.

g0 <- glm(y~a, family="poisson", data=d)
g1 <- glm(y~0+d$a, family="poisson", data=d)

M <- LSmatrix(g0, effect=c("a"))
M

## As estimativas das médias (na escala do preditor linear).
data.frame(g0=M%*%coef(g0), g1=coef(g1))

## Combinações de níveis correspondentes as médias.
str(M)
grid <- attr(M, "grid")

## Matriz de contrastes entre níveis de `focus` dentro dos níveis de
## `split`.
trat <- "a"
spl <- interaction(grid[,trat])
i <- 1:nrow(grid)
l <- split(i, f=spl)
contr <- lapply(l,
                 function(row){
                     ## Matriz de contrastes par a par.
                     a <- apc(M[,i], lev=levels(d[trat,]))
                     ## Prefixo no nome das linhas.
                     rownames(a) <- paste(spl[row[1]],
                                          rownames(a), sep="/")
                     return(a)
                 })
contr <- do.call(rbind, contr)
contr
## Constrastes.
summary(glht(g0, linfct=contr),
         test=adjusted(type="fdr"))



On 12/02/2015 13:00, walmes . wrote:
> Alexandre,
>
> No seu CMR tem-se um fator apenas. Você não precisa de "a" e "a.int 
> <http://a.int>", eles são iguais. Será que não é a versão da apc que 
> você tem? Ela tem sido aprimorada, está no meu pacote wzRfun, 
> disponível do www.github.com/walmes/wzRfun 
> <http://www.github.com/walmes/wzRfun>. A mais recente tá assim:
>
> ## wzRfun::apc
> apc <- function (lfm, lev = NULL)
> {
>     nlev <- nrow(lfm)
>     rn <- rownames(lfm)
>     a <- attr(lfm, "grid")
>     if (is.null(lev)) {
>         if (!is.null(a)) {
>             lev <- apply(a, 1, paste, collapse = ":")
>         }
>         else if (!is.null(rn)) {
>             lev <- rn
>         }
>         else {
>             lev <- as.character(1:nlev)
>         }
>     }
>     cbn <- combn(seq_along(lev), 2)
>     M <- lfm[cbn[1, ], ] - lfm[cbn[2, ], ]
>     if (is.vector(M))
>         dim(M) <- c(1, length(M))
>     rownames(M) <- paste(lev[cbn[1, ]], lev[cbn[2, ]], sep = "-")
>     return(M)
> }_
> _
> À disposição.
> Walmes._
> _
>
>>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

-- 
======================================================================
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)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
======================================================================



---
Este email foi escaneado pelo Avast antivírus.
http://www.avast.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150212/38582b9c/attachment.html>


Mais detalhes sobre a lista de discussão R-br