teste de médias para interação

Caros colegas gostaria de fazer um teste de médias para interação pelo pacote multcomp. Onde eu poderia encontrar um exemplo para distribuição de poisson ou binomial? Daniele Portela de Oliveira Mestranda Produção Animal - UEM Cel: 44 9949 3525 67 9617 0965

Se vc se refere a "teste de hipoteses envolvendo termos de interacao de um GLM", voce deve construir a matriz de contrastes de interesse e, entao, os exemplos da ajuda do glht() podem ser aplicados diretamente. Vc e' bem-vinda a dar um exemplo reproduzivel do seu caso e, certamente, tera' respostas mais precisas que a minha (ne, Walmes?). b

Benilton eu usei esse modelo e os dados estão em anexo. # Poisson dados balanceados mod.p1 <- glm(Nasc ~ avali*trat,family=poisson(link = "log"),contrasts=list(avali="contr.sum",trat="contr.sum")) an.p1 <- anova(mod.p1,test="Chisq") an.p1 O tratamento (trat), o período de avaliaçao (avali) e a interação foram significativos, eu gostaria de fazer o teste para a interação. O teste de médias para trat e avali eu usei o multcomp(abaixo) mas para a interação o mesmo teste não deu certo. #Teste de médias para Avali library(multcomp) glht.mod1 <- glht(mod.p1, linfct=mcp(avali="Tukey"), alternative = "two.sided" ) summary(glht.mod1,test=Chisqtest()) confint(glht.mod1) cld(glht.mod1) Eu vou tentar montar os contrastes para fazer o teste. Daniele Portela de Oliveira Mestranda Produção Animal - UEM Cel: 44 9949 3525 67 9617 0965 De: Benilton Carvalho <beniltoncarvalho@gmail.com> Para: r-br@listas.c3sl.ufpr.br; Daniele Portela de oliveira <dane_portela@yahoo.com.br> Enviadas: Terça-feira, 1 de Novembro de 2011 12:58 Assunto: Re: [R-br] teste de médias para interação Se vc se refere a "teste de hipoteses envolvendo termos de interacao de um GLM", voce deve construir a matriz de contrastes de interesse e, entao, os exemplos da ajuda do glht() podem ser aplicados diretamente. Vc e' bem-vinda a dar um exemplo reproduzivel do seu caso e, certamente, tera' respostas mais precisas que a minha (ne, Walmes?). b

É como o Benilton disse, vai ter que montar a matriz que identifica esse contraste do desdobramento. É possível pegar uma atalho usando a contrast::contrast(), e passar a matriz para a multcomp::glht() usar. Porém, os seus dados só apresentaram interação porque eles têm superdispersão. Se usar um modelo quasiPoisson, a interação some. De qualquer forma segue o código **reproduzível** para você. Evite dados em anexo. Torne as coisas o mais fácil possível para quem quer te ajudar. A coisa tem que reproduzir com um ctrol+c ctrol+v. da <- read.table("clipboard", header=TRUE, sep="\t") # tive que ler do arquivo anexo names(da) <- tolower(names(da)) da <- transform(da, avali=factor(avali), trat=factor(trat)) # tive que passar para fator (isso não é código reproduzível) dput(da) # cole o dput dos seus dados na mensagem, o código fica reproduzível com 1 ctrol+c # na mensagem faça assim, carrege os dados pelo resultado do dput() da <- structure(list(avali = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("1", "2", "3"), class = "factor"), trat = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), .Label = c("1", "2"), class = "factor"), nasc = c(53L, 98L, 51L, 62L, 55L, 98L, 104L, 32L, 96L, 51L, 5L, 6L, 3L, 67L, 1L, 2L, 8L, 2L, 102L, 2L, 11L, 15L, 7L, 4L, 6L, 11L, 15L, 37L, 33L, 17L)), .Names = c("avali", "trat", "nasc"), row.names = c(NA, -30L), class = "data.frame") mod.p1 <- glm(nasc~avali*trat, family=poisson(link="log"), data=da, contrasts=list(avali="contr.sum", trat="contr.sum")) an.p1 <- anova(mod.p1, test="Chisq") an.p1 # superdispersão!!! mod.p2 <- glm(nasc~avali*trat, family=quasipoisson(link="log"), data=da, contrasts=list(avali="contr.sum", trat="contr.sum")) an.p2 <- anova(mod.p2, test="F") an.p2 # sem interação, que foi causada pela suposição de equidispersão #------------------------------------------------------------------------------------------ # você vai ter que montar as matrizes dessas interações, um meio fácil é usar a contrast() require(contrast) c0 <- contrast(mod.p2, list(avali=levels(da$avali), trat="1"), list(avali=levels(da$avali), trat="2")) c0 c0$X # acabou que a interação trat dentro de avali foi desdobrada com a contrast # usando a multicomp passando a matriz do contraste library(multcomp) glht.mod1 <- glht(mod.p2, linfct=c0$X) summary(glht.mod1) #------------------------------------------------------------------------------------------ À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Olá pessoal, estou tentando maximizar uma função usando o optmize, mas recebo sempre uma mensagem de erro. Já olhei o help mas não percebo onde estou errando. Minha função é: n=10000 L<-function(beta){ vv<-matrix(nrow=n,ncol=1) for(i in 1:n){ L<- -a[i]*log(dnorm(x[i]*beta)) vv[i,1]<-L } print(vv) } ja tenho definidos o "a" e o "x", quero maximizar essa função para estimar meu beta. optimize(L,c(-1,1)) Error in optimize(L, c(-1, 1)) : invalid function value in 'optimize' Alguém tem uma sugestão? Obrigada -- Daniela Rodrigues Recchia Master Student of Statistics - Technische Universität Dortmund. "It is better to have an inexact answer to the right question than a precise one to the wrong question!" John Tuckey

1 - seu codigo nao eh reproduzivel 2 - sua funcao precisa retornar um valor (nao um texto); substitua print(vv) por return(vv) e pode ser q vc obtenha algo "mais util". 3 - sua funcao chama-se L... e dentro dela, vc tem uma variavel que se chama L... tudo deve funcionar, mas vc estah dependendo fortemente do dispatch system q o R usa. b

Olá Walmes e Benilton muitissimo obrigada pelas sugestões, demorei para responder porque estava estudando suas soluções. Acrescentaram muitas informações ao meu conhecimento. Até então eu não sabia que a quasipoisson é usada para dados com superdispersão. Com relação ao teste de médias para interação obrigada pela ajuda, faz pouco tempo que estudo o R, tenho muito a aprender. Somente a função que coloca as letras não deu certo, mostra um erro! confint(glht.mod1) cld(glht.mod1, level=0.05) Error: length(object$focus) == 1 is not TRUE Reproduzi o código que vc me mandou! Porque será que aconteceu isso na hora de colocar as letras? Grata, Daniele Portela de Oliveira Mestranda Produção Animal - UEM Cel: 44 9949 3525 67 9617 0965 De: Walmes Zeviani <walmeszeviani@gmail.com> Para: r-br@listas.c3sl.ufpr.br; Daniele Portela de oliveira <dane_portela@yahoo.com.br> Enviadas: Terça-feira, 1 de Novembro de 2011 14:13 Assunto: Re: [R-br] teste de médias para interação É como o Benilton disse, vai ter que montar a matriz que identifica esse contraste do desdobramento. É possível pegar uma atalho usando a contrast::contrast(), e passar a matriz para a multcomp::glht() usar. Porém, os seus dados só apresentaram interação porque eles têm superdispersão. Se usar um modelo quasiPoisson, a interação some. De qualquer forma segue o código **reproduzível** para você. Evite dados em anexo. Torne as coisas o mais fácil possível para quem quer te ajudar. A coisa tem que reproduzir com um ctrol+c ctrol+v. da <- read.table("clipboard", header=TRUE, sep="\t") # tive que ler do arquivo anexo names(da) <- tolower(names(da)) da <- transform(da, avali=factor(avali), trat=factor(trat)) # tive que passar para fator (isso não é código reproduzível) dput(da) # cole o dput dos seus dados na mensagem, o código fica reproduzível com 1 ctrol+c # na mensagem faça assim, carrege os dados pelo resultado do dput() da <- structure(list(avali = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("1", "2", "3"), class = "factor"), trat = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), .Label = c("1", "2"), class = "factor"), nasc = c(53L, 98L, 51L, 62L, 55L, 98L, 104L, 32L, 96L, 51L, 5L, 6L, 3L, 67L, 1L, 2L, 8L, 2L, 102L, 2L, 11L, 15L, 7L, 4L, 6L, 11L, 15L, 37L, 33L, 17L)), .Names = c("avali", "trat", "nasc"), row.names = c(NA, -30L), class = "data.frame") mod.p1 <- glm(nasc~avali*trat, family=poisson(link="log"), data=da, contrasts=list(avali="contr.sum", trat="contr.sum")) an.p1 <- anova(mod.p1, test="Chisq") an.p1 # superdispersão!!! mod.p2 <- glm(nasc~avali*trat, family=quasipoisson(link="log"), data=da, contrasts=list(avali="contr.sum", trat="contr.sum")) an.p2 <- anova(mod.p2, test="F") an.p2 # sem interação, que foi causada pela suposição de equidispersão #------------------------------------------------------------------------------------------ # você vai ter que montar as matrizes dessas interações, um meio fácil é usar a contrast() require(contrast) c0 <- contrast(mod.p2, list(avali=levels(da$avali), trat="1"), list(avali=levels(da$avali), trat="2")) c0 c0$X # acabou que a interação trat dentro de avali foi desdobrada com a contrast # usando a multicomp passando a matriz do contraste library(multcomp) glht.mod1 <- glht(mod.p2, linfct=c0$X) summary(glht.mod1) #------------------------------------------------------------------------------------------ À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
participantes (4)
-
Benilton Carvalho
-
Daniela Recchia
-
Daniele Portela de oliveira
-
Walmes Zeviani