O problema está na linha ggplot(mapping=aes(x=type, y=value, color = Gender2)) +
Não faz muito sentido criar um gráfico de dispersão com uma variável categórica de apenas um nível como variável preditora. Rode o código abaixo que ele deve ficar mais próximo do desejado. df3 %>% tidyr::gather(type, value, Consumption) %>% ggplot(mapping=aes(x=Income, y=value, color = Gender2)) + geom_smooth(mapping=aes(ymin = lcl, ymax = ucl), stat = "identity", colour = "black") + geom_point(df,mapping=aes(x=Income, y=Consumption, color = Gender2), size = 2) + geom_line(mapping=aes(x=Income, y=pred), colour = "black") Eu achei esquisito que o nível Fem_Her está muito distante do nível Male no gráfico, mas como a income dos Male é em torno de 20 vezes a dos Fem_Her, então o plot faz sentido. Ah, troquei a cor da linha dos valores preditos porque ela estava sendo confundida com alguns pontos. Talvez preto não seja a melhor opção, então escolha uma cor que se harmonize melhor à tua paleta de cores. Atenciosamente, -- Marcus Nunes Professor Adjunto Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento de Estatística Laboratório de Estatística Aplicada mar...@marcusnunes.me https://marcusnunes.me/ http://shiny.estatistica.ccet.ufrn.br On Wed, Jun 19, 2019 at 11:45 AM ASANTOS por (R-br) < r-br@listas.c3sl.ufpr.br> wrote: > Prezados Membros, > > Estou tentando plotar sem sucesso o intervalo em um modelo GLM de > Poisson onde fiz a junção de níveis para a variável categórica Gender. > Alguém baseado no CRM abaixo poderia dar uma luz? > > #Pacotes > library(ggplot2) > library(dplyr) > library(tidyverse) > > #Dados inventados com uma variável resposta (Consumption) e duas > explicativas, sendo uma categórica e outra quali > Consumption <- c(501, 502, 503, 504, 26, 27, 50, 56, 63, 60, 72, 93, 78, > 43, 59, 70, 53, 80) > Gender <- gl(n = 3, k = 6, length = 3*6, labels = c("Male", > "Female","hermaphrodite"), ordered = FALSE) > Income <- c(5010, 5020, 5030, 5040, 260, 270, 550, 560, 680, 690, 720, > 550, 560, 680, 690, 720,500,512) > df3 <- data.frame(Consumption, Gender, Income) > df3 > > # GLM de Poisson > fm1 <- glm(Consumption~Gender+Income, data=df3, family=poisson) > summary(fm1) > > # ANOVA do modelo ajustado > anova(fm1,test="Chi") > > #Comparo a variável Gender > sort(tapply(df3$Consumption,df3$Gender,mean)) > Gender2<-df3$Gender > levels(Gender2) > levels(Gender2)[2]<-"Fem_Her" > levels(Gender2)[3]<-"Fem_Her" > levels(Gender2) > fm2<-glm(Consumption~Gender2+Income, data=df3, family=poisson) > anova(fm1,fm2,test="Chi") > # 0.7824 Female/Hermaphrodite são iguais então eu junto > > #Faço a predição sobre o modelo final e dos intervalos de confiança > > pred <- predict(fm2, type="response", se.fit = TRUE) > df3 = cbind(df3, pred = pred$fit) > df3 = cbind(df3, se = pred$se.fit) > df3 = cbind(df3, ucl=df3$pred + 1.96*df3$se) > df3 = cbind(df3, lcl=df3$pred - 1.96*df3$se) > df3 = cbind(df3, Gender2) > > df<-df3 %>% > dplyr::group_by(Income, Gender2) %>% > dplyr::summarize(Consumption = mean(Consumption, na.rm = TRUE)) > df<-as.data.frame(df) > > #Faço o plot usando o ggplot2 > df3 %>% > tidyr::gather(type, value, Consumption) %>% > ggplot(mapping=aes(x=type, y=value, color = Gender2)) + > geom_smooth(mapping=aes(ymin = lcl, ymax = ucl), stat = > "identity") + > geom_point(df,mapping=aes(x=Income, y=Consumption, color = Gender2)) + > geom_line(mapping=aes(x=Income, y=pred)) > > # > > Obrigado, > > Alexandre > > -- > ====================================================================== > 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 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO) > e-mails:alexandresanto...@yahoo.com.br > alexandre.san...@cas.ifmt.edu.br > Lattes: http://lattes.cnpq.br/1360403201088680 > OrcID: orcid.org/0000-0001-8232-6722 - ResearcherID: A-5790-2016 > Researchgate: www.researchgate.net/profile/Alexandre_Santos10 > LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635 > Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/ > ====================================================================== > > _______________________________________________ > R-br mailing list > R-br@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 fornea cdigo > mnimo reproduzvel.
_______________________________________________ R-br mailing list R-br@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.