geom_smooth () quais são os métodos disponíveis?

92

Estou usando geom_smooth()de ggplot2.

No livro de Hadley Wickham ("ggplot2 - Elegant Graphics for Data Analysis"), há um exemplo (página 51), onde method="lm"é usado. No manual online não se fala do methodargumento. Vejo outros resultados do Google (e perguntas aqui) de pessoas usando method='loess'.

Existe uma lista exaustiva em algum lugar que explica as opções?

Pelo que posso ver, 'lm'desenha uma linha reta e 'loess'uma curva muito suave. Presumo que existam outros que traçam mais uma linha irregular entre os pontos de referência?

O seargumento do exemplo também não está na ajuda ou na documentação online.

FWIW aqui está meu código.

p <- ggplot(output8, aes(age, myoutcome, group=id, colour=year_diag_cat2)) +
  geom_line() + scale_y_continuous(limits = c(lwr,upr))
p + geom_smooth(aes(group=year_diag_cat2), method="loess", size=2, se=F)
nzcoops
fonte
2
Perguntas e respostas estão desatualizadas. A documentação atual lista os argumentos: ggplot2.tidyverse.org/reference/geom_smooth.html
jan-glx
O link de @ StéphaneLaurent mudou (já que agora tem mais de 5 anos): stats.idre.ucla.edu/r/faq/…
MokeEire

Respostas:

38

Às vezes, é fazer a pergunta que faz a resposta saltar. Os métodos e argumentos extras estão listados na página ggplot2 wiki stat_smooth .

Que é aludido na geom_smooth()página com:

"Veja stat_smooth para exemplos de uso de ajuste de modelo embutido se você precisar de algum mais flexível, este exemplo mostra como plotar os ajustes de qualquer modelo de sua escolha".

Não é a primeira vez que vejo argumentos em exemplos para gráficos ggplot que não estão especificamente na função. Isso torna difícil descobrir o escopo de cada função, ou talvez eu ainda não tenha encontrado uma lista mágica explícita que diga o que funcionará e o que não funcionará em cada função.

nzcoops
fonte
4
sim, a documentação é um pouco bagunçada. Não gosto de como a Springer cobra mais de 40 dólares pelo livro de Hadley, que contém as informações que faltam no site.
wespiserA
@wespiserA em que sentido as informações estão faltando no site (ou pacote de ajuda)? nzcoops estava procurando no lugar errado. Isso não quer dizer que a ajuda para geom_smooth()não pudesse ser melhorada, digamos, fazendo menção explícita de methode para ver stat_smooth()- no momento isso só acontece em um comentário nos exemplos - e um e-mail educado para Hadley iria, tenho certeza, funcionar maravilhas. Escrever documentação é difícil, especialmente quando você está tão perto do código; como desenvolvedor, você não é mais um usuário e terá dificuldade em escrever documentação para usuários.
Gavin Simpson
1
@nzcoops o motivo pelo qual não está documentado como um argumento geom_smooth()é que essa função não tem ou não tem esse argumento. O código geom serve para produzir objetos que, ao serem impressos, fazem o desenho. A convenção no ggplot é ter stat_foo()funções, mesmo ao ponto de stat_identity()você não querer computar nada. Dito isso, Hadley agradece comentários / críticas de seu código / pacotes, então mande um e-mail para ele e sugira links de perfil mais alto entre a geom_documentação e seus associadosstat_
Gavin Simpson
2
@Gavin, sim, já mandei um e-mail para Hadley algumas vezes no passado, mas achei que a pergunta ainda era valiosa, pois não tenho dúvidas de que outros vão pesquisar no Google em algum momento. Seu comentário sobre 'não tem ou aceita esse argumento' está incorreto. É verdade. Pode muito bem passá-lo para stat_smooth (), mas 'pega' como mostram os exemplos. Eu também não queria incomodar Hadley por algo que sabia que alguém poderia responder rapidamente, embora eu mesmo: /
nzcoops
23

O argumento do método especifica o parâmetro da estatística regular. Você pode verstat_smooth a lista de todos os argumentos possíveis para o argumento do método.

wespiserA
fonte
Mudança de resposta atrevida @wespiser: P Vou deixar passar;)
nzcoops
sim, você percebeu meu blefe da primeira vez. Depois disso, decidi pesquisar um pouco e descobrir o que estava acontecendo!
wespiserA
1

O se argumento do exemplo também não está na ajuda ou na documentação online.

Quando 'se' em geom_smooth é definido como 'FALSE', a região de sombreamento de erro não é visível

RAMYA HARIHARAN
fonte