
Caros Listeiros, Estou tentando utilizar a função apc do Walmes para fazer um desdobramento de 26 níveis dentro de um fator, a função dele ajuda muita a fugir da montagem manual de contrastes, funcionou muito bem para interações duplas e triplas, mas para investigar um nível não estou conseguindo, já quebrei a cabeça e quando chego no momento de montar os níveis dentro dele mesmo quando tento criar o objeto contr recebo a mensagem: Erro em pmc[cbn[1, ], ] : número incorreto de dimensões Baseado no CRM abaixo alguém pode me ajudar? Obrigado ##----------------------------------------------------------------------------- require(multcomp) require(doBy) require(latticeExtra) ## apc: build all pairwise comparisons matrix by a LSmatrix. source("apc.r") ##----------------------------------------------------------------------------- d <- data.frame(a=factor(sample(c(paste("Tratamento_",letters,sep="")), 1000, rep=TRUE))) xtabs(~a, d) d$y <- rpois(nrow(d), lambda=10) ## Interação. d$a.int <- interaction(d$a) levels(d$a.int) ## 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.int), "\\.")) ## 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.int, 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" trat <- "a" spl <- interaction(grid[,split]) i <- 1:nrow(grid) l <- split(i, f=spl) contr <- lapply(l, function(row){ ## Matriz de contrastes par a par. a <- apc(M[row,], 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")) -- ====================================================================== 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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ====================================================================== --- Este email foi escaneado pelo Avast antivírus. http://www.avast.com